開始使用 Vim(一)
vim被稱為是編輯器之神,如果可以學好vim的話,就可以在鍵盤上 “健指如飛” 了,可以完全擺脫鼠標來進行文本的定位編輯。 當然,vim還可以進行各種配置,裝上各種插件,做成 IDE ,會有很炫酷的感覺,而且做為 偉大 的軟件工程師,能在鍵盤上 刷刷刷地,靈活地超控自己的代碼也是一種非常值得 自豪的事,所以,我覺得,掌握 vim 是做為一個計算機方向專業的人的基礎課程,很有必要去接觸一下 vim 這個“編輯器之神”。 據說vim的學習曲線變化很大,而且對於我這個之前完全沒有接觸過的人來說,完全不知道應該是怎么入手,網上去查找資料,得到的全是一大堆 完全看不懂 的命令和各種看起來好屌的 vim的配置和 用vim作為 IDE 的教程,看起來很厲害,可是卻不是我想要的,我想要的是,我該怎么去入門這個東西,不需要聽那么多復雜的完整的,像是字典一樣的命令集合,而是一個能讓我開始去使用 vim 的教程,能告訴我,剛開始該怎么去玩它。
開啟
下載 gvim 安裝,然后windows系統的cmd命令打開gvim,也可以直接打開gvim.exe 建立一個文檔:vim test.txt. 好了,算是開啟 VIM 了。
簡單介紹
簡單了解一下幾種模式
1. 普通模式 Vim編輯方式的主要用途是在被編輯的文件中移動光標的位置。 一旦光標移到到所要的位置,就可以進行剪切和粘貼正文塊,刪除正文和插入新的正文。當完成所有的編輯工作后,需要保存編輯器結果,退出編輯程序回到終端 2. 插入模式 按下 i 就可以進入插入模式,按下 esc 回到編輯模式。 插入模式其實就是想我們正常使用文本編輯器那樣,進行文字,代碼的書寫,但是光標的移動需要鼠標的輔助。 3. 命令行模式 使用 :進入命令行模式。 4. 可視模式 按下 v 進入可視模式,可以移動光標對文本進行選擇。
掌握幾個常用的操作
打開: :e path_to_file/filename 存盤: :w 保存 :q 退出 :wq 保存並退出 wq 后面可以加文件名 :q! 強制退出 刪除/復制/粘貼: x 刪除當前光標所在的字符 dd 刪除當前光標所在的行 yy 復制當前行 nyy 復制n行 p 小寫字母 p,將緩沖區的內容粘貼到光標的后面 P 大寫字母 P,將緩沖區的內容粘貼到光標的前面 u 撤銷
學會在文本中移動光標
1 上下左右
h(左) j(下) k(上) l(右)
2 行內移動
w 右移光標到下一個字的開頭; e 右移光標到一個字的末尾; b 左移光標到前一個字的開頭; 0 數字0,左移光標到本行的開始; $ 右移光標,到本行的末尾; ^ 移動光標,到本行的第一個非空字符。
3 更大范圍的移動:
* 當光標停留在一個單詞上,* 鍵會在文件內搜索該單詞,並跳轉到下一處; # 當光標停留在一個單詞上,# 在文件內搜索該單詞,並跳轉到上一處; (/) 移動到 前/后 句 的開始; {/} 跳轉到 當前/下一個 段落 的開始。 g_ 到本行最后一個不是 blank 字符的位置。 fa 到下一個為 a 的字符處,你也可以fs到下一個為s的字符。 t, 到逗號前的第一個字符。逗號可以變成其它字符。 3fa 在當前行查找第三個出現的 a。 F/T 和 f 和 t 一樣,只不過是相反方向; gg 將光標定位到文件第一行起始位置; G 將光標定位到文件最后一行起始位置; NG或Ngg 將光標定位到第 N 行的起始位置。
4 找到需要的 某一頁
: n 將光標移到第 n 行 ctrl+f 在文件中前移一頁(相當於 page down); ctrl+b 在文件中后移一頁(相當於 page up); H 將光標移到屏幕上的起始行(或最上行); M 將光標移到屏幕中間; L 將光標移到屏幕最后一行。 3L 表示將光標移到屏幕的倒數第3行
好了,到這里可以自個兒玩一陣子了,自己多試試上面的那些指令啊,體驗一下脫離鼠標,讓指尖游走在鍵盤上操控光標的成就感吧。
搜索查找文本內容
Vim中執行搜索匹配最強大的地方是結合 正則表達式 來搜索
當然,文本編輯,怎么可能少了搜索呢。
搜索方法是:鍵入字符 / ,后面跟以要搜索的字符串,然后按回車鍵。編輯程序執行正向搜索(即朝文件末尾方向),並在找到指定字符串后,將光標停到該字符串的開頭;鍵入 n 命令可以繼續執行搜索,找出這一字符串下次出現的位置。用字符 ? 取代 / ,可以實現反向搜索(朝文件開頭方向)。例如:
/str1 正向搜索字符串 str1; n 繼續搜索,找出 str1 字符串下次出現的位置; N 繼續搜索,找出 str1 字符串上一次出現的位置; ?str2 反向搜索字符串 str2 。
替換
Vim常規的刪除命令是 d、 x (前者刪除 行 ,后者刪除 字符 ),結合Vim的其他特性可以實現基礎的刪除功能。將光標定位於文件內指定位置后,可以用其他字符來替換光標所指向的字符,或從當前光標位置刪除一個或多個字符或一行、多行。例如:
d$ 從當前光標起刪除字符直到行的結束; d0 從當前光標起刪除字符直到行的開始; J 刪除本行的回車符(CR),並和下一行合並。
其他命令:
rc 用 c 替換光標所指向的當前字符; nrc 用 c 替換光標所指向的前 n 個字符; 5rA 用 A 替換光標所指向的前 5 個字符; x 刪除光標所指向的當前字符; nx 刪除光標所指向的前 n 個字符; 3x 刪除光標所指向的前 3 個字符; dw 刪除光標右側的字; ndw 刪除光標右側的 n 個字; 3dw 刪除光標右側的 3 個字; db 刪除光標左側的字; ndb 刪除光標左側的 n 個字; 5db 刪除光標左側的 5 個字; dd 刪除光標所在行,並去除空隙; ndd 刪除(剪切) n 行內容,並去除空隙; 3dd 刪除(剪切) 3 行內容,並去除空隙;
最后希望,博客園能有一個真正好用的 Markdown 編輯器。。。