当我按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...
不确定书呆子树是如何导致此问题或如何修复它。
答案 0 :(得分:1)
寄存器%
包含当前缓冲区名称。不知何故,你似乎在NERDTree用于在发生错误时显示其目录树的暂存缓冲区中。
你应该注意到光标在&#34;错误&#34; (即非Python)缓冲区。如果这发生在Python缓冲区中,我无法解释。
您可以使映射更加健壮,包括检查Python文件类型,如下所示:
... if &filetype ==# 'python'<Bar>update<Bar>execute '!python '.shellescape(@%, 1)<Bar>endif<CR>