Vim错误E20';标记未设置';运行BuffWrite命令时
我在vimrc中设置了一个自动运行脚本,将3个或更多空换行符的任何块压缩为3个换行符。我设置了一个标记,这样在脚本执行后,我会保留光标位置,但当光标位于要删除的区域内时,会出现E20标记未设置的错误 发生这种情况时,我如何修复此问题/消除错误 .vimrc文件:Vim错误E20';标记未设置';运行BuffWrite命令时,vim,autocommand,Vim,Autocommand,我在vimrc中设置了一个自动运行脚本,将3个或更多空换行符的任何块压缩为3个换行符。我设置了一个标记,这样在脚本执行后,我会保留光标位置,但当光标位于要删除的区域内时,会出现E20标记未设置的错误 发生这种情况时,我如何修复此问题/消除错误 .vimrc文件: autocmd BufWrite*mark'| silent!%s/\n\{3,}/\r\r/e | norm'您可以用winsaveview()和winrestview()替换标记 同时使正常命令静音: autocmd BufWrit
autocmd BufWrite*mark'| silent!%s/\n\{3,}/\r\r/e | norm'您可以用
winsaveview()
和winrestview()替换标记
同时使正常命令静音:
autocmd BufWrite * mark ' | silent! %s/\n\{3,}/\r\r\r/e | silent! exe "norm! ''"
如果您使用的是e
flag,则通常不需要silent!
此功能有效!已使用autocmd BufWrite*让w:winview=winsaveview()|%s/\n\{3,}/\r\r\r/e |如果存在('w:winview')|调用winrestview(w:winview)| endif
autocmd BufWrite * mark ' | silent! %s/\n\{3,}/\r\r\r/e | silent! exe "norm! ''"