Vim是從 vi 發展出來的一個文本編輯器,代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程式員中被廣泛使用,
簡單的來說, vi 是老式的字處理器,不過功能已經很齊全了,但是還是有可以進步的地方, vim 則可以說是程式開發者的一項很好用的工具,
連 vim 的官方網站 (http://www.vim.org) 自己也說 vim 是一個程式開發工具而不是文字處理軟體,
一、移動游標
| 命令 | 說明 |
|---|---|
| h | 上 |
| j | 下 |
| k | 左 |
| l | 右 |
| ctrl-e | 移動頁面 |
| ctrl-f | 上翻一頁 |
| ctrl-b | 下翻一頁 |
| ctrl-u | 上翻半頁 |
| ctrl-d | 下翻半頁 |
| w | 跳到下一個字首,按標點或單詞分割 |
| W | 跳到下一個字首,長跳,如end-of-line被認為是一個字 |
| e | 跳到下一個字尾 |
| E | 跳到下一個字尾,長跳 |
| b | 跳到上一個字 |
| B | 跳到上一個字,長跳 |
| 0 | 跳至行首,不管有無縮進,就是跳到第0個字符 |
| ^ | 跳至行首的第一個字符 |
| $ | 跳至行尾 |
| gg | 跳至文首 |
| G | 調至文尾 |
| 5gg/5G | 調至第5行 |
| gd | 跳至當前游標所在的變數的宣告處 |
| fx | 在當前行中找x字符,找到了就跳轉至 |
| ; | 重復上一個f命令,而不用重復的輸入fx |
| * | 查找游標所在處的單詞,向下查找 |
| # | 查找游標所在處的單詞,向上查找 |
二、洗掉復制
| 命令 | 說明 |
|---|---|
| dd | 洗掉游標所在行 |
| dw | 洗掉一個字(word) |
| d/D | 洗掉到行末x洗掉當前字符X洗掉前一個字符yy復制一行yw復制一個字y/Y 復制到行末 |
| p | 粘貼粘貼板的內容到當前行的下面 |
| P | 粘貼粘貼板的內容到當前行的上面 |
三、插入模式
| 命令 | 說明 |
|---|---|
| i | 從當前游標處進入插入模式 |
| I | 進入插入模式,并置游標于行首 |
| a | 追加模式,置游標于當前游標之后 |
| A | 追加模式,置游標于行末 |
| o | 在當前行之下新加一行,并進入插入模式 |
| O | 在當前行之上新加一行,并進入插入模式 |
| Esc | 退出插入模式 |
四、編輯
J 將下一行和當前行連接為一行
cc 洗掉當前行并進入編輯模式
cw 洗掉當前字,并進入編輯模式
c$ 擦除從當前位置至行末的內容,并進入編輯模式
s 洗掉當前字符并進入編輯模式
S 洗掉游標所在行并進入編輯模式
xp 交換當前字符和下一個字符
u 撤銷
ctrl+r 重做
~ 切換大小寫,當前字符
>> 將當前行右移一個單位
<< 將當前行左移一個單位(一個tab符)
== 自動縮進當前行
五、查找替換
/pattern 向后搜索字串pattern
?pattern 向前搜索字串pattern
"\c" 忽略大小寫
"\C" 大小寫敏感
n 下一個匹配(如果是/搜索,則是向下的下一個,?搜索則是向上的下一個)
N 上一個匹配(同上)
:%s/old/new/g 搜索整個檔案,將所有的old替換為new
:%s/old/new/gc 搜索整個檔案,將所有的old替換為new,每次都要你確認是否替換
六、退出編輯器
:w 將緩沖區寫入檔案,即保存修改
:wq 保存修改并退出
(:x) 保存修改并退出 -- ps:命令沒有括號,因為不用括號會被編輯器轉換為 :x 所以加了括號
:q 退出,如果對緩沖區進行過修改,則會提示
:q! 強制退出,放棄修改
七、多檔案編輯
vim file1.. 同時打開多個檔案
:args 顯示當前編輯檔案
:next 切換到下個檔案
:prev 切換到前個檔案
:next! 不保存當前編輯檔案并切換到下個檔案
:prev! 不保存當前編輯檔案并切換到上個檔案
:wnext 保存當前編輯檔案并切換到下個檔案
:wprev 保存當前編輯檔案并切換到上個檔案
:first 定位首檔案
:last 定位尾檔案
ctrl+^ 快速在最近打開的兩個檔案間切換
:split[sp] 把當前檔案水平分割
:split file 把當前視窗水平分割, file
:vsplit[vsp] file 把當前視窗垂直分割, file
:new file 同split file
:close 關閉當前視窗
:only 只顯示當前視窗, 關閉所有其他的視窗
:all 打開所有的視窗
:vertical all 打開所有的視窗, 垂直打開
:qall 對所有視窗執行:q操作
:qall! 對所有視窗執行:q!操作
:wall 對所有視窗執行:w操作
:wqall 對所有視窗執行:wq操作
ctrl-w h 跳轉到左邊的視窗
ctrl-w j 跳轉到下面的視窗
ctrl-w k 跳轉到上面的視窗
ctrl-w l 跳轉到右邊的視窗
ctrl-w t 跳轉到最頂上的視窗
ctrl-w b 跳轉到最底下的視窗
八、多標簽編輯
:tabedit file 在新標簽中打開檔案file
:tab split file 在新標簽中打開檔案file
:tabp 切換到前一個標簽
:tabn 切換到后一個標簽
:tabc 關閉當前標簽
:tabo 關閉其他標簽
gt 到下一個tab
gT 到上一個tab
0gt 跳到第一個tab
5gt 跳到第五個tab
九、執行shell命令
在命令模式下輸入":sh",可以運行相當于在字符模式下,到輸入結束想回到VIM編輯器中用exit,ctrl+D回傳VIM編輯器
可以"!command",運行結束后自動回到VIM編輯器中
用“Ctrl+Z“回到shell,用fg回傳編輯
:!make -> 直接在當前目錄下運行make指令
十、VIM啟動項
-o[n] 以水平分屏的方式打開多個檔案
-O[n] 以垂直分屏的方式打開多個檔案
十一、自動排版
在粘貼了一些代碼之后,vim變得比較亂,只要執行gg=G就能搞定
十二、如何在vim中編譯程式
在vim中可以完成make,而且可以將編譯的結果也顯示在vim里,先執行 :copen 命令,將結果輸出的視窗打開,然后執行 :make
編譯后的結果就顯示在了copen打開的小視窗里了,而且用滑鼠雙擊錯誤資訊,就會跳轉到發生錯誤的行,
十三、buffer操作
buffer狀態
- (非活動的緩沖區)
a (當前被激活緩沖區)
h (隱藏的緩沖區)
% (當前的緩沖區)
# (交換緩沖區)
= (只讀緩沖區)
+ (已經更改的緩沖區)
十四、 VIM 操作目錄
1.打開目錄
vim .
vim a-path/
2.以下操作在操作目錄時生效
p,P,t,u,U,x,v,o,r,s
c 使當前打開的目錄成為當前目錄
d 創建目錄
% 創建檔案
D 洗掉檔案/目錄
- 轉到上層目錄
gb 轉到上一個 bookmarked directory
i 改變目錄檔案串列方式
^l 重繪當前打開的目錄
mf - 標記檔案
mu - unmark all marked files
mz - Compress/decompress marked files
gh 顯示/不顯示隱藏檔案( dot-files)
^h 編輯隱藏檔案串列
a 轉換顯示模式, all - hide - unhide
qf diplay infomation about file
qb list the bookmarked directories and directory traversal history
gi Display information on file
mb
mc
md - 將標記的檔案(mf標記檔案)使用 diff 模式
me - 編輯標記的檔案,只顯示一個,其余放入 buffer 中
mh
mm - move marked files to marked-file target directory
mc - copy
mp
mr
mt
3.vim 中復制,移動檔案
- mt - 移動到的目錄
- mf - 標記要移動的檔案
- mc - 移動/復制
- R 移動檔案
4.打開當前編輯檔案的目錄
:Explore
:Hexplore
:Nexplore
:Pexplore
:Sexplore
:Texplore
:Vexplore
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/256589.html
標籤:Linux
上一篇:cpu占滿了
下一篇:linux查看當前路徑命令
