Vim - 在vimrc中检测ex模式

时间:2015-05-26 20:54:28

标签: vim configuration text-editor vi line-numbers

我之前在comp.editors中已经问过此问题,但未收到任何回复。

这应该很简单:我想在编辑器处于ex模式时(<获取可见的行号)将 vim 配置为set number,但是从不在视觉中设置该选项模式。怎么样?

如果解决方案涉及必须启动 ex 而不是 vim ,那很好,但理想情况下解决方案也应该涵盖从进入ex模式的情况视觉模式(例如,在 vim 视觉模式中使用 Q )。

也适用于 nvi 的解决方案会很好,但不是必需的。

2 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

let &number = mode(1) ==# 'ce'
nnoremap <silent> Q :set number<CR>Q

当您运行number时以及当您使用 Q 进入vim -e模式时,这将设置ex,但当您返回时它将无法清除它到视觉模式。据我所知,没有办法检测切换模式的实际事件。 耸肩

答案 1 :(得分:-1)

Vim的Autocmd似乎是你最好的选择,因为它有赛事听众。一个例子是

:autocmd InsertLeave * :set nonumber
:autocmd InsertEnter * :set number

显示/隐藏行号

但是,当我查看时,我找不到Ex模式的任何events