1
我想刪除從文檔開始到一些正則表達式匹配的所有內容,如_tmm
。我寫了下面的自定義命令:刪除所有行,直到一些正則表達式匹配
command! FilterTmm exe 'g/^_tmm\\>/,/^$/mo$' | norm /_tmm<CR> | :0,-1 d
這不按預期方式工作。但是,當我直接使用命令行執行這些命令時,它們可以工作。
您有任何其他建議使用自定義命令來完成這項工作嗎?
我想刪除從文檔開始到一些正則表達式匹配的所有內容,如_tmm
。我寫了下面的自定義命令:刪除所有行,直到一些正則表達式匹配
command! FilterTmm exe 'g/^_tmm\\>/,/^$/mo$' | norm /_tmm<CR> | :0,-1 d
這不按預期方式工作。但是,當我直接使用命令行執行這些命令時,它們可以工作。
您有任何其他建議使用自定義命令來完成這項工作嗎?
看來你想從開始到匹配行上面的行刪除。
/pattern
可能有偏移選項。像/pattern/{offset}
,:h /
的細節,爲你的需求,你可以做(無論在哪裏你的光標):
ggd/_tmm/-1<cr>
編輯
我看了你的問題兩次,似乎你想要做的它在一個命令行中。
您的腳本有問題,normal
不支持|
,也就是說,它必須是最後一條命令。
試試這條線,它是否適合你:
exe 'norm gg'|/_tmm/-1|0,.d
我不知道Vimscript中做,但是這僅僅是'GGV/_tmm D' –