什麼是採取所有以「定義」,並在使用vi文本文件的末尾粘貼開頭的行的最佳方式結束與X開頭的所有行?將是在文件用vi
舉例來說,如果我有:
定義XXX
一個
定義YYY
b
,我想:
限定XXX
一個
限定YYY
b
限定XXX
限定YYY
個
解決方案:
在六,
g/^define/t$
很好地工作。請參閱以下vim的解決方案。
什麼是採取所有以「定義」,並在使用vi文本文件的末尾粘貼開頭的行的最佳方式結束與X開頭的所有行?將是在文件用vi
舉例來說,如果我有:
定義XXX
一個
定義YYY
b
,我想:
限定XXX
一個
限定YYY
b
限定XXX
限定YYY
解決方案:
在六,g/^define/t$
很好地工作。
請參閱以下vim的解決方案。
您可以使用Go<ESC>
(哎呀,欠,以及退出鍵)打開該文件的末尾行,然後輸入的字符:
!!grep '^define' %<ENTER>
,取代當前的行(您剛在文件末尾打開的那個)與該grep
命令的輸出(其中%
是當前文件)的輸出。 Vi的舊的變體可能沒有這個設施 -
您需要確保該文件,因爲它使用的磁盤上的副本,而不是在內存中的副本,並記住,這是在Vim首先被保存。
爲什麼雙重感嘆號? –
@Dimitriy,第一個等同於':.'(切換到「ex」模式並選擇當前行),第二個意思是用下面的命令的輸出替換選擇。如果你不介意額外的擊鍵,你可以輕鬆地做':。!grep ...'。 – paxdiablo
這對vim很有用! –
爲什麼你必須使用'vi'?用其他命令預處理文件不是更容易嗎? – lurker
我正在使用vi來編輯一些代碼。我想給自己添加一條有關代碼將生成的所有文件的評論。如果我已經在vi中了,使用另一個命令似乎很奇怪,但如果這是最好的方法,我會接受它。 –
我幾乎100%確定你沒有使用vi而是vim。如果是這種情況,兩種解決方案都是有效的。儘管如此,我仍然會使用內置命令。 – romainl