簡體   English   中英

運行BuffWrite命令時Vim錯誤E20'未設置標記'

[英]Vim Error E20 'Mark not set' when running BuffWrite Command

我在vimrc中設置了一個自動運行腳本,以將3個或更多空換行符的任何塊壓縮為3個換行符。 我設置了一個標記,以便在腳本執行后保留光標位置,但是當光標位於要刪除的區域內時,出現E20 標記未設置錯誤。

如何解決此問題/在發生這種情況時使錯誤消失?

" .vimrc file: autocmd BufWrite * mark ' | silent! %s/\\n\\{3,}/\\r\\r\\r/e | norm''

您可以將標記替換為winsaveview()winrestview()

autocmd BufWrite * let w:winview = winsaveview() | ... | if exists('w:winview') | call winrestview(w:winview) | endif

同時使普通命令靜音:

autocmd BufWrite * mark ' | silent! %s/\n\{3,}/\r\r\r/e | silent! exe "norm! ''"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM