在我的.
vimrc中,我希望能够检查我是否已经被vim -R或视图运行.如果是这样,我计划禁用或延迟某些插件加载,以加快我很快想要查看文件的时间.
:args和argv()似乎只显示我想要编辑的文件,而不是所有命令行标志.
检查& readonly几乎是否有效.如果我有这个:
if &readonly echo "read only" else echo "not read only" endif
然后我在执行view或vim -R时只读取回显,但如果我查看〜/ .vimrc或vim -R~ / .vimrc,那么我不会只读.很奇怪.
谢谢!
& readonly设置是缓冲区的本地设置,在加载缓冲区之前不会设置.在加载任何缓冲区之前解析您的vimrc文件.
考虑如果你输入vim -o / etc / passwd~ / readable会发生什么.一个缓冲区将是只读的,另一个缓冲区将不是.该设置应该打开还是关闭?
所以你需要挂钩BufReadPost
自动命令,这是在将文件读入缓冲区后执行的:
autocmd BufReadPost * \ if &readonly \| echo "read only" \| else \| echo "not read only" \| endif
哪个应该给出预期的结果.
请注意,每次加载缓冲区时都会运行此操作.如果您只想显示一次,则需要在运行时删除此自动命令.这可以通过自动命令组完成;自动命令! <组名>将删除组中的所有自动命令.
augroup readonly autocmd! autocmd BufReadPost * \ if &readonly \| echom "read only" \| else \| echom "not read only" \| endif \| autocmd! readonly augroup end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。