vim高階應用

2021-08-31 15:23:37 字數 1982 閱讀 3173

命令模式:

「s」為表示替換動作,「%」表示所有行,「g」表示全文,「^」表示行首,「$」表示行尾。

:%s#/usr/bin#/bin#g 把檔案中所有路徑/usr/bin換成/bin或:%s/usr/bin/bin/g

:%d 刪除全部

dg 刪除游標後所有行

:u 恢復上一步操作

:x 不提示,直接退出並儲存

:1,$s/^m//g 將dos格式文字轉成unix格式文字

:g/^/s//newstring/g 文字每行的行首新增字串「newstring」

:%s/^/newstring/g 文字每行的行首新增字串「newstring」

:g/$/s//newstring/g 每行的行尾新增字串「newstring」

:%s/$/newstring/g 每行的行尾新增字串「newstring」

:3,$s/^/newstring/ 從文字的第3行至最後一行的行首全部插入字串「newstring」

:%s/old_string/new_string/g 將文中「old_string」替換成「new_string」

:3,7s/old_string/new_string/ 將檔案中的第3行到第7行中的「old_string」替換成「new_string」

:syntax on 語法加亮 off,關閉

:set ai 自動對齊

:set readonly 將檔案設為唯讀

:set nu 顯示行號 :set number

:set autowrite 使vi在「:n」和「:!」命令之前都自動儲存檔案

:set sm 匹配 \*/\s*! !

6. 做某些內部資料重複替換

有些時候我們需要組織一些批量的資料進行命令列的執行,比如我們需要利用前面的資料生成後面的資料,例如這樣的資料:

/var/database/aaa.txt

/var/database/bbb.txt

/var/database/ccc.txt

我想變成乙個個的指令,比如變成乙個個複製命令,複製到但前目錄,那麼可以執行:

:%s/\(.*base\/\)\(.*\.txt\)/cp \1\2 \.\/\2/

變成了:

cp /var/database/aaa.txt ./aaa.txt

cp /var/database/bbb.txt ./bbb.txt

cp /var/database/ccc.txt ./ccc.txt

這裡關鍵是子模式的使用: () 中間的,\1 代表第乙個找到的子模式,\2代表第二個,以此類推,vim裡面的()必須轉義,跟其他語言不一樣

7. 增加注釋(乙個操作應用在多行)

比如需要增加#或者是//這種注釋:

ctrl + v 定位到開始行,然後選定需要的行,然後執行 i 命令,然後輸入 # 或 //,然後按 esc鍵兩次,即可把注釋操作應用到所有選定的行,記住選定不能使用v指令,而應該使用ctrl + v (清除注釋請參考上面的方法)(v是按行選定,ctrl + v 是按照列選定)

8. 對齊行

v 選定需要整齊的行,輸入 = 進行歸整

9. 開啟多視窗

在vim中使用 :sp 檔名 開啟行視窗(橫),使用 :vsp 檔名 開啟列視窗(豎),使用 :q 關閉當前視窗,使用 :qa 關閉所有視窗,使用 ctrl + w 在各個視窗中進行切換。

最大化視窗:ctrl + w 啟用某個視窗,然後 ****f + - 進行最大化

改變視窗到指定行高度:ctrl + w 啟用視窗,10(需要變成的行大小數字),shift + -,執行改變

增加若干行高度:ctrl + w 啟用視窗,10(需要增加的行大小數字),shift + +,執行改變

10. 字串/變數提示

在輸入內容狀態,按 ctrl + p 則顯示所有本頁中定義的字串,如果輸入字串部分內容,然後按 ctrl + p 則把所有你輸入字串開頭的內容顯示出來。在輸入狀態下按 ctrl + x 能過檢視所有有效的其他方式

vim 高階應用

從windows 拷貝到linux vim 中常常用格式混亂的現象,只需要執行如下幾步,即可實現格式化。1 gg 跳到檔案的第一行。2 shift v進入檢視模式 行選模式 3 g shift g 跳到檔案的最後一行,即此時己經全部選中。4 按下等號進行格式化操作。批量操作在編碼中也常用的基本技能。...

vim 高階技巧

1 緩衝區 其實,你用 e 瀏覽開啟的檔案都沒有被關閉,這些檔案都在緩衝區中。你可以用下面的命令來檢視緩衝區 ls 於是,在你的vim下,你會看到如下介面 你可以看到vim開啟了四個檔案,編號是4,5,6,7,如果你要切換開啟的檔案,這個時候,你不要按回車 按了也沒事,只不過按了就看不到 ls輸出的...

vim 高階功能

文字編輯 跳轉 刪除 複製 替換這些操作用vim確實是快 但是好像僅僅是這樣根本不能說服我vim超過滑鼠的地方。花點時間弄熟這些,除了炫技意外,主要為了防止深夜被拉起來救火,機房還不能遠端,連夜打車到了地方,卻發現伺服器沒有圖形化介面,這個時候要是指令碼寫的熟,vim操作6幾下修復完了,能盡量降低損...