我正在修改我喜欢的插件,以满足我的需求。在VimL的限制范围内,我遇到了我需要知道的缓冲区问题。
我需要能够通过名称引用缓冲区,具体来说我需要知道我何时在Vim自己的[Command Line]
缓冲区内。使用q:
,q/
或q?
可以实现哪种BTW。
我正在修改的插件如下:https://github.com/jeffkreeftmeijer/vim-numbertoggle
这是我的分叉:https://github.com/Greduan/vim-numbertoggle
我想知道的是当我进入这个特定的缓冲区时,称为[Command Line]
,当我进入它时不使用相对行号。
感谢您提供的任何帮助!
答案 0 :(得分:5)
将vimscript函数bufname('')
与空字符串一起使用(有关详细信息,请参阅:help bufname()
)。要获取缓冲区的编号,请使用bufnr('')
。
此外,您可以使用寄存器%
获取当前缓冲区中的文件名:
let current_file = @%
答案 1 :(得分:2)
您可以在创建命令行窗口时检查Vim设置的一些选项。
创建此文件和目录:
~/after/ftpugin/vim.vim
当您使用相应的filetype
编辑文件时,您在此文件中的内容仅由Vim执行。
将以下自解释代码添加到该文件中:
if &buftype == "nofile"
setlocal number
endif
这里有效。我认为您可以通过添加&filetype == "vim"
轻松地根据您的需求进行调整。