vimscript - vim整段刪除或替換
ringa_lee
ringa_lee 2017-05-16 16:41:00
0
5
822

有一段這樣的文字

As of initscripts-2012.07.5, the default format of /etc/rc.conf and
/etc/crypttab have changed. See their respective man pages for 
more details.

--BEGIN--
The purpose of this change is to unify the configuration of systemd
and initscripts. This will allow us to share code and documentation, 
and should make maintenance of initscripts simpler in the long-run.
--END--

The old format is still supported, so old config files should still
work unchanged.

希望能吧--BEGIN-- --END--之間的所有行都刪除掉,vim有直接的方法嗎?

另外一個附加的問題,就是已經有
--BEGIN-- 標誌了,如何能增加一段內容。

以上都是希望能腳本化的處理文字檔。


只是一個例子,--BEGIN--,--END--之間的行數不確定
# 手動標記這個,有點辛苦,實際文件不小,而且類似的結構
比較多.

ringa_lee
ringa_lee

ringa_lee

全部回覆(5)
左手右手慢动作

:g/--BEGIN--/,/--END--/d
如果要同時刪除前後的空白行
:g/--BEGIN--/-1,/--END--/+1d

刘奇

vim可以做到,

在指令模式下:

%s/--BEGIN--\_.*--END--//g

其中的_是關鍵,這個可以匹配多行。
已經有--BEGIN--標識如何替換,這個也可以用上面的替換思路來做
:%s/^--BEGIN--/&要替換的內容/g

Ty80

遊標移至開始部分
Esc v 進行view模式
j 向下選取操作部分
d 刪除 x 剪切 兩個都可以

phpcn_u1582

既然要腳本化,就用 sed 唄:

sed -i '/--BEGIN--/,/--END--/d' files_to_modify
淡淡烟草味

ndd,n為要刪除的行數。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板