標籤:vim 編輯器
一、vim模式介紹
以下介紹內容來自維基百科Vim
從vi演生出來的Vim具有多種模式,這種獨特的設計容易使初學者產生混淆。幾乎所有的編輯器都會有插入和執行命令兩種模式,並且大多數的編輯器使用了與Vim截然不同的方式:命令目錄(滑鼠或者鍵盤驅動),按鍵組合(通常通過control鍵(CTRL)和alt鍵(ALT)組成)或者滑鼠輸入。Vim和vi一樣,僅僅通過鍵盤來在這些模式之中切換。這就使得Vim可以不用進行菜單或者滑鼠操作,並且最小化按鍵組合的操作。對文字錄入員或者程式員可以大大增強速度和效率。
Vim具有6種基本模式和5種派生模式,我們這裡只簡單介紹下6種基本模式:
在普通模式中,用的編輯器命令,比如移動游標,刪除文本等等。這也是Vim啟動後的預設模式。這正好和許多新使用者期待的操作方式相反(大多數編輯器預設模式為插入模式)。
Vim強大的編輯能來自於其普通模式命令。普通模式命令往往需要一個操作符結尾。例如普通模式命令dd
刪除當前行,但是第一個"d"的後面可以跟另外的移動命令來代替第二個d
,比如用移動到下一行的"j"鍵就可以刪除當前行和下一行。另外還可以指定命令重複次數,2dd
(重複dd
兩次),和dj
的效果是一樣的。使用者學習了各種各樣的文本間移動/跳轉的命令和其他的普通模式的編輯命令,並且能夠靈活組合使用的話,能夠比那些沒有模式的編輯器更加高效的進行文本編輯。
在普通模式中,有很多方法可以進入插入模式。比較普通的方式是按a
(append/追加)鍵或者i
(insert/插入)鍵。
在這個模式中,大多數按鍵都會向文本緩衝中插入文本。大多數新使用者希望文字編輯器編輯過程中一直保持這個模式。
在插入模式中,可以按ESC
鍵回到普通模式。
這個模式與普通模式比較相似。但是移動命令會擴大高亮的文本地區。高亮地區可以是字元、行或者是一塊文本。當執行一個非移動命令時,命令會被執行到這塊高亮的地區上。Vim的"文字物件"也能和移動命令一樣用在這個模式中。
這個模式和無模式編輯器的行為比較相似(Windows標準文本控制項的方式)。這個模式中,可以用滑鼠或者游標鍵高亮選擇文本,不過輸入任何字元的話,Vim會用這個字元替換選擇的高亮文字區塊,並且自動進入插入模式。
在命令列模式中可以輸入會被解釋成並執行的文本。例如執行命令(:
鍵),搜尋(/
和?
鍵)或者過濾命令(!
鍵)。在命令執行之後,Vim返回到命令列模式之前的模式,通常是普通模式。
這和命令列模式比較相似,在使用:visual
命令離開Ex模式前,可以一次執行多條命令。
這其中我們常用到就是普通模式、插入模式和命令列模式,本課程也只涉及這三個常用模式的內容
2.三種常用模式的切換
vim啟動進入普通模式,處於插入模式或命令列模式時只需要按Esc
或者Ctrl+[
(這在vim課程環境中不管用)即可進入普通模式。普通模式中按i
(插入)或a
(附加)鍵都可以進入插入模式,普通模式中按:
進入命令列模式。命令列模式中輸入wq
斷行符號後儲存並退出vim。
二、進入vim1.使用vim命令進入vim介面
vim後面加上你要開啟的已存在的檔案名稱或者不存在(則作為建立檔案)的檔案名稱。開啟Xfce終端,輸入以下命令
$ vim practice_1.txt
直接使用vim也可以開啟vim編輯器,但是不會開啟任何檔案。
$ vim
進入命令列模式後輸入:e 檔案路徑
同樣可以開啟相應檔案。
2.遊標移動
在進入vim後,按下i
鍵進入插入模式。在該模式下您可以輸入文本資訊,下面請輸入如下三行資訊:
12345678abcdefghijkshiyanlou.com
按Esc
進入普通模式,在該模式下使用方向鍵或者h
,j
,k
,l
鍵可以移動遊標。
按鍵 |
說明 |
h |
左 |
l |
右(小寫L) |
j |
下 |
k |
上 |
w |
移動到下一個單詞 |
b |
移動到上一個單詞 |
請嘗試在普通模式下使用方向鍵移動游標到shiyanlou
這幾個字母上面。
三、進入插入模式1.進入插入模式
在普通模式下使用下面的鍵將進入插入模式,並可以從相應的位置開始輸入
命令 |
說明 |
i |
在當前游標處進行編輯 |
I |
在行首插入 |
A |
在行末插入 |
a |
在游標後插入編輯 |
o |
在當前行後插入一個新行 |
O |
在當前行前插入一個新行 |
cw |
替換從游標所在位置後到一個單詞結尾的字元 |
請嘗試不同的從普通模式進入插入模式的方法,在最後一行shiyanlou前面加上www.
,注意每次要先回到普通模式才能切換成以不同的方式進入插入模式
四、儲存文檔1.命令列模式下儲存文檔
從普通模式輸入:
進入命令列模式,輸入w
斷行符號,儲存文檔。輸入:w 檔案名稱
可以將文檔另存新檔其他檔案名稱或存到其它路徑下
五、退出vim1.命令列模式下退出vim
從普通模式輸入:
進入命令列模式,輸入wq
斷行符號,儲存並退出編輯
以下為其它幾種退出方式:
命令 |
說明 |
:q! |
強制退出,不儲存 |
:q |
退出 |
:wq! |
強制儲存並退出 |
:w <檔案路徑> |
另存新檔 |
:saveas 檔案路徑 |
另存新檔 |
:x |
儲存並退出 |
:wq |
儲存並退出 |
2.普通模式下退出vim
普通模式下輸入Shift+zz
即可儲存退出vim
六、刪除文本1.普通模式下刪除vim文本資訊
進入普通模式,使用下列命令可以進行文本快速刪除:
命令 |
說明 |
x |
刪除遊標所在的字元 |
X |
刪除遊標所在前一個字元 |
Delete |
同x |
dd |
刪除整行 |
dw |
刪除一個單詞(不適用中文) |
d$ 或D |
刪除至行尾 |
d^ |
刪除至行首 |
dG |
刪除到文檔結尾處 |
d1G |
刪至文檔首部 |
除此之外,你還可以在命令之前加上數字,表示一次刪除多行,如:
2dd
表示一次刪除2行
我們來做如下練習:
$ cp /etc/protocols .$ vim protocols
七、總結
vim初體驗你是不是覺得很奇妙呢,或許目前你還沒有vim產生任何好感,不覺得它是一款優秀的編輯器,那隻能是因為你還沒能掌握vim的精髓,或者是你打字太慢,回去在小霸王學習機上再練練吧-_-||。這裡也可以先透露下,vim的精髓就在於命令鍵的組合,全鍵盤的操作,可以使你收不離開鍵盤輸入地區即可完成所有的操作,那可真實即高效又炫酷的體驗啊,當你掌握這項技能絕對可以秒掉其它不會用vim的程式員幾條街(起碼在氣勢上吧,當然還要除掉哪些只會Emacs的程式員,因為Emacs與Vim之間有場戰爭,感興趣的可以看這裡Emacs和Vim:神的編輯器和編輯器之神)
Vim 編輯器 初學(1)