這段時間一直在跟linux打交道,正好順便也學習了一下vi的使用,就此準備長期用下去了。目的很簡單,就是為了更熟練地使用linux而做準備。vi與其它windows環境下的文字編輯器不同在於它的操作方式幾乎可以全命令來進行工作,節省了滑鼠在螢幕上划拉的時間,而且新鮮感十足。
我是在window環境下使用gvim7.3來進行練習的,熟悉並掌握它並不難,我總結了以下兩點。
[size=x-large][b][color=indigo]一、自由切換各種模式[/color][/b][/size]
靠「手感」,怎麼說呢?vi最基本的有三種模式,它們切換後的展現形態很相似,即不容易區分,剛開始用的時候,總是分不清哪個是一般模式,哪個是編輯模式,真的是很惱火。我用了半個小時先熟悉了一下這三種模式切換的展現形態,這點真的很重要;學好vi的根基就在於此,必須要搞明白。建議大家學vi命令之前,首先弄清三種模式的切換,而vim在此基礎上又擴充套件了很多模式,不過都是基於這三種模式而組合成形成的。
[color=red][b]有乙個小經驗,就是注意游標的線條粗細,當線條特別細的時候那是編輯模式,別妄想輸入命令;線條變粗的時候那就是一般模式了,就可以輸入命令。[/b][/color]
[size=x-large][color=indigo][b]二、簡化模式[/b][/color][/size]
熟悉過後,就可以進行靈活變化了,我歸納了這三個模式的大致意圖。
1.想使用命令就進入一般模式。
2.想輸入文字,就進入編輯模式。
3.想輸入命令就要先進了一般模式。
這裡我省去了命令模式這麼乙個概念,我的考慮是這樣:我經常用的命令都是需要進入到一般模式才能使用,索性就去掉它,在下意識使用的時候不用去考慮要切換三種模式的形態,而只是針對兩種模式進行切換,複雜度降低,效率肯定會高很多。[b]所謂操作熟練,我個人理解就是下意識的操作,大腦不用經過多麼深思熟慮得就能完成工作。[/b]
[size=x-large][color=indigo][b]三、常用命令介紹[/b][/color][/size]
詳細的命令我就不一一介紹了,僅介紹我最近常用的命令,高階特性我也沒專門去研究,也很少能用上,網上介紹的都很詳細,大家可自行查閱。
以操作為驅動,來輸入命令;而不是輸入命令來進行某種操作,這是閒著蛋疼的時候瞎琢磨出來的小眾方法。由於vi的命令可以組合著使用,第一反應應該是操作,而不是命令,這樣命令的搭配靈活度就顯得寬廣了。
分類來介紹吧,以便加強潛意識的認知敏感度。
[size=large][b]1.模式的切換[/b][/size]
它們的大寫形式就不用那麼關注了,目的只有乙個,切換到編輯模式就ok。
[b][color=red]個人建議:只要你在寫東西的時候,需要停下來,思考一陣兒的時候,別忘了按esc,也就是說除編輯文字的情況下,其餘情況都要處於一般模式下,這樣才叫真正地使用vi。[/color][/b]
[b][size=large]2.游標的移動[/size][/b]
(1)最基礎的移動:h(左),j(下),k(上),l(右)
花費大約十幾秒的時間就能夠熟悉了。我自己編著玩的口訣:[b]左右在兩邊,下上在中間[/b]。正常情況下,用vi開啟文字,游標都會處在第一行,也就是說向下移動的慾望比向上移動的慾望要強烈,所以j在k的前面。
用鍵盤的上下左右鍵也是可以的,反正怎麼舒服怎麼來。
用鍵盤的pgup和pgdown也是可以的。
(3)移動到首字元和移動到末字元:0(首),$(末)
這個在自動換行的時候非常有用。什麼是自動換行?不是手動按回車換行的那種換行。當螢幕寬度放不下所顯示文字的時候,則vim自動換行,這種換行不會算做行數,也就是說屬於一行中的文字。當用j和k定位行時,定位的是之前游標所停留在的位置上,而不是直接定位到螢幕中你想要定位到的那個行,只能用h或j來去定位到那行。所以使用命令0和$就顯得十分便捷了。描述的不是很清晰,大家可以自行試一下。
(4)移動到首行和移動到末行:gg(移動到首行),g(移動到末行)
(5)移動到指定行:ngg(n代表著數字,gg代表著移動)
例如:20gg,形象化解釋就是這個樣子,我要去20行,go!go!
(6)移動到模糊行:n+回車
例如:20+回車,我要向下移動20行!
[size=large][b]3.全文搜尋與替換[/b][/size]
(1)搜尋:/要搜尋的文字
例如:在一般模式下直接輸入命令/vim,然後回車進行查詢所有匹配值,如果有多個vim,就按n乙個乙個查詢。
(2)替換::%s/被替換的文字/要替換的文字/g(gc)
例如:在一般模式下直接輸入命令:%s/vim/vim/gc,會查詢到所有vim的匹配值,然後會逐個詢問你是否替換成vim;y是替換,n是不替換。
[size=large][b]4.文字編輯的基本操作[/b][/size]
(1)刪除:x(刪除當前字元),dd(刪除行),ndd(n代表行數,表示刪除多少行,包括當前行),dg(刪除當前行及後面的所有行)
d0(刪除當前字元之前從首字元起的字元,不包括當前字元),d$(刪除當前字元及之後至末字元的字元,包括當前字元)
(2)複製:yy,nyy,yg,y0,y$
上面的功能特性與刪除類似,弄懂乙個,其餘均能融會貫通。
(3)貼上:p
(5)撤銷與恢復:u(vim支援無限次撤銷),ctrl+r(無限次恢復)
(6)剪下:windows下ctrl+x,linux下****+insert
(7)選中整行:v(注意,大寫v)
[size=large][b]5.檔案的基本操作[/b][/size]
(1)將檔案寫入磁碟: :w(寫入),:w!(針對唯讀檔案,強行寫入),:wq(寫入並退出),:x(寫入並退出),:w 檔名(檔案另存為)
(2)退出vim: :q(退出),:q!(檔案寫入過了,但不儲存強行退出)
[size=large][b]6.其他常用命令[/b][/size]
(1)操作vi過程中,需要去呼叫shell命令 ::!命令
window命令或linux命令都可以。例如::!cmd,:!ls
如果tab多的話,可用命令gt來切換它們。
(3)垂直分割視窗:ctrl+w+v
輸入的時候會兩邊會同布改變,這個命令只對gvim有效,shell中無效。
切換兩個視窗的命令是ctrl+w+w。
[size=x-large][b][color=indigo]四、vim環境變數的配置[/color][/b][/size]
vim提供了非常靈活的環境引數供我們來配置它,有點像diy的精神。下面還是以簡單為主,介紹幾個經常配置的變數:
"終顯示行號
set nu!
"編碼設定
set enc=utf-8
"禁止生成臨時檔案
set nobackup
"始終顯示行號
set nu
"tab鍵的寬度
set shiftwidth=4
set tabstop=4
"自動縮排
set ai!
"搜尋忽略大小寫
set ignorecase
"配色方案
colorscheme evening
"智慧型補全
set completeopt=longest,menu
"去除gvim的選單欄和工具欄
set go=
[size=x-large][b][color=indigo]五、總結[/color][/b][/size]
以上就是最簡單最經常使用的操作命令,它們僅僅是vim命令當中的冰山一角;vi最大的魅力體現在可以將命令組合起來一起使用,(巨集命令?),大家有興趣可自行研究。偶爾換換不同口味的工具也是蠻不錯的,至少要比成天寫單調的**好得多。
用下意識去輸入命令,而不要在腦中過一遍再輸入,兩者的境界顯然沒可比性。
vim使用心得
1.統計行數 s n 2.檔案首尾切換 檔案首 1g 檔案尾 g 3.在shell裡開啟幾個檔案並且分屏 vim on file1 file2 4.跳到指定行 number 5.替換 addr s 源字串 目的字串 option addr 表示檢索範圍,省略時表示當前行。a 1,20 表示從第1行到...
vim 使用心得
以前總是很排斥使用這種很難記的編輯器,不過陸陸續續用了幾個月後,就漸漸離不開 vim 了。回想了一下學習時的過程,發現 vim 的一致性對於學習者而言很有幫助,許多操作都能舉一反三地猜測出來。下面的介紹只針對 vim 的初學者,其他人可以無視了。安裝 執行和儲存之類的我就略過了,這裡只關注文字編輯。...
三 Vim使用心得三
vim強大的功能大多聚集在普通模式下,大多數的命令都在普通模式下執行。但當我們在插入模式進行 編寫時,對於刪除 複製以及貼上命令來說,都會不可避免地會用上一些方便快捷的快捷鍵和命令。因此這次我們要學習的是插入模式和與之類似的替換模式,看看這些模式該如何高效地操作。在普通模式中,如果我們修改錯誤時,如...