vim常用配置(這個可能更容易看懂一點)
阿新 • • 發佈:2019-01-09
常用配置
:set number 顯示行號
:set nonumber 取消行號
:set numberwidth=3 設定行號列寬
:set hlsearch 高亮顯示搜尋內容
:set incsearch 輸入關鍵字的時候高亮顯示
:set ignorecase 搜尋時忽略大小寫
:set wrapscan 迴圈搜尋(預設值)
:set nowrapscan 只搜尋一次
:set showmatch 在輸入右括號時,短暫地跳到對應括號處
:set matchtime=10 跳轉時間,單位:十分之一秒
:set cursorcolumn 高亮游標所在列
:set nocursorcolumn 取消高亮游標所在列
:set cursorline 高亮游標所在行
:set nocursorline 取消高亮游標所在行
:set wrap 自動換行
:set nowrap 取消自動換行
:set autoindent 保持上一行的縮排
:set shiftwidth=4 設定縮排單位
:set ruler 在右下角顯示游標位置
:set noruler 不顯示游標位置
:set scrolloff=3 使游標始終和上下邊緣相距3行
:set list 設定製表符可見
:set autochdir 將當前目錄自動切換為檔案所在目錄
:set scrollbind 設定多視窗同步滾動
:set noscrollbind 取消多視窗同步滾動
:set autoread 如果檔案被修改,自動讀入,該項可能會不起作用
:set backspace=indent,eol,start 在Insert模式可以刪除行首的空格、斷行、進入Insert模式之前的位置
:set readonly 設定只讀,該項寫在配置檔案中可能不起作用,在編輯時有效
:set fileformat? 顯示當前的檔案格式
:set nomodifiable 設定不可修改
:syntax on 開啟語法高亮
:syntax off 取消語法高亮
:filetype on 自動識別檔案型別
:colorscheme desert 選擇顏色方案
常用命令
Command mode
gf 開啟以當前字元的檔案
ga 顯示當前字元的ascii、十進位制、十六進位制
{ 移動到上一個空行
} 移動到下一個空行
gd 轉到定義該變數處
!!{filter} 2 通過 {filter} 命令過濾 N 行
# 1 反向搜尋第 N 次出現的游標所在的識別符號
$ 1 游標移動到往下第 N 行的行尾之後
% 1 查詢本行下一個 (花/方) 括號,並轉到其匹配的 括號上,或者轉到匹配的註釋配對上,或者轉到 匹配的預處理命令上。
{count}% 1 轉到檔案的百分之 N 的位置上
& 2 重複上次 :s
( 1 游標回退 N 個句子
) 1 游標前進 N 個句子
* 轉到與當前單詞相處的下一個單詞處
. 2 重複最近的改變,其計數被 N 取代
0 游標移動到本行的第一個字元上
>> 右縮排
<< 左縮排
@: 重複上次的 ":" 命令 N 次
A 2 在行尾附加文字 N 次
B 1 游標反向移動 N 個 WORD (字串)
E 1 游標正向移動到第 N 個 WORD 的結束處
G 1 游標移動到第 N 行,預設是最後一行
H 1 游標移動到螢幕頂部開始算的第 N 行
I 1 在本行第一個 CHAR 之前插入文字 N 次
J 2 連線 (Join) N 行;預設為 2
L 1 游標移動到螢幕底部開始算的第 N 行
M 游標移動到螢幕的中間一行
N 1 反方向重複最近的 '/' 或 '?' N 次
O 2 在游標上方開始一個新行,並插入文字,重複 N次
Q 切換到 "Ex" 模式
R 2 進入替換模式: 覆蓋存在的字元,重複輸入文字N-1 次
U 撤消一行內所有最近的改變
V 進入面向行的可視 (Visual) 模式
W 1 游標前移 N 個 WORD
ZZ 如果修改過,儲存當前檔案,然後退出
ZQ 無論如何退出當前檔案
^ 游標移動到本行的第一個 CHAR 上
a 2 在游標處附加文字 N 次
b 1 游標反向移動 N 個單詞
do 2 等同於 ":diffget"
dp 2 等同於 ":diffput"
e 1 游標正向移動到第 N 個單詞的結束處
h 1 游標左移 N 個字元
i 2 在游標前插入文字 N 次
j 1 游標下移 N 行
k 1 游標上移 N 行
l 1 游標右移 N 個字元
m{A-Za-z} 在游標位置處設定位置標記 {A-Za-z}
n 1 重複最近的 '/' 或 '?' N 次
o 1 在游標下方開始一個新行,並插入文字,重複 N次
q: 在命令列窗口裡編輯 : 命令列
q/ 在命令列窗口裡編輯 / 命令列
q? 在命令列窗口裡編輯 ? 命令列
r{char} 1 用 {char} 替換 N 個字元
u 撤消改變
v 開始面向字元的可視 (Visual) 模式
w 1 游標前移 N 個單詞
~ 2 'tildeop' 關閉時: 切換游標所在處開始的 N 個字元的大小寫,並右移游標 N 個字元
~{motion} 'tildeop' 開啟時: 切換 Nmove 文字的大小寫
ctrl+A 2 把 N 加到游標所在/之後的數值上
ctrl+B 1 反向 (Back) 滾動 N 屏
ctrl+d 文件向上移動半屏
ctrl+e 文件向上滾動一行
ctrl+f 文件向上移動一屏
ctrl+g 顯示當前檔名和位置
ctrl+L 重畫螢幕
ctrl+R 2 重做 'u' 撤消的改變
ctrl+U 上滾 (Upwards) N 行 (預設: 半屏)
ctrl+V 開始面向列塊的可視 (Visual) 模式
ctrl+X 2 從游標所在/之後的數值上減去 N
ctrl+Y 下滾 N 行
ctrl+Z 暫停程式 (或者啟動新的外殼)
Ctrl+^ 編輯第 N 個輪換檔案 (等價於 ":e #N")
Last line mode
:! 過濾行,或可通過外部命令執行之
:!! 重複上次的 ":!" 命令
:# 等同於 ":number"
:& 重複上次的 ":substitute"
:* 重複上次的 ":substitute"
:= 顯示游標所在的行號
:> 將行右移一個 'shiftwidth'
:@ 執行暫存器的內容
:@@ 重複上次的 ":@"
:N[ext] 轉到引數列表的上一個檔案
:P[rint] 顯示行
:X 請求加密金鑰
:a[ppend] 附加文字
:ar[gs] 顯示引數列表
:bd[elete] 從緩衝區列表刪除緩衝區
:bn[ext] 轉到緩衝區列表裡的下一個緩衝區
:bp[revious] 轉到緩衝區列表裡的上一個緩衝區
:bro[wse] 使用檔案選擇對話方塊
:buffers 列出緩衝區列表裡的所有檔案
:cal[l] 呼叫函式
:cd 改變目錄
:ce[nter] 排版行,使其居中對齊
:cha[nges] 顯示修改的列表
:chd[ir] 改變當前目錄
:clo[se] 關閉當前視窗
:diffs[plit] 顯示和另外一個檔案的差異
:diffthis 使得當前視窗成為 diff 視窗
:dig[raphs] 顯示或者輸入二合字母
:dif[fupdate] 更新 'diff' 緩衝區
:di[splay] 顯示暫存器
:e[dit] 編輯檔案
:ec[ho] 回顯表示式結果
:files 列出緩衝區列表的所有檔案
:filet[ype] 切換檔案型別檢測的開啟/關閉
:fir[st] 轉到引數列表的第一個檔案
:ha[rdcopy] 傳送文字到印表機
:hi[ghlight] 指定高亮方法
:his[tory] 顯示歷史列表
:hid[e] 為一個命令隱藏當前緩衝區
:int[ro] 顯示介紹文字
:la[st] 轉到引數列表的最後一個檔案
:lan[guage] 設定語言 (locale)
:le[ft] 左對齊行
:m[ove] 移動行
:map 顯示或者輸入對映
:marks 列出所有的位置標記
:mat[ch] 定義要高亮顯示的匹配的模式
:mes[sages] 顯示以前顯示的訊息
:mk[exrc] 寫入當前對映和設定到檔案
:mks[ession] 寫入會話資訊到檔案
:mkvie[w] 寫入當前視窗的檢視到檔案
:new 建立一個新的空白視窗
:n[ext] 跳轉到引數列表的下一個檔案
:nu[mber] 顯示文字行時給出行號
:on[ly] 關閉當前視窗,除了當前的視窗以外
:opt[ions] 開啟選項視窗
:prev[ious] 跳轉到引數列表裡的上一個檔案
:pro[mptfind] 開啟 GUI 對話方塊進行搜尋
:promptr[epl] 開啟 GUI 對話方塊進行搜尋/替代
:pc[lose] 關閉預覽視窗
:ped[it] 在預覽視窗編輯檔案
:perld[o] 對每行都執行 Perl 命令
:pw[d] 顯示當前目錄
:q[uit] 退出當前視窗 (如果只有一視窗,則退出 Vim)
:quita[ll] 退出 Vim
:qa[ll] 退出 Vim
:r[ead] 讀入檔案到文字
:rec[over] 從交換檔案裡恢復檔案
:red[o] 重做一次撤銷的改變
:redi[r] 重定向訊息到檔案或者暫存器
:redr[aw] 強迫顯示的重畫
:redraws[tatus] 強迫狀態行的重畫
:reg[isters] 顯示暫存器的內容
:res[ize] 改變當前視窗的高度
:ri[ght] 右對齊文字
:sav[eas] 用別的名字儲存檔案
:scrip[tnames] 列出所有執行過的 Vim 指令碼的名字
:sh[ell] 退到外殼程式
:sl[eep] 幾秒內不作任何事
:sor[t] 給行排序
:so[urce] 從檔案裡讀取 Vim 或 Ex 命令
:sp[lit] 分割當前視窗
:tabe[dit] 在新標籤頁裡編輯檔案
:tabnew 在新標籤頁裡編輯檔案
:tabs 列出標籤頁以及裡面包含的內容
:up[date] 如果有修改,寫回緩衝區
:vne[w] 建立新的空白視窗,垂直分割
:ve[rsion] 顯示版本號和其它資訊
:vs[plit] 垂直分割當前視窗
:wa[ll] 寫回所有 (改變的) 緩衝區
:wn[ext] 寫回檔案,然後跳轉到引數列表的下一個檔案
:wp[revious] 寫回檔案,然後跳轉到引數列表的前一個檔案
:w[rite] 寫回檔案
:wq 寫回檔案,然後退出視窗或者 Vim
:wqa[ll] 寫回所有 (改變的) 緩衝區然後退出 Vim
:~ 重複上次 ":substitute"
Insert mode
[email protected] 插入最近插入的文字並停止插入
ctrl+A 插入最近插入的文字
ctrl+C 退出插入模式
ctrl+D 在當前行刪除一個shiftwidth的縮排
ctrl+I 等同於<Tab>
ctrl+J 等同於<CR>
ctrl+k {char1} {char2} 輸入二合字母
ctrl+M 等同於<CR>
ctrl+N 查詢游標前的關鍵字的下一個匹配
ctrl+P 查詢游標前面的關鍵字的前一個匹配
ctrl+R 插入暫存器內容
ctrl+T 在當前行插入一個 shiftwidth 的縮排
ctrl+U 刪除當前行的所有輸入字元
ctrl+W 刪除游標前的單詞
ctrl+N 根據已輸入部分向後查詢匹配
ctrl+X ctrl+F 彈出當前目錄中的檔案列表
ctrl+x ctrl+I 彈出所有行列表
ctrl+x ctrl+v 彈出vim命令列表
ctrl+x ctrl+d 彈出巨集定義列表
ctrl+x ctrl+i 彈出當前檔案和被當前檔案include單詞列表
ctrl+x ctrl+k 彈出一個字典檔案的單詞列表
ctrl+x ctrl+t 彈出一個thesaurus的單詞列表
Else
vim –R file 以只讀的形式開啟檔案
vim –o file file1 為每個檔案開啟一個視窗,水平排列
vim –O file file1 為每個檔案開啟一個視窗,垂直排列
vimdiff file file 檔案比較
用Secure Shell連線Linux時,vim不顯示語法高亮的解決辦法:在/etc/profile里加上export TERM=dtterm
vim -o suren suren1 #分割視窗的形式開啟
:set number 顯示行號
:set nonumber 取消行號
:set numberwidth=3 設定行號列寬
:set hlsearch 高亮顯示搜尋內容
:set incsearch 輸入關鍵字的時候高亮顯示
:set ignorecase 搜尋時忽略大小寫
:set wrapscan 迴圈搜尋(預設值)
:set nowrapscan 只搜尋一次
:set showmatch 在輸入右括號時,短暫地跳到對應括號處
:set matchtime=10 跳轉時間,單位:十分之一秒
:set cursorcolumn 高亮游標所在列
:set nocursorcolumn 取消高亮游標所在列
:set cursorline 高亮游標所在行
:set nocursorline 取消高亮游標所在行
:set wrap 自動換行
:set nowrap 取消自動換行
:set autoindent 保持上一行的縮排
:set shiftwidth=4 設定縮排單位
:set ruler 在右下角顯示游標位置
:set noruler 不顯示游標位置
:set scrolloff=3 使游標始終和上下邊緣相距3行
:set list 設定製表符可見
:set autochdir 將當前目錄自動切換為檔案所在目錄
:set scrollbind 設定多視窗同步滾動
:set noscrollbind 取消多視窗同步滾動
:set autoread 如果檔案被修改,自動讀入,該項可能會不起作用
:set backspace=indent,eol,start 在Insert模式可以刪除行首的空格、斷行、進入Insert模式之前的位置
:set readonly 設定只讀,該項寫在配置檔案中可能不起作用,在編輯時有效
:set fileformat? 顯示當前的檔案格式
:set nomodifiable 設定不可修改
:syntax on 開啟語法高亮
:syntax off 取消語法高亮
:filetype on 自動識別檔案型別
:colorscheme desert 選擇顏色方案
常用命令
Command mode
gf 開啟以當前字元的檔案
ga 顯示當前字元的ascii、十進位制、十六進位制
{ 移動到上一個空行
} 移動到下一個空行
gd 轉到定義該變數處
!!{filter} 2 通過 {filter} 命令過濾 N 行
# 1 反向搜尋第 N 次出現的游標所在的識別符號
$ 1 游標移動到往下第 N 行的行尾之後
% 1 查詢本行下一個 (花/方) 括號,並轉到其匹配的 括號上,或者轉到匹配的註釋配對上,或者轉到 匹配的預處理命令上。
{count}% 1 轉到檔案的百分之 N 的位置上
& 2 重複上次 :s
( 1 游標回退 N 個句子
) 1 游標前進 N 個句子
* 轉到與當前單詞相處的下一個單詞處
. 2 重複最近的改變,其計數被 N 取代
0 游標移動到本行的第一個字元上
>> 右縮排
<< 左縮排
@: 重複上次的 ":" 命令 N 次
A 2 在行尾附加文字 N 次
B 1 游標反向移動 N 個 WORD (字串)
E 1 游標正向移動到第 N 個 WORD 的結束處
G 1 游標移動到第 N 行,預設是最後一行
H 1 游標移動到螢幕頂部開始算的第 N 行
I 1 在本行第一個 CHAR 之前插入文字 N 次
J 2 連線 (Join) N 行;預設為 2
L 1 游標移動到螢幕底部開始算的第 N 行
M 游標移動到螢幕的中間一行
N 1 反方向重複最近的 '/' 或 '?' N 次
O 2 在游標上方開始一個新行,並插入文字,重複 N次
Q 切換到 "Ex" 模式
R 2 進入替換模式: 覆蓋存在的字元,重複輸入文字N-1 次
U 撤消一行內所有最近的改變
V 進入面向行的可視 (Visual) 模式
W 1 游標前移 N 個 WORD
ZZ 如果修改過,儲存當前檔案,然後退出
ZQ 無論如何退出當前檔案
^ 游標移動到本行的第一個 CHAR 上
a 2 在游標處附加文字 N 次
b 1 游標反向移動 N 個單詞
do 2 等同於 ":diffget"
dp 2 等同於 ":diffput"
e 1 游標正向移動到第 N 個單詞的結束處
h 1 游標左移 N 個字元
i 2 在游標前插入文字 N 次
j 1 游標下移 N 行
k 1 游標上移 N 行
l 1 游標右移 N 個字元
m{A-Za-z} 在游標位置處設定位置標記 {A-Za-z}
n 1 重複最近的 '/' 或 '?' N 次
o 1 在游標下方開始一個新行,並插入文字,重複 N次
q: 在命令列窗口裡編輯 : 命令列
q/ 在命令列窗口裡編輯 / 命令列
q? 在命令列窗口裡編輯 ? 命令列
r{char} 1 用 {char} 替換 N 個字元
u 撤消改變
v 開始面向字元的可視 (Visual) 模式
w 1 游標前移 N 個單詞
~ 2 'tildeop' 關閉時: 切換游標所在處開始的 N 個字元的大小寫,並右移游標 N 個字元
~{motion} 'tildeop' 開啟時: 切換 Nmove 文字的大小寫
ctrl+A 2 把 N 加到游標所在/之後的數值上
ctrl+B 1 反向 (Back) 滾動 N 屏
ctrl+d 文件向上移動半屏
ctrl+e 文件向上滾動一行
ctrl+f 文件向上移動一屏
ctrl+g 顯示當前檔名和位置
ctrl+L 重畫螢幕
ctrl+R 2 重做 'u' 撤消的改變
ctrl+U 上滾 (Upwards) N 行 (預設: 半屏)
ctrl+V 開始面向列塊的可視 (Visual) 模式
ctrl+X 2 從游標所在/之後的數值上減去 N
ctrl+Y 下滾 N 行
ctrl+Z 暫停程式 (或者啟動新的外殼)
Ctrl+^ 編輯第 N 個輪換檔案 (等價於 ":e #N")
Last line mode
:! 過濾行,或可通過外部命令執行之
:!! 重複上次的 ":!" 命令
:# 等同於 ":number"
:& 重複上次的 ":substitute"
:* 重複上次的 ":substitute"
:= 顯示游標所在的行號
:> 將行右移一個 'shiftwidth'
:@ 執行暫存器的內容
:@@ 重複上次的 ":@"
:N[ext] 轉到引數列表的上一個檔案
:P[rint] 顯示行
:X 請求加密金鑰
:a[ppend] 附加文字
:ar[gs] 顯示引數列表
:bd[elete] 從緩衝區列表刪除緩衝區
:bn[ext] 轉到緩衝區列表裡的下一個緩衝區
:bp[revious] 轉到緩衝區列表裡的上一個緩衝區
:bro[wse] 使用檔案選擇對話方塊
:buffers 列出緩衝區列表裡的所有檔案
:cal[l] 呼叫函式
:cd 改變目錄
:ce[nter] 排版行,使其居中對齊
:cha[nges] 顯示修改的列表
:chd[ir] 改變當前目錄
:clo[se] 關閉當前視窗
:diffs[plit] 顯示和另外一個檔案的差異
:diffthis 使得當前視窗成為 diff 視窗
:dig[raphs] 顯示或者輸入二合字母
:dif[fupdate] 更新 'diff' 緩衝區
:di[splay] 顯示暫存器
:e[dit] 編輯檔案
:ec[ho] 回顯表示式結果
:files 列出緩衝區列表的所有檔案
:filet[ype] 切換檔案型別檢測的開啟/關閉
:fir[st] 轉到引數列表的第一個檔案
:ha[rdcopy] 傳送文字到印表機
:hi[ghlight] 指定高亮方法
:his[tory] 顯示歷史列表
:hid[e] 為一個命令隱藏當前緩衝區
:int[ro] 顯示介紹文字
:la[st] 轉到引數列表的最後一個檔案
:lan[guage] 設定語言 (locale)
:le[ft] 左對齊行
:m[ove] 移動行
:map 顯示或者輸入對映
:marks 列出所有的位置標記
:mat[ch] 定義要高亮顯示的匹配的模式
:mes[sages] 顯示以前顯示的訊息
:mk[exrc] 寫入當前對映和設定到檔案
:mks[ession] 寫入會話資訊到檔案
:mkvie[w] 寫入當前視窗的檢視到檔案
:new 建立一個新的空白視窗
:n[ext] 跳轉到引數列表的下一個檔案
:nu[mber] 顯示文字行時給出行號
:on[ly] 關閉當前視窗,除了當前的視窗以外
:opt[ions] 開啟選項視窗
:prev[ious] 跳轉到引數列表裡的上一個檔案
:pro[mptfind] 開啟 GUI 對話方塊進行搜尋
:promptr[epl] 開啟 GUI 對話方塊進行搜尋/替代
:pc[lose] 關閉預覽視窗
:ped[it] 在預覽視窗編輯檔案
:perld[o] 對每行都執行 Perl 命令
:pw[d] 顯示當前目錄
:q[uit] 退出當前視窗 (如果只有一視窗,則退出 Vim)
:quita[ll] 退出 Vim
:qa[ll] 退出 Vim
:r[ead] 讀入檔案到文字
:rec[over] 從交換檔案裡恢復檔案
:red[o] 重做一次撤銷的改變
:redi[r] 重定向訊息到檔案或者暫存器
:redr[aw] 強迫顯示的重畫
:redraws[tatus] 強迫狀態行的重畫
:reg[isters] 顯示暫存器的內容
:res[ize] 改變當前視窗的高度
:ri[ght] 右對齊文字
:sav[eas] 用別的名字儲存檔案
:scrip[tnames] 列出所有執行過的 Vim 指令碼的名字
:sh[ell] 退到外殼程式
:sl[eep] 幾秒內不作任何事
:sor[t] 給行排序
:so[urce] 從檔案裡讀取 Vim 或 Ex 命令
:sp[lit] 分割當前視窗
:tabe[dit] 在新標籤頁裡編輯檔案
:tabnew 在新標籤頁裡編輯檔案
:tabs 列出標籤頁以及裡面包含的內容
:up[date] 如果有修改,寫回緩衝區
:vne[w] 建立新的空白視窗,垂直分割
:ve[rsion] 顯示版本號和其它資訊
:vs[plit] 垂直分割當前視窗
:wa[ll] 寫回所有 (改變的) 緩衝區
:wn[ext] 寫回檔案,然後跳轉到引數列表的下一個檔案
:wp[revious] 寫回檔案,然後跳轉到引數列表的前一個檔案
:w[rite] 寫回檔案
:wq 寫回檔案,然後退出視窗或者 Vim
:wqa[ll] 寫回所有 (改變的) 緩衝區然後退出 Vim
:~ 重複上次 ":substitute"
Insert mode
ctrl+A 插入最近插入的文字
ctrl+C 退出插入模式
ctrl+D 在當前行刪除一個shiftwidth的縮排
ctrl+I 等同於<Tab>
ctrl+J 等同於<CR>
ctrl+k {char1} {char2} 輸入二合字母
ctrl+M 等同於<CR>
ctrl+N 查詢游標前的關鍵字的下一個匹配
ctrl+P 查詢游標前面的關鍵字的前一個匹配
ctrl+R 插入暫存器內容
ctrl+T 在當前行插入一個 shiftwidth 的縮排
ctrl+U 刪除當前行的所有輸入字元
ctrl+W 刪除游標前的單詞
ctrl+N 根據已輸入部分向後查詢匹配
ctrl+X ctrl+F 彈出當前目錄中的檔案列表
ctrl+x ctrl+I 彈出所有行列表
ctrl+x ctrl+v 彈出vim命令列表
ctrl+x ctrl+d 彈出巨集定義列表
ctrl+x ctrl+i 彈出當前檔案和被當前檔案include單詞列表
ctrl+x ctrl+k 彈出一個字典檔案的單詞列表
ctrl+x ctrl+t 彈出一個thesaurus的單詞列表
Else
vim –R file 以只讀的形式開啟檔案
vim –o file file1 為每個檔案開啟一個視窗,水平排列
vim –O file file1 為每個檔案開啟一個視窗,垂直排列
vimdiff file file 檔案比較
用Secure Shell連線Linux時,vim不顯示語法高亮的解決辦法:在/etc/profile里加上export TERM=dtterm
vim -o suren suren1 #分割視窗的形式開啟