nerdtree打破了我的一个映射

时间:2014-05-07 17:01:14

标签: vim nerdtree

当我按F5时,我使用以下映射来运行python解释器:

autocmd Filetype python nnoremap <buffer> <F5> <C-o>:update<Bar>execute '!python '.shellescape(@%, 1)<CR>

偶尔会将当前文件变量扩展为&#34; NERD_tree_1 ...&#34;这当然会导致这个错误:

powershell -command "python NERD_tree_1p"
C:\Python27\python.exe: can't open file 'NERD_tree_1p': [Errno 2] No such file o
r directory
shell returned 1
Hit any key to close this window...

不确定书呆子树是如何导致此问题或如何修复它。

1 个答案:

答案 0 :(得分:1)

寄存器%包含当前缓冲区名称。不知何故,你似乎在NERDTree用于在发生错误时显示其目录树的暂存缓冲区中。

你应该注意到光标在&#34;错误&#34; (即非Python)缓冲区。如果这发生在Python缓冲区中,我无法解释。

您可以使映射更加健壮,包括检查Python文件类型,如下所示:

... if &filetype ==# 'python'<Bar>update<Bar>execute '!python '.shellescape(@%, 1)<Bar>endif<CR>