如何为CmdwinEnter / CmdwinLeave设置nornu / rnu

时间:2014-04-11 12:35:00

标签: vim vi

我想在command-line mode中禁用relativenumber。因为有些事我需要知道命令行模式下的绝对亚麻布(按:<line_number>转行)

我的设置如下,但不起作用......

  autocmd CmdwinEnter * set norelativenumber
  autocmd CmdwinLeave * set relativenumber

不知何故,此设置(Get fome here)正常工作:

  autocmd CmdwinEnter * let b:ei_save = &eventignore | set eventignore=CursorHold,InsertEnter
  autocmd CmdwinLeave * let &eventignore = b:ei_save

我想知道为什么CmdwinEnter / CmdwinLeave ** relavitenumber`不起作用,我怎么能做到。


顺便说一下, 这个方法Insert mode中可以正常使用

  autocmd InsertEnter * set norelativenumber
  autocmd InsertLeave * set relativenumber

  • 我的Vim版本是:7.4.250
  • Here是我的整个vimrc。
  • 这种情况发生在我的Win7和Linux系统中。
  • 是的,我看过this thread,“最佳答案”也不起作用。

1 个答案:

答案 0 :(得分:1)

您对事件名称CmdwinEnter/Leave感到困惑,它们将通过进入/离开命令行窗口而不是命令行模式来触发。 :h cmdwin

我猜您当前的设置,在命令模式下,如果按ctrl-f(输入cmd-win),您应该看到行号更改,它将应用于command line window,您必须找到主编辑的窗口ID,才能更改设置。

要抓住“事件”进入命令行模式,您可以将普通模式:映射到一个函数,在那里,您可以进行预处理。

为了捕捉离开cmd模式的“事件”,你必须一直检查当前模式,如果它变为正常模式。