偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

世界上最厲害的編程神器 ,被大多數(shù)人拋棄了......

開發(fā) 前端
一旦你跨過了那陡峭的學(xué)習(xí)曲線,真正掌握了vim,你就掌握了一個最厲害的編程神器,那些vim熟手在使用vim時,雙手在鍵盤上翻飛,光標(biāo)在屏幕上游動,代碼在飛速地變換,讓人賞心悅目。

如果你第一次在Linux上打開vim時,遇到了圖中的情況,不要尷尬,其他人的第一次vi之旅也是這樣的。

圖片圖片

等你開始練習(xí)vi,就會發(fā)現(xiàn)很多古怪的現(xiàn)象,比如:

為什么使用H、J、K、L來移動光標(biāo)?用上下左右箭頭鍵不好嗎?

為什么vi要分為分為指令模式,插入模式,命令行模式?切來切去,多麻煩??!

模式切換為什么要用Esc鍵?它在鍵盤的左上角,想要按到它實(shí)在太難了!

另外,vi的學(xué)習(xí)曲線為什么如此陡峭?

圖片圖片

這么難用的東西,我為什么要用它?IDE不香嗎?

要想回答這些問題,我們得回到vi誕生的那個時候。

1975年秋天,Unix光環(huán)加身的大神Ken Thompson回到母校伯克利大學(xué)做學(xué)術(shù)休假,他把帶來的Unix系統(tǒng)安裝到了一個PDP-11/70上,順手還寫了一個Pascal編譯器。


圖片圖片

嗯,大牛就是這么牛。

此時另外一位大神Bill Joy剛剛?cè)雽W(xué),他在用Pascal寫項(xiàng)目作業(yè)的時候,發(fā)現(xiàn)了編譯器的缺陷,他也決定做一個黑客,把這個編譯器改好。 

圖片圖片

那時候沒有IDE,他們使用一個叫ed的文本編輯器來程序,ed也是大神Ken Thompson寫的。

圖片圖片

ed不好用,后來有人寫出了em,Bill Joy又改進(jìn)了em, 把它變成了en ,然后是eo, ep......  最后是ex!

不管怎么改,它們都是“行編輯器” ,和我們現(xiàn)在用的文本編輯器最大的不同是:

沒有光標(biāo)!只能按行編輯!

是不是有點(diǎn)匪夷所思?沒光標(biāo)怎么玩啊?

舉個例子,有一個文件有兩行,內(nèi)容如下

hello wold !

this is an example

我發(fā)現(xiàn)第一行的wold寫錯了,想改一下,怎么做呢?

那第一步需要先輸入1(表示選中第一行),第一行就會顯示出來。

然后用s 命令調(diào)用搜索函數(shù),后面跟著搜索文本和替換文本

再輸入1,看看結(jié)果對不對。

整個過程如下,是不是挺讓人崩潰的?

hello wold !

s/wold/world

hello world !

唉,當(dāng)時的程序員過的都是什么日子?。?/p>

Bill Joy 使用ex這個“趁手”的工具,很快就把Thompson留下的“爛攤子”Pascal編譯器給收拾好了,新的Pascal編譯速度很快,運(yùn)行起來也很快,深受學(xué)生們的喜愛。

后來,伯克利大學(xué)購買了一批叫做ADM-3A的終端,在屏幕上終于支持可以隨意移動的光標(biāo)了!

圖片圖片

Bill Joy 欣喜異常,他花了幾個月時間熬夜,重新設(shè)計了ex, 增加了“可視化模式”,ex變成了大名鼎鼎的vi。

如果你自己看看ADM-3A終端的鍵盤,你就會發(fā)現(xiàn)兩件神奇的事情。

圖片圖片

1.它沒有單獨(dú)的上下左右鍵

所以H、J、K、L 鍵只能“兼職”來移動光標(biāo)。

2.Esc鍵和現(xiàn)在的Tab鍵在同一位置

Bill Joy 用它來做模式切換很方便,左手無需離開主行就可以輕松按到。

盡管后來PC的鍵盤發(fā)生了很大變化,但是習(xí)慣成自然,這兩個操作依然被無數(shù)用戶守護(hù)者,沿用至今。

vi是從ex等行編輯器發(fā)展而來,也繼承了很多行編輯器的操作,比如用戶都可以使用類似 /pattern 的命令來搜索文本,以及使用 

s/old/new/ 的形式來替換文本,或者通過指定行號來定位文本(例如,3 定位到第三行,$ 定位到最后一行)

這些操作如果在編輯模式下,就會出問題,3可能就表示用戶的文本,而不是命令了。

當(dāng)然,也可以在編輯模式引入一個特殊的鍵如ctrl 來處理,最常見的是ctrl + c 表示復(fù)制, ctrl+v表示粘貼。

