-
Vim
-
安裝Vim
-
啟動Vim
vim 直接啟動vim
-
文件命令
打開單個文件
vim file
同時打開多個文件
vim file1 file2 file3 ...
在vim窗口中打開一個新文件
:open file
在新窗口中打開文件
:split file
切換到下一個文件
:bn
切換到上一個文件
:bp
查看當前打開的文件列表,當前正在編輯的文件會用[]括起來。
:args
打開遠程文件,比如ftp或者share folder
:e ftp://192.168.10.76/abc.txt
:e \\qadrive\test\1.txt
-
Vim模式
正常模式(按Esc或Ctrl+[進入) 左下角顯示文件名或為空
插入模式(按i鍵進入) 左下角顯示--INSERT--
可視模式(正常模式下 按v進入) 左下角顯示--VISUAL--
-
插入命令
i 在當前位置生前插入
I 在當前行首插入
a 在當前位置后插入
A 在當前行尾插入
o 在當前行之后插入一行
O 在當前行之前插入一行
cw 替換從光標所在位置后到一個單詞結尾的字符
-
簡單的移動光標
0
→ 數字零,到行頭
^
→ 到本行第一個不是blank字符的位置(所謂blank字符就是空格,tab,換行,回車等)
$
→ 到本行行尾
g_
→ 到本行最后一個不是blank字符的位置。
/pat
tern
→ 搜索 pattern
的字符串(陳皓注:如果搜索出多個匹配,可按n鍵到下一個)
- 簡單的刪除
x 刪除當前光標下的字符
dw 刪除光標之后的單詞剩余部分。
d$ 刪除光標之后的該行剩余部分。
dd 刪除當前行。
c 功能和d相同,區別在於完成刪除操作后進入INSERT MODE
cc 也是刪除當前行,然后進入INSERT MODE
-
拷貝/粘貼
P
→ 粘貼(p/P都可以,p是表示在當前位置之后,P表示在當前位置之前)
yy
→ 拷貝當前行當行於 ddP
-
Undo/Redo
u
→ undo
<C-r>
→ redo
-
打開/保存/退出/改變文件(Buffer)
:e <path/to/file>
→ 打開一個文件
:w
→ 存盤
:saveas <path/to/file>
→ 另存為 <path/to/file>
:x
, ZZ
或 :wq
→ 保存並退出 (:x
表示僅在需要時保存,ZZ不需要輸入冒號並回車)
:q!
→ 退出不保存 :qa!
強行退出所有的正在編輯的文件,就算別的文件有更改。
:bn
和 :bp
→ 你可以同時打開很多文件,使用這兩個命令來切換下一個或上一個文件。
到此為止,以上為Vim的一些基本操作所需要的命令。
- 查找命令
/text 查找text,按n健查找下一個,按N健查找前一個。
?text 查找text,反向查找,按n健查找下一個,按N健查找前一個。
vim中有一些特殊字符在查找時需要轉義 .*[]^%/?~$
:set ignorecase 忽略大小寫的查找
:set noignorecase 不忽略大小寫的查找
查找很長的詞,如果一個詞很長,鍵入麻煩,可以將光標移動到該詞上,按*或#鍵即可以該單詞進行搜索,相當於/搜索。而#命令相當於?搜索。
:set hlsearch 高亮搜索結果,所有結果都高亮顯示,而不是只顯示一個匹配。
:set nohlsearch 關閉高亮搜索顯示
:nohlsearch 關閉當前的高亮顯示,如果再次搜索或者按下n或N鍵,則會再次高亮。
:set incsearch 逐步搜索模式,對當前鍵入的字符進行搜索而不必等待鍵入完成。
:set wrapscan 重新搜索,在搜索到文件頭或尾時,返回繼續搜索,默認開啟。
-
替換命令
ra 將當前字符替換為a,當期字符即光標所在字符。
s/old/new/ 用old替換new,替換當前行的第一個匹配
s/old/new/g 用old替換new,替換當前行的所有匹配
%s/old/new/ 用old替換new,替換所有行的第一個匹配
%s/old/new/g 用old替換new,替換整個文件的所有匹配
:10,20 s/^/ /g 在第10行知第20行每行前面加四個空格,用於縮進。
ddp 交換光標所在行和其下緊鄰的一行。
- VI中的多行刪除與復制
法一:
單行刪除,:1(待刪除行)d
多行刪除 ,:1,10d
法二:
光標所在行,dd
光標所在行以下的N行,Ndd
方法1:
光標放到第6行,
輸入:2yy
光標放到第9行,
輸入:p
此方法適合復制少量行文本的情況,復制第6行(包括)下面的2行數據,放到第9行下面。
方法2:
命令行模式下輸入
6,9 co 12
復制第6行到第9行之間的內容到第12行后面。
方法3:
有時候不想費勁看多少行或復制大量行時,可以使用標簽來替代
光標移到起始行,輸入ma
光標移到結束行,輸入mb
光標移到粘貼行,輸入mc
然后 :'a,'b co 'c 把 co 改成 m 就成剪切了
要刪除多行的話,可以用 :5, 9 de