【问题标题】:Vim - Only 1 'bind' in .vimrc fileVim - .vimrc 文件中只有 1 个“绑定”
【发布时间】:2017-07-01 03:38:22
【问题描述】:

.vimrc 文件有问题。我已经安装了 NerdTree 并将这一行添加到 vimrc 文件中:

map <C-n> :NERDTreeToggle<CR>

效果很好,但我想在 vim 中使用 python。我添加了这一行:

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

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

【问题讨论】:

    标签: vim


    【解决方案1】:

    nnoremap &lt;buffer&gt; &lt;F5&gt; :exec '!python' shellescape(@%, 1)&lt;cr&gt; 中的&lt;buffer&gt; 表示映射是当前缓冲区的本地映射。

    由于您在 vimrc 中有该映射,因此它不是为 vimrc 定义的,而是为您编辑的第一个缓冲区定义的并且只有第一个缓冲区

    一旦您打开另一个缓冲区,无论是哪种类型的缓冲区(包括 NERDTree),您的映射将不再适用于第一个缓冲区之外的任何其他缓冲区。

    这是您的映射的修订版本,仅适用于 Python 缓冲区,所有这些:

    augroup PythonThings
        autocmd!
        autocmd FileType python nnoremap <buffer> <F5> :exec '!python' shellescape(@%, 1)<cr>
    augroup END
    

    见:

    :help <buffer>
    :help autocommand
    

    切勿在配置中添加您不完全理解的任何内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-17
      • 1970-01-01
      • 2011-01-03
      • 2023-02-01
      相关资源
      最近更新 更多