Magic Studio

专心做有逼格的APP!

BSD vi/vim 命令大全(下)[转]

from: http://www.pctartarus.com/bbs/thread-911-1-1.html

文件編輯

: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程序

posted on 2010-11-06 23:39  Mr 布鲁斯  阅读(300)  评论(0)    收藏  举报

导航