1

我目前正在修改我喜欢的插件以满足我的需要。在 VimL 的限制范围内,我遇到了我需要知道我在哪个缓冲区中的问题。

我需要能够按名称引用缓冲区,特别是我需要知道我何时在 Vim 自己的[Command Line]缓冲区中。顺便说一句,您可以使用q:,q/q?.

我正在修改的插件如下:https ://github.com/jeffkreeftmeijer/vim-numbertoggle

这是我的叉子:https ://github.com/Greduan/vim-numbertoggle

我想要做的是知道我何时在这个特定的缓冲区中,[Command Line]当我在其中时,调用并且不使用相对行号。

感谢您的任何帮助,您可以提供!

4

2 回答 2

5

bufname('')使用带有空字符串的vimscript 函数(有关详细信息,请参阅 参考资料:help bufname())。要获取缓冲区的编号,请使用bufnr('').

此外,您可以使用 register 获取当前缓冲区中的文件名%

let current_file = @%
于 2012-12-04T15:55:39.070 回答
2

你可以检查 Vim 在创建命令行窗口时设置的一些选项。

  1. 创建此文件和目录:

    ~/after/ftpugin/vim.vim
    

    你在这个文件中的内容只有在你编辑一个带有相应filetype.

  2. 将以下不言自明的代码添加到该文件中:

    if &buftype == "nofile"
      setlocal number
    endif
    

它工作,在这里。我认为您可以通过添加&filetype == "vim".

于 2012-12-04T16:04:41.993 回答