将VIM命令作为插件安装

将VIM命令作为插件安装,vim,Vim,我将以下命令作为vim插件运行在~/.vim/plugin/autohighlight.vim下 :autocmd CursorMoved*exe printf'match IncSearch/\/',展开 问题是,除了在编辑文件时,它会在任何地方抛出一堆错误。文件资源管理器,其他窗口 有没有办法告诉脚本仅在编辑文件时生效,而不在VIM中的任何其他地方生效?您可以尝试以下方法: autocmd CursorMoved * :if filewritable(@%)==1 |

我将以下命令作为vim插件运行在~/.vim/plugin/autohighlight.vim下

:autocmd CursorMoved*exe printf'match IncSearch/\/',展开

问题是,除了在编辑文件时,它会在任何地方抛出一堆错误。文件资源管理器,其他窗口

有没有办法告诉脚本仅在编辑文件时生效,而不在VIM中的任何其他地方生效?

您可以尝试以下方法:

autocmd CursorMoved * :if filewritable(@%)==1 |
                      \    call matchadd('IncSearch', '\V\<'.escape(expand('<cword>').'\>', '\'), 10, 1) |
                      \endif
只有当当前缓冲区名称是可写文件而不是目录时,它才会高亮显示。如果您正在编辑使用BufWriteCmd执行保存的内容(例如,如果您正在zip存档中编辑文件),则该操作将失败

顺便问一下,你能提供这些错误吗?当我使用:e.时,我能够得到一个错误,但这与您正在观察一个目录这一事实无关,它的出现只是因为您忘记了转义。如果您编写了escapeexpand“\/”而不是expand,则不会出现此类错误