我想從整個文件的第11列開始刪除5個字符。 當我輸入Vim -g命令用於刪除特定列中的字符
11|5x
它適用於光標所在的行。 但是,當我輸入
:g/.*/11|5x
編輯器關閉。
我應該如何正確使用g命令?
我想從整個文件的第11列開始刪除5個字符。 當我輸入Vim -g命令用於刪除特定列中的字符
11|5x
它適用於光標所在的行。 但是,當我輸入
:g/.*/11|5x
編輯器關閉。
我應該如何正確使用g命令?
瞭解VI(M)模式的關鍵是掌握它。
的|
命令跳轉到一個屏幕的列是正常模式命令,但:global
命令採用Ex命令。所述:normal
Ex命令解釋以下參數爲正常模式的命令(與!
:不考慮映射(這是更安全的)):
:g/.*/normal! 11|5x
PS:對於:g
較短的「匹配的任何地方」圖案是^
代替.*
。
嘗試
:g/./norm! 11|5x
您需要的normal
正常|
運動使光標移動到屏幕柱,當你有多列字符,如在一個線<Tab>
,其可能不被預期。
換人全局像下面可避免此問題:
%s/\%10c.\{5}/
,其中\%10c
第10字符的列位置匹配。
我發現更短的匹配,選擇所有行 - 沒有模式! ':g //命令' – tarsis
@tarsis:':g //'使用您最近使用的任何搜索模式,所以它不是匹配每一行的可靠方法。 – benjifisher