【发布时间】:2021-06-19 01:56:34
【问题描述】:
我正在寻找一种在某些条件下映射 NERDTree-
如果当前窗口为空,则 NERDTree-
我是 vimscript 的初学者,所以很难找到如何去做。
我试图制作一个如下所示的函数以及要在“NERDTreeCustomArgsOpen”上调用的函数,但无法实现。
" Couldn't make 'IsBufferModifiable' function
" and mapping 'MyNERDTree_CR' to 'NERDTreeCustomOpenArgs'
function! IsBufferModifiable(numBuffer)
function! IsBufferEmpty(numBuffer)
return bufname(a:numBuffer) == ''
endfunction
function! IsModifiableBufferEmpty()
let emptyModifiableBuffers = filter(range(1, bufnr('$')), 'IsBufferModifiable(v:val) && IsBufferEmpty(v:val)')
if len(emptyModifiableBuffers) == 0
return 1
else
return 0
endfunction
function! MyNERDTree_CR()
if IsModifiableBufferEmpty()
call feedkeys('o')
else
call feedkeys('t')
endfunction
" Not sure it works or not
let NERDTreeCustomOpenArgs = {'file':{'where':'MyNERDTree_CR', 'reuse':'all', 'keepopen':1, 'stay':1}}
有什么方法可以让它们工作吗?
【问题讨论】:
-
我不确定这是否是有意的,但
IsBufferModifiable()没有正文,也没有关闭endfunction。 -
@romainl 是的,你是对的。我把它留空了,因为我无法完成它,正如我在顶部的评论中所说的那样
标签: vim vim-plugin nerdtree