但是,如果一個字母無法表達(dá)想要做的事情,需要敲入多個字母的時候,ctrl特殊鍵的方式就痛苦了,畢竟一個手指按著ctrl鍵,然后再敲一長串字母是很不爽的,對吧?

vi把編輯模式和命令模式區(qū)分開,就可以在命令模式玩出花兒來,甚至可以基于基本的詞來“造句”

動詞

動詞表示對文本的操作,例如

d  delete  刪除

r   replace  替換

y  yank  復(fù)制

v  visual  選擇

名詞

表示待編輯的文本對象

w  word  一個單詞

s   sentence  一個句子

p  paragraph  一個段落

修飾符(有人稱為介詞)

表示待編輯文本的范圍或者位置

i   inside     表示在...之內(nèi)

a  around  表示環(huán)繞

t   till          直到某個字符(不包括該字符)

f   find        直到某個字符(包括該字符)

然后就可以組詞成句了:動詞 + 介詞 + 名詞 ,例如:

刪除當(dāng)前的單詞 : diw (delete inside word)

改變當(dāng)前的句子:cis(change inside sentence)

刪除文本直到字符e : dte (delete till 'e')

選擇一個句子:vis (visual inside sentence)

非常強(qiáng)大也非常自然,并且vi還支持自定義,可以定制一套屬于自己的動詞名詞結(jié)構(gòu)出來。

當(dāng)然,復(fù)雜的操作可以用鼠標(biāo)+菜單的方式來實(shí)現(xiàn),那就需要把手從鍵盤上挪開了。

值得注意的是,vi 是在Modem只有300波特率的時候編寫的 !

即使后來的1200波特率,傳輸文本的速度也比大多數(shù)人閱讀的速度慢,更別說300波特率了,這深刻地影響了vi的設(shè)計。

Bill Joy曾經(jīng)“酸酸地”說過:那些開發(fā)Emacs的家伙們坐在MIT的實(shí)驗(yàn)室中,有著像現(xiàn)在光纖一樣快的網(wǎng)絡(luò),他們可以在屏幕閃爍的情況下發(fā)出有趣的命令,而我坐在伯克利的簡陋房子里,用著極其緩慢的調(diào)制解調(diào)器,幾乎無法讓光標(biāo)離開底線。人們不會知道,vi是為了一個已經(jīng)消失的世界編寫的。

1979年5月,Bill Joy發(fā)布了vi,初期用戶可能只有75個人。

但是vi像野火一樣,迅速燒遍了Unix世界。

1988年,Bram Moolenaar 寫出了vi的模仿品,Vi IMitation(簡稱vim)。

隨后幾年,他不斷完善,1991年,正式發(fā)布了vim,不過,此時它的含義是 Vi IMproved。

不管怎么模仿、改進(jìn),它依然保留了vi那些來自 ADM-3A的,“古怪”的按鍵和模式,因?yàn)檫@已經(jīng)成了vi程序員的信仰。

圖片

一旦你跨過了那陡峭的學(xué)習(xí)曲線,真正掌握了vim,你就掌握了一個最厲害的編程神器,那些vim熟手在使用vim時,雙手在鍵盤上翻飛,光標(biāo)在屏幕上游動,代碼在飛速地變換,讓人賞心悅目。

但是,vim“古怪”的按鍵和模式,讓更多的程序員淺嘗輒止,退回到了傳統(tǒng)的編輯器和IDE,不能不說,這是一個很大的遺憾。

如需轉(zhuǎn)載,請通過作者微信公眾號coderising獲取授權(quán)。

責(zé)任編輯:武曉燕 來源: 碼農(nóng)翻身
相關(guān)推薦

2014-01-02 10:34:54

設(shè)計設(shè)計師

2021-01-18 15:28:13

加密貨幣比特幣貨幣

2020-02-20 10:50:30

多數(shù)人不會真正成功

2020-07-29 12:52:23

智慧城市城市數(shù)字

2021-02-25 23:31:50

加密貨幣比特幣貨幣

2010-08-03 09:19:50

云計算調(diào)查

2021-08-09 15:06:10

數(shù)字貨幣區(qū)塊鏈貨幣

2018-01-02 18:06:56

2023-01-30 13:28:07

LinuxSteam Deck發(fā)行版

2021-03-22 06:23:47

5G 續(xù)航網(wǎng)速

2022-03-28 13:46:45

數(shù)字化轉(zhuǎn)型互聯(lián)網(wǎng)數(shù)據(jù)

2025-03-28 10:21:50

2024-07-17 14:12:07

開源工具開發(fā)管理模板

2021-09-29 23:05:11

iPhone安卓iOS

2023-02-27 15:09:14

2019-10-09 10:21:20

負(fù)載均衡架構(gòu)開發(fā)

2022-03-23 20:49:13

微信移動應(yīng)用

2019-10-18 19:26:23

算法數(shù)據(jù)庫技術(shù)

2024-02-01 09:34:06

HTML前端新特性

2019-12-05 14:50:26

微信H5前端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號