2013-10-09 111 views
1

我想刪除從文檔開始到一些正則表達式匹配的所有內容,如_tmm。我寫了下面的自定義命令:刪除所有行,直到一些正則表達式匹配

command! FilterTmm exe 'g/^_tmm\\>/,/^$/mo$' | norm /_tmm<CR> | :0,-1 d 

這不按預期方式工作。但是,當我直接使用命令行執行這些命令時,它們可以工作。

您有任何其他建議使用自定義命令來完成這項工作嗎?

+0

我不知道Vimscript中做,但是這僅僅是'GGV/_tmm D' –

回答

1

看來你想從開始到匹配行上面的行刪除。

/pattern可能有偏移選項。像/pattern/{offset}:h /的細節,爲你的需求,你可以做(​​無論在哪裏你的光標):

ggd/_tmm/-1<cr> 

編輯

我看了你的問題兩次,似乎你想要做的它在一個命令行中。

您的腳本有問題,normal不支持|,也就是說,它必須是最後一條命令。

試試這條線,它是否適合你:

exe 'norm gg'|/_tmm/-1|0,.d 
相關問題