?vim是什么?
Vim是一個類似于Vi的著名的功能強大、高度可定制的文本編輯器,在Vi的基礎上改進和增加了很多特性。Vim是自由軟件。
為什么使用Vim?
在我們剛接觸Vim的時候,各位小伙伴肯定都發現了,Vim的操作相當的繁瑣,光記住基本的操作就要好久好久,入門難度相當的高,那么,為什么那么多程序員還要使用Vim呢,在我看來,下面幾點點算是Vim受廣大程序員歡迎的原因了吧:
1.Vim通用性強,學習vim你無需擔心到了其他平臺需要學習新編輯器。
2.可擴展性強。你可以只用它來編輯配置文件,也可以將它當做你的開發平臺。
3.功能強大。它的工作方式與自然語言類似。即使一開始你對vim一無所知,經過一段時間的使用學習,很快也會成為牛人。
4.占資源少,我家那個老筆記本開Vim簡直就是秒開。。開Atom什么的就悲劇了。。
不過在這里我還是奉勸各位像我一樣的前端新手同學們,對于Vim的學習我們還是量力而行,剛開始記住簡單的操作,能讓我們在linux系統下用他完成基本操作即可。畢竟這個小東西上手難度還是挺高的,我們還是先花時間在學前端技術上吧,Vim以后等我們入了前端的門,有興趣了再研究吧!
Vim模式介紹
Vim不同意我們常用的編輯器,他的操作方式是在不同模式間切換并配合快捷鍵達到快速編輯的效果,那么,首先在介紹Vim常用操作前,我們先介紹一點關于Vim操作模式的知識
Vim具有6種基本模式和5種派生模式,我們只簡單介紹下6種基本模式:
普通模式(Normal mode)
在普通模式中,我們可以進行很多操作,比如碼農四大神技:增、刪、查、改。這也是Vim啟動后的默認模式。
Vim強大的編輯能來自于其普通模式命令。普通模式命令往往需要一個操作符結尾。例如普通模式命令dd刪除當前行,但是第一個"d"的后面可以跟另外的移動命令來代替第二個d,比如用移動到下一行的"j"鍵就可以刪除當前行和下一行。另外還可以指定命令重復次數,2dd(重復dd兩次),和dj的效果是一樣的。小伙伴們學習了各種各樣的文本間移動/跳轉的命令和其他的普通模式的編輯命令,并且能夠靈活組合使用的話,能夠比那些沒有模式的編輯器更加高效的進行文本編輯。
插入模式(Insert mode)
在普通模式中,有很多方法可以進入插入模式。比較普通的方式是按a(append/追加)鍵或者i(insert/插入)鍵。
在這個模式中,大多數按鍵都會向文本緩沖中插入文本。這個模式其實就像我們平時用的文本編輯器一樣,用來打字、寫代碼什么的。
在插入模式中,可以按ESC鍵回到普通模式。
可視模式(Visual mode)
這個模式與普通模式比較相似。但是移動命令會擴大高亮的文本區域。高亮區域可以是字符、行或者是一塊文本。當執行一個非移動命令時,命令會被執行到這塊高亮的區域上。Vim的"文本對象"也能和移動命令一樣用在這個模式中。
選擇模式(Select mode)
這個模式和windows下的編輯器的行為比較相似。這個模式中,可以用鼠標或者光標鍵可以高亮選擇文本,不過輸入任何字符的話,Vim會用這個字符替換選擇的高亮文本塊,并且自動進入插入模式。
命令行模式(Command line mode)
在命令行模式中可以輸入會被解釋成并執行的文本。例如執行命令(:鍵),搜索(/和?鍵)或者過濾命令(!鍵)。在命令執行之后,Vim返回到命令行模式之前的模式,通常是普通模式。
Ex模式(Ex mode)
這和命令行模式比較相似,在使用:visual命令離開Ex模式前,可以一次執行多條命令。
這其中我們常用到就是普通模式、插入模式和命令行模式。
Vim常用命令
Vim有很多很多的快捷鍵,那么在我們學習Vim初期,哪些是需要我們掌握的呢,下面我總結了一些Vim常用命令。
1.模式切換
vim啟動時進入到普通模式,普通模式中按i或a可以進入插入模式,普通模式中按:進入命令行模式。處于插入模式或命令行模式時按Esc即可進入普通模式。命令行模式中輸入wq回車后保存并退出vim。
2.光標移動(普通模式下)
h? ? ? ? 左
l? ? ? ? ?右? ? ??
j? ? ? ? ?下
k? ? ? ? 上
w? ? ? ? 移動到下一個單詞
b? ? ? ? 移動到上一個單詞
3.進入插入模式
i? ? ? ? ? 在當前光標處進行編輯
I? ? ? ? ? 在行首插入
A? ? ? ? 在行末插入
a? ? ? ? ?在光標后插入編輯
o? ? ? ? ?在當前行后插入一個新行
O? ? ? ? 在當前行前插入一個新行
cw? ? ? ?替換從光標所在位置后到一個單詞結尾的字符
4.命令行模式下保存文檔
從普通模式輸入:進入命令行模式,輸入w回車,保存文檔。輸入:w 文件名? 可以將文檔另存為其他文件名或存到其它路徑下
5.命令行模式下退出vim
從普通模式輸入:進入命令行模式,輸入wq回車,保存并退出編輯,其他命令如下
:q!? ? ? ? ? ? ? ? ? ? ? ? ?強制退出,不保存
:q? ? ? ? ? ? ? ? ? ? ? ? ? 退出
:wq!? ? ? ? ? ? ? ? ? ? ? 強制保存并退出
:w <文件路徑>? ? ?另存為
:saveas? ? ? ? ? ? ? ? 文件路徑另存為
:x? ? ? ? ? ? ? ? ? ? ? ? ? 保存并退出
:wq? ? ? ? ? ? ? ? ? ? ? ? 保存并退出
普通模式下輸入Shift+zz即可保存退出vim
6.刪除文本
x或Delete鍵? ? ? ? ? ? ? 刪除游標所在的字符
X? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?刪除游標所在前一個字符
dd? ? ? ? ? ? ? ? ? ? ? ? ? ? ?刪除整行
dw? ? ? ? ? ? ? ? ? ? ? ? ? ? ?刪除一個單詞
d$或D? ? ? ? ? ? ? ? ? ? ? ? 刪除至行尾
d^? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?刪除至行首
dG? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 刪除到文檔結尾處
d1G? ? ? ? ? ? ? ? ? ? ? ? ? ? 刪至文檔首部
還可以在命令之前加上數字,表示一次刪除多行,如:
2dd表示一次刪除2行
.