加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何检查我是否在vimrc中以只读模式(-R)运行

发布时间:2020-12-15 16:59:52 所属栏目:安全 来源:网络整理
导读:在我的. vimrc中,我希望能够检查我是否已经被vim -R或视图运行.如果是这样,我计划禁用或延迟某些插件加载,以加快我很快想要查看文件的时间. :args和argv()似乎只显示我想要编辑的文件,而不是所有命令行标志. 检查 readonly几乎是否有效.如果我有这个: if r
在我的. 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读