Vim 运行 BuffWrite 命令时出现错误 E20 'Mark not set'
Vim Error E20 'Mark not set' when running BuffWrite Command
我在我的 vimrc 中设置了一个自动运行脚本来将任何包含 3 个或更多空换行符的块压缩为 3 个换行符。我设置了一个标记,因此在脚本执行后,我保留了我的光标位置,但是当光标位于要删除的区域内时,我收到 E20 Mark not set 错误。
发生这种情况时,我该如何解决这个 issue/silence 错误?
" .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! ''"
我在我的 vimrc 中设置了一个自动运行脚本来将任何包含 3 个或更多空换行符的块压缩为 3 个换行符。我设置了一个标记,因此在脚本执行后,我保留了我的光标位置,但是当光标位于要删除的区域内时,我收到 E20 Mark not set 错误。
发生这种情况时,我该如何解决这个 issue/silence 错误?
" .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! ''"