我遇到.vimrc文件的问题。我安装了NerdTree,并将此行添加到vimrc文件中:
map <C-n> :NERDTreeToggle<CR>
它完美无缺,但我想在vim中使用python。我添加了这一行:
nnoremap <buffer> <F5> :exec '!python' shellescape(@%, 1)<cr>
它不起作用。当我只有“python bind”它正在工作,但当我添加NerdTree链接“python bind”停止工作。
答案 0 :(得分:1)
<buffer>
中的nnoremap <buffer> <F5> :exec '!python' shellescape(@%, 1)<cr>
表示映射是当前缓冲区的本地。
由于您在vimrc
中拥有该映射,因此不会为vimrc
定义,而是针对您编辑的第一个缓冲区而仅定义第一个缓冲区。
一旦打开另一个缓冲区,无论哪种缓冲区(包含NERDTree),您的映射都不再适用于除第一个缓冲区之外的任何其他缓冲区。
以下是映射的修订版本,该版本仅适用于Python缓冲区,所有这些版本:
augroup PythonThings
autocmd!
autocmd FileType python nnoremap <buffer> <F5> :exec '!python' shellescape(@%, 1)<cr>
augroup END
请参阅:
:help <buffer>
:help autocommand
永远不要在配置中添加任何您不完全理解的内容。