vim 命令学习(高级篇)
【1】打開文件方式
(1)vim +n filename
作用:打開文件,并定位到第n行
例如:vim +103 2019-02-26-errorrepeat.txt
效果:打開2019-02-26-errorrepeat.txt文件,同時,光標定位在103行的行首。
(2)vim + filename
作用:打開文件,并定位到最后一行
例如:vim + 2019-02-26-errorrepeat.txt
效果:打開2019-02-26-errorrepeat.txt文件,同時,光標定位在最后一行的行首。
(3)vim +/pattern filename
作用:定位至第一次被pattern匹配到的行的行首
例如:vim +/"2019-02-26 17:03:21" 2019-02-26-errorrepeat.txt
效果:打開2019-02-26-errorrepeat.txt文件,同時,光標定位在第一次匹配到字符串"2019-02-26 17:03:21"的行的行首。
注意,此時按n鍵往下繼續(xù)查找匹配字符串。
(4)vim +?pattern filename
作用:定位至第一次被pattern匹配到的行的行首
例如:vim +/"2019-02-26 17:03:21" 2019-02-26-errorrepeat.txt
效果:打開2019-02-26-errorrepeat.txt文件,同時,光標定位在第一次匹配到字符串"2019-02-26 17:03:21"的行的行首。
注意,此時按n鍵會往上繼續(xù)查找匹配字符串。與上一個命令功能類似。
(5)vim?-r filename
作用:在上次正用vim編輯文件時發(fā)生系統(tǒng)崩潰,恢復filename
【2】末行模式
(1)vim中執(zhí)行shell命令,有以下幾種形式:
1.1 [:!command]
作用:不退出vim正在編輯的文件,直接執(zhí)行shell命令command,將命令執(zhí)行結(jié)果輸出顯示在vim的命令區(qū)域,不會改變當前編輯文件的內(nèi)容。
例如:[:!ls -l]
示例:打開文件study.txt,不關(guān)閉文件,直接執(zhí)行命令[:!ls -l],執(zhí)行輸出顯示在vim命令區(qū)域。
命令:
結(jié)果:
當然,特別的,也可以直接運行[:!bash]來啟動一個bash shell并執(zhí)行命令,不需要退出vim。
1.2 [:r!command]
將shell命令command的結(jié)果插入到當前行的下一行
例如 [:r!date] 讀取系統(tǒng)時間并插入到當前行的下一行
示例:打開文件study.txt,不關(guān)閉文件,直接執(zhí)行命令[:r!date],讀取系統(tǒng)時間并插入到當前光標行的下一行。
命令:
結(jié)果:
1.3 [:起始行號,結(jié)束行號!command]?
? 1.3.1 將起始行號和結(jié)束行號指定的范圍中的內(nèi)容輸入讓shell命令command處理,并將處理結(jié)果替換起始行號和結(jié)束行號指定的范圍中的內(nèi)容
??例如 [:1,10!sort] 將1行到10行的內(nèi)容進行排序,并將結(jié)果替換起始行號和結(jié)束行號范圍中的內(nèi)容
? 命令:
? 結(jié)果:
? 1.3.2 可以只指定起始行(即范圍為一行)
? 例如 [:3 !tr [a-z] [A-Z]] 將第3行的小寫字母轉(zhuǎn)為大寫字母
? 命令:
? 效果:
? 1.3.3 針對當前光標所在行,除可以指定行號外,也可以用.表示
??例如 [:. !tr [a-z] [A-Z]] 將當前行的小寫轉(zhuǎn)為大寫。試想一下,當你不確定行號的時候,只需要關(guān)注光標行,這樣的形式是不是很高大上!
? 命令:
??結(jié)果:
1.4 [起始行號,結(jié)束行號 w !command]
將起始行號和結(jié)束行號所指定的范圍的內(nèi)容作為命令command的輸入,不會改變當前編輯的文件的內(nèi)容。
例如 [:1,10 w !sort]?將1至10行的內(nèi)容作為命令sort的輸入,對1至10行的內(nèi)容進行排序,但排序的結(jié)果并不會直接輸出到當前編輯的文件中,而是顯示在vim敲命令的區(qū)域。
命令:
結(jié)果:
特殊的情況,也可以下面這么用
[:62 w !bash] 將會把第62行的內(nèi)容作為bash命令來執(zhí)行并顯示結(jié)果,而且不會改變當前編輯的文件的內(nèi)容
同樣的 [:. w !bash] 將當前行的內(nèi)容作為bash命令來執(zhí)行
例如,第3行內(nèi)容為: ls -l 那么輸入[:3 w !bash]就跟執(zhí)行!ls -l是一樣的效果。
命令:
結(jié)果:
如果你用的shell是bash shell 如果輸入的是[:52 !bash],那么會把第52行的內(nèi)容也就是ls -l作為命令執(zhí)行,同時命令的輸出結(jié)果會替換第52行的內(nèi)容。
比如上例,執(zhí)行結(jié)果:
注意以上兩者其中的區(qū)別。
1.5 vim同時打開多個文件時,可以利用[:args]命令查看當前正在編輯的文件(正編輯的文件使用[]方括號括起來)
打開三個文件:
命令:
結(jié)果:
如上,[study.txt]為正在編輯的文件。
【3】命令模式
命令模式的操作技巧
【4】編輯模式
編輯模式的操作技巧
【5】其他
其他技巧
備注:為了區(qū)別內(nèi)容中的冒號,所有命令均用[]方括號括起來了,使用過程中注意命令格式。
?
Good Good Study, Day Day?Up.
順序?選擇?循環(huán)?總結(jié)
轉(zhuǎn)載于:https://www.cnblogs.com/Braveliu/p/10579359.html
總結(jié)
以上是生活随笔為你收集整理的vim 命令学习(高级篇)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 生成1~n的全排列,按字典序输出
- 下一篇: 2018-2019-2 网络对抗技术 2