本文共 1587 字,大约阅读时间需要 5 分钟。
from:
多文件編輯
:e foo停止對當前文件的編輯,開始編輯foo文件 :e! foo同上,但是取消對當前文件的修改 :e! 裝入當前文件的最近保存的內容 [Ctrl+^] 返回到最近編輯的文件 :n 編輯下一個文件(當用vi同時編輯多個文件時) :set autowrite(aw) 在用:n切換到下一個文件之前自動保存當前文件 :rew 返回到文件列表的第一個文件(當用vi同時編輯多個文件時) :r foo 把foo文件的內容插入當前行的下面 多窗口(vim) :sq 把當前窗口拆分為兩個 :new 打開一個新的空白窗口 :[Ctrl+w][Ctrl+w] 在窗口之間切換 n 把當前窗口變為唯一的窗口 :q 退出當前窗口 :qa 退出所有窗口 :xa 保存並退出全部窗口 [Ctrl]+ 增大窗口尺寸 [Ctrl]- 減小窗口尺寸 搜索與重複 /pat 向前搜索pat ?pat 向後搜索pat /printf 向前搜索printf ?[0-0]$ 向後搜索行尾的數字 /^# 向前搜索行首的# n 按上次搜索方向重複搜索 N 按與前次搜索的相反方向重複搜索 :set wrapscan(ws) 繼續搜索直至達到文件尾 :set ignorecase(ic) 搜索時不區分大小寫 :set magic 保留正則表達式字符的意義 fc 在當前行向前搜索字符c Fc 在當前行向後搜索字符c ; 在當前行重複上次向前搜索 , 在當前行重複上次逆向搜索 替換 :.s/s1/s2 把當前行中第一次出現的s1替換為s2 :1,$s/s1/s2 把整個文件裡的s1替換為s2 :1,$s/echo/printf/g 把全部的echo替換為printf :1,$s/s1/s2/gc 按交互方式把全部s1替換為s2 :1,$s/#//g 刪除文件中所有的「#」 :3,10s/^/#/g 在3至10行的行首插入「#」 s/$/;/ 在最後一行的行尾插入「;」 :1,$s/s1/s2/g 把所有的s1替換為s2 :1,$s/HEAD/<&>/g 把所有的HEAD替換為<HEAD> 標誌與書籤 ma 設置一個標籤a 'a 移動到標籤a " 在當前標誌與前一個標誌位置之間切換 重做與恢復 . 重複上次命令 u 取消上次的編輯命令(在vim裡取消所有以前的命令) [Ctrl+r] 重做上次取消的操作(只限於vim) U 取消所有對當前行的操作 "4p 從緩衝區中恢復第4次最近的刪除操作 縮寫表示 :ab name stg 把name縮寫為stg :unab stg 刪除stg縮寫 :ab 列出所有的縮寫 映射鍵 :map key commands 把key映射到commands :map! key commands在輸入模式下把key映射到commands :unmap key 取消命令模式下的key映射 :unmap! key取消輸入模式下的key映射 :map 顯示命令模式下所有的映射 :map! 顯示輸入模式下的所有映射 與UNIX的接口命令 :!cmd 執行UNIX的cmd命令 :!% 把當前文件作為shell或perl腳本執行 :r !cmd把cmd命令的結果插入到當前行的下面 :r !head -n 3 foo 把foo文件前三行內容插入到當前行的下面 sh 暫時退出UNIX shell 環境 [Ctrl+z] 暫停編輯(用fg命令可以返回vi編輯器) :!cc% 編譯正在編輯的C程序 :!javac % 編譯正在編輯的Java程序