【发布时间】:2014-12-16 06:42:33
【问题描述】:
让我解释一下我的问题,我想做的是:
从不带参数的命令行调用
gvim,希望NERDTree 在我的/home/user/Documents文件夹中默认打开。从命令行调用
gvim .想要打开NERDTree,并将目录设置为执行命令的实际目录。但我仍然想要左边的 NERDTree 和右边的空缓冲区(不是 NERDTree 是唯一的窗口,就像通常发生的那样)。从命令行调用
gvim /some/path/to/folder想要打开 NERDTree 并将目录设置为给定目录。但我仍然想要左边的 NERDTree 和右边的空缓冲区(不是 NERDTree 是唯一的窗口,就像通常发生的那样)。-
使用参数调用
gvim时:- 如果是文件,不要只打开 NERDTree 文件。
- 如果是目录 NERDTree 应该作为
#3
致#1我有:
function! StartUp()
if 0 == argc()
NERDTree ~/Documents
endif
endfunction
autocmd VimEnter * call StartUp()
autocmd VimEnter * wincmd p
我想与#2 和#3 联系的是:
function! StartUp()
if 0 == argc()
NERDTree ~/Documents
else
if argv(0) == '.'
NERDTree expand(getcwd())
else
NERDTree expand(argv(0))
endif
endif
endfunction
autocmd VimEnter * call StartUp()
autocmd VimEnter * wincmd p
但它不起作用,它给了我错误并且 vim 有时会冻结。我该怎么做才能达到预期的效果?
感谢您的帮助。
完整的解决方案
不完全像我预期的那样工作,但它非常非常接近。到目前为止,上帝。
function! StartUp()
if 0 == argc()
NERDTree ~/Documents
else
if argv(0) == '.'
execute 'NERDTree' getcwd()
else
execute 'NERDTree' getcwd() . '/' . argv(0)
endif
endif
endfunction
autocmd VimEnter * call StartUp()
autocmd VimEnter * wincmd p
【问题讨论】: