Vim - .vimrc文件中只有1个'绑定'

时间:2017-06-30 17:11:35

标签: vim

我遇到.vimrc文件的问题。我安装了NerdTree,并将此行添加到vimrc文件中:

map <C-n> :NERDTreeToggle<CR>

它完美无缺,但我想在vim中使用python。我添加了这一行:

nnoremap <buffer> <F5> :exec '!python' shellescape(@%, 1)<cr>

它不起作用。当我只有“python bind”它正在工作,但当我添加NerdTree链接“python bind”停止工作。

1 个答案:

答案 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

永远不要在配置中添加任何您不完全理解的内容。