Vi命令大全
:set all 打印所有選項
:set nooption 關閉option 選項
:set nu 每行前打印行號
:set showmode 顯示是輸入模式還是替換模式
:set noic 查找時忽略大小寫
:set list 顯示制表符(^I) 和行尾符號
:set ts=8 為文本輸入設置tab stops
:set window=n 設置文本窗口顯示n 行
移動
G 移到文件的最後一行
gg 移動到第一行
nG 移到文件的第n 行
m(a-z) 用一個字母來標記當前位置,如用mz 表示標記z
'(a-z) 將光標移動到指定的標記,如用'z 表示移動到z
''(兩個單引號) -回到光標跳轉前的位置
% -移動到與之匹配的括號上去(),{},[],<>等,後面會看到,"%"很有用。
CTRL+G -得到當前光標在文件中的位置
0 或| 移到當前行的第一列
$ 移到當前行的最後一個字符
n| 移到當前行的第n 列
+ 或return 移到下一行的第一個字符
- 移到前一行的第一個非空字符
:r file 讀入文件file 內容,並插在當前行後
:nr file 讀入文件file 內容,並插在第n 行後
刪除
dG 刪除行,直到文件結束
dd 刪除整行
:set ic 查找時忽略大小寫
:set noic 查找時對大小寫敏感
:v/text/command 在所有不包含text 的行運行command 所表示的命令
yy 將當前行的內容放入臨時緩沖區
nyy 將n 行的內容放入臨時緩沖區
p 將臨時緩沖區中的文本放入光標後
P 將臨時緩沖區中的文本放入光標前
u 撤消最後一次修改
U 撤消當前行的所有修改
vi 中的shell 轉義命令
:!command 執行shell 的command 命令,如:!ls
:!! 執行前一個shell 命令
:r!command 讀取command 命令的輸入並插入,如:r!ls 會先執行ls ,然後讀入內容
:w!command 將當前已編輯文件作為command 命令的標准輸入並執行command 命令,如:w!grep all
:cd Director y 將當前工作目錄更改為directory 所表示的目錄
:sh 將啟動一個子shell ,使用^d(ctrl+d) 返回vi
:so file 在shell 程序file 中讀入和執行命令
:%s/^/Head content/g 全局插入開頭信息
:%s/$/Tail content/g 全局插入尾部信息
:%s= *$== 將所有行尾多余的空格刪除
:g/^\s*$/d 將所有不包含字符(空格也不包含)的空行刪除.