Ex命令模式指令

快捷鍵

<Ctrl-Left><Shift-Left> 向左移動一個單字

<Ctrl-Right><Shift-Right> 向右移動一個單字

<Ctrl-b> 移動到命令開頭

<Ctrl-d> 顯示可輸入的命令清單 當讀者輸入指令前幾個字元後 可以顯示有哪些指令可以輸入 例如: :ec<Ctrl-d> 可以看到其中有一個是 echo

<Ctrl-e> 移動到命令結尾

<Ctrl-f> 打開可編輯的命令列視窗 其中顯示的是之前執行過的命令的歷史紀錄 按 <Enter> 執行游標所在的那一行 按 <Ctrl-c> 回到命令列並寫入游標的內容 :help cmdline-editing 查看更多命令行編輯

<Ctrl-n><Down> 瀏覽下個命令的歷史紀錄

<Ctrl-p><Up> 瀏覽上個命令的歷史紀錄

<Ctrl-r><Ctrl-w> 插入游標下的單詞

幫助

:h[elp] 打開一個窗口並以只讀方式顯示幫助文件

:h[elp] {subject} 類似於 :help,但附加跳轉到 {subject} 標籤上

例如 :help :h 打開幫助文件查看幫助指令

編輯命令

| 分割命令,你可以在一行里輸入多個命令。 如果你想在參數里使用 | ,應該在前面加上 \ 注意:有些命令 | 被當作參數,後面不能接命令 詳情可以在 :h :bar 找到

編輯文件

:cd[!] {path} 切換當前目錄為 {path}

:[range]co[py] {address}[range] 指定的行複製到 {address} 表示的行之下

:[range]d[elete] [x] 刪除 [range] 範圍的行 (缺省: 當前行) [到暫存器 x 裡]

:e[dit] [++opt] [+cmd] {file} 編輯文件 {file}

:[range]j[oin][!] [flags] 連接 [range] 範圍的行

:lc[d][!] {path}:cd 類似,但只設置當前窗口的當前目錄 別的窗口的當前目錄保持不變

:[range]m[ove] {address}[range] 指定的行移動到 {address} 表示的行之下

:pw[d] 顯示當前目錄

:[range]ret[ab][!] [new_tabstop] 把所有包含 <Tab> 的空白序列替代成由新的製表位 [new_tabstop] 確定的空白序列。如果你不指定新的製表位, 或者它為 0,Vim 使用原來的製表位 tabstop

:[range]sor[t][!] [b][f][i][n][o][r][u][x] [/{pattern}/][range] 裡的行排序。如果沒有指定行範圍,給所有行排序。

:t:copy 等價

:[range]up[date][!] [++opt] [>>] [file]:write 類似,但只有在緩衝區已修改的時候才寫

:wa[ll] 保存所有已修改的緩衝區。沒有文件名的緩衝區會報錯。 只讀的緩衝區不會被寫入。

:w[rite] [++opt] 將整個緩衝區寫入當前文件

:w fileName 寫入到 fileName 裡面 fileName 檔案名稱

:[range]y[ank] [x] 抽出 [range] 所指定的行到暫存器 [x]

:[range]> [flags][range] 指定的行右移 'shiftwidth' 列 多個 '>' 右移 多個 'shiftwidth' 列

設定變數

設定變數 i 等於 0 :let i = 0 設定變數 i 等於 i + 1 :let i += 1

特殊符號

當前文件名 %

shell

:!{cmd} 在 vim 執行 shell 命令

:[range]r[ead] [++opt] !{cmd} 執行 {cmd} 並把它的標準輸出插入到遊標下方

:shell 開啟 shell 互動式窗 exit 命令離開 shell 返回 vim

:execute

:exe[cute] {expr1} .. 計算 {expr1},返回的字串作為 Ex 命令執行。

舉例

:execute "normal w" 執行 normal 模式的 w 也就是移動到下一個單詞

:global

:[range]g[lobal]/{pattern}/[cmd][range] (缺省是 % 作用整個文件)界定的匹配模式 {pattern} 的文本行上執行 Ex 命令 [cmd] (缺省是 :p ) [cmd] 前面可以接受 [range]

:[range]g[lobal]!/{pattern}/[cmd][range] (缺省是 % 作用整個文件)界定的不匹配模式 {pattern} 的文本行上執行 Ex 命令 [cmd] (缺省是 :p )

:[range]v[global]/{pattern}/[cmd] 等同於 :g!

:normal

:{range}norm[al][!] {commands} {range} 指定的範圍中的每行執行若干普通模式命令 {commands}

:source

:so[urce] {file} 從 {file} 裡讀取Ex命令,即“:”開頭的命令,並執行。 {file} 通常是 *.vim 檔

參數列表

:ar[gs] 顯示參數列表,當前文件以方括號表示

:ar[gs] [++opt] [+cmd] {arglist} 定義{arglist}為新的參數列表並編輯其中的第一個

:rew[ind] [++opt] [+cmd] 開始編輯參數列表的第一個文件

:first :rewind 的別名

:[count]n[ext] [++opt] [+cmd] 編輯向後第 [count] 個文件

:[range]argdo[!] {cmd} 對參數列表裡的每個文件執行 {cmd}

舉例

:args **/*.js 定義參數列表為資料夾底下的所有 js 檔

跳轉

:+N 向下移動 N 行

:-N 向上移動 N 行

:N 移動到第 N 行

:jumps 查看跳轉列表

改變列表

:changes 查看改變列表

Last updated