VIM命令快速记忆(转自杰哥)
因為自己也是個linuxer
熟練運用VIM是必須的,恰好學長杰哥對此有研究,
轉來給大家分享。對此表達對杰哥的敬意。
有好東西分享給大家才能相互學習是吧。
要做個Linuxer,VIM的操作是必須就跟手指頭盲打鍵盤那么熟練。
首先說下Vim的兩種最常用模式,這是對菜鳥說的:),普通模式和輸入模式,在普通模式下所有的按鍵都是命令,在輸入模式下
可以輸入字符。
在剛用vi打開文檔時,都是普通模式,本文就介紹如何快速記住一些最基本的操作命令。
先講講在普通模式下的光標移動。
當你的打字速度到達一定境界時,比如我:),我非常不喜歡把手移到小鍵盤或者方向鍵那里去,因為那個地方操作起來太慢嚴重影響我心情有木有,所以VIM就是為高效的人設計的,它充分認識到這一點,在VIM里上下左右風別被 j k h l 代替,
h:在最左邊,當然是左移動啦!
l:同理,在最右邊,右移動!
j:當剛打開一個文件,是不是一般都在開頭,要往下移動啊!標準指法里右手食指在J上,用的最頻繁,因此就用J來往下移咯!
k:有下移動當然得下移動,就在J旁邊吧,多好記!
但是每次只移動一個,好麻煩!
如果我要往下移動五行,按五次不是要累死我,而且磨損鍵盤!
高效的VIM當然已經解決問題,
在hjkl前加數字,比如3j就是向下移動三行,3l即使向右三行啦!
但是雖然hjkl移動很方便,但是只能逐個字符移動,好不爽,我想一個一個單詞的移動,
w 可以解決,你用w就可以很方便的每次移動單詞,
怎么記住這個快捷鍵呢,w就是word的縮寫啊,親!
w是向右移動一個單詞,想移動多個單詞,和上面一樣加個數字就可以來,3w向右移動三個單詞。
能向右移還得向左移動啊,b可以解決這個問題,b是back的縮寫,后退一個單詞嘛!3b的意思你懂的。
隨便這里提下,w在移動過程中是每次光標都停留在單詞的首字符,想讓光標在移動中停留在尾字符或者
在一個單詞中想跳到單詞的尾字符,用“e”,end嘛
簡單的移動掌握上面幾個鍵就可以了,當然還得知道有時候我想快速移動到一行的開頭和結尾怎么辦呢,
數字“0”,第0個字符的意思,就可以將光標移到一行開頭處,符號“$”,就是美元的符號,移動到行尾。
移動先介紹這么幾個常用的,再講講文本操作
對文本的操作,當要求不怎么高時,無非就是插入文字,修改文字,刪除文字,或者復制剪切粘貼這么幾種。
插入文字,因為是insert,快捷鍵就是“i”,但是用你想在一行末尾插入的時候,用i就蛋疼了,因為i是在光標
前面插入字符,所以末尾插入字符就等于在倒數第二個字符的地方插入了!這時候要用”a“,a和i的功能完全一樣,
add的縮寫,增加的意思,在光標的后面插入字符。
有時候,特別是敲代碼的時候,我們要另起一行對吧,在上一行的任意位置按“o”,open new line ,哈哈,你已經在
新的一行插入文字咯
修改文字,change,快捷鍵“c”,不過在普通模式下你按一個c沒反應,為啥?你還沒告訴VIM你要修改的對象呢,
光標停在那里,我是修改這個單詞呢,還是要修改一整行呢。
cw,w是移動一個單詞的快捷鍵,cw的意思就是對光標當前所在出到這個單詞的結尾修改,cb的意思我就不說了。
那c2b呢?,嘿嘿,從光標往前兩個單詞修改!
c0,c$,分別是光標到本行開頭和結尾的所有文本修改。
發現奧妙了吧,移動命令和文本操作命令可以搭配起來用有木有,這正是VIM最強大的地方,各個命令可以組合使用。
其實我們可以這么考慮,在移動命令中,如果按照word里邊按住shift的思維,移動是不是就等于選中?移動的軌跡就是
文本的選擇對象!所以在vim里一般的命令格式為
(command)(number)(text object)
command就是對文本的操作,“c”是修改,“d”是刪除,“y”是復制等,number + text object 組合起來就是命令
所要操作的文本對象啦!
比如d2h,d是刪除,2h是往左兩個字符,那d2h就是刪除光標左邊的兩個字符咯!
舉一反三,各種組合等你實際應用中再用吧。
現在比如我有一個單詞,love,不小心寫成了loce,要把c改成v,如果我們用命令“c”的話,我們需要先定位到e,然后
c1h,改一個字符用得著這么麻煩嘛?當然不用,把光標移動到”c”上,輸入rv即可!r是replace,也是替換對吧,他的功能就是
替換一個字符,在r后面跟著的v就是新文本。很方便對不,~~~……
對應刪除d,要刪除一個字符,用x就可以了! x就是小學老師給我們打的大叉叉么,嘿嘿。
有時候我們不小心手賤,安了一個x,想撤銷怎么辦?
vim當然已經給我們考慮好了,你按“u”,u即是undo,就跟word一樣,多次按u就是撤銷多次哦~
插入修改刪除我們都會了,下面我們來講怎么剪切復制粘貼呢?
這時候我們要用到“p”命令,p就是place嘛,放置的意思。
前面我們說了刪除命令“d”和“x”,其實刪除就是剪切嘛,這些被刪除的文本會被放到緩沖區中,
”p“命令會將緩沖區的中文本加入到當前光標的后面,如果我們用了d3j刪除了3行,對于多行的文本,
p會放置在當前光標的下一新行。
對于x,有個妙用,還是用love這個單詞吧,如果我輸入成了loev,那我只要把光標移動到“e”上,然后xp就搞定了!
呵呵,x先把當前字符給刪除了,這時候光標在“v”,然后我們用p把“e”放到“v”后面,就完成兩個字符的對掉啦。
剪切粘貼你也會了,復制怎么辦呢,用”y“,比如yw,復制了一個單詞,到想要放置的地方,p就好啦。
還得介紹幾個非常規的組合。
cc,c更改,兩個c算啥?兩個c代表更改一整行
dd,刪除一整行,
yy,復制一整行
VIM 是對命令的大小寫敏感的,上面介紹的全是最基本的小寫指令,下面來看看那大寫命令的快捷之處!
想到本行的開頭插入嗎?用“I”
想到本行的末尾插入嗎?用“A“
想在本行的上一行新開一行寫代碼嗎?用“O”
想把剪切后者復制的文本放在光標之前嗎?用“P“
想在移動過程中撇開那些煩人的標點嘛?用“W”,“B”,“E”
C是c$的縮寫,即是從當前光標到本行末尾的所有文本更改
D是d$的簡寫
現在我有兩行句子:
I love you ,please
come back.
上述兩個句子應該在同一行對吧,我不用吧光標移動到第二行,然后按i進入插入模式,然后再來個退格鍵。
我只需吧光標移到第一句,用一個”J“就搞定了~
在英文中每個句子的開頭第一個字母要大寫對吧,萬一我當時沒大寫然后我要改呢,傳統做法,把光標移動上去,
然后rA,文藝青年,把光標移動到上面,用“~”搞定,這個符號在“1”的左邊,按住shift鍵。
再介紹一個有用的命令,“.”,就是句號,vim會記住你上次操作是什么,然后用“.”就可以重復執行上次命令!
學完上述這些基本操作,就可以在黑乎乎的屏幕上裝逼一把啦~!
當然vim的功能遠遠超過這些。
轉載于:https://www.cnblogs.com/web-lover/archive/2012/01/21/2615950.html
總結
以上是生活随笔為你收集整理的VIM命令快速记忆(转自杰哥)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新车上牌一般需要多少钱
- 下一篇: 我叫谁要去拿米是什么歌啊