【问题标题】:vimrc mapping problem; execute python script mapping not working from vimrcvimrc 映射问题;执行 python 脚本映射在 vimrc 中不起作用
【发布时间】:2011-03-27 12:28:37
【问题描述】:

grr。我在 Vim 的学习曲线上苦苦挣扎。
并试图在我的 vimrc 中获得一个简单的映射来执行当前缓冲区的 python 脚本。 该映射格式正确,并且在我将其输入 Vim 的命令行后可以正常工作。这是映射:
map <buffer> <S-e> :w<CR>:!usr/bin/env python % <CR>

但它不会从我的 vimrc 加载 :( 我使用的是基本的 .vimrc_sample,只附加了这个映射。奇怪的是我可以从 vimrc 获得不同的映射:
map <S-t> itest<Esc>
这个有效,但不是脚本执行器?什么给了?
Ubuntu 10.10 Python 2.6 Vim 7.2

非常感谢您的帮助!

【问题讨论】:

    标签: python map vim


    【解决方案1】:

    我怀疑你在map 之前有一些东西:<buffer> 参数意味着映射仅针对当前缓冲区定义,因此在它很奇怪之前将其添加到 vimrc 而不使用 autocmd FileType python 之类的东西。也许这就是它不起作用的原因:您在测试此映射之前以某种方式切换到另一个缓冲区。

    需要注意的一些其他事项:

    1. 永远不要使用map,可以使用noremap
    2. 您可能不希望为视觉(至少在w 之前没有<C-u>)和选择模式定义此映射,并且绝对不希望它为操作员挂起模式定义,所以使用nnoremap
    3. <S-e>E 是等价的。
    4. 您可以使用管道符号将w!... 组合在一个命令中::w | !/usr/bin/env python %<CR>
    5. usr 之前忘记了斜线。

    【讨论】:

    • 感谢 ZyX 的建议! - 会的。
    【解决方案2】:

    耶稣,墨菲定律。
    在发布这个 q 后 1 分钟搜索了一个小时的答案后,我解决了它。问题是映射中的<buffer>
    删除它使映射工作,因此:
    nnoremap E w:<CR>:!python % <CR>

    【讨论】:

      猜你喜欢
      • 2013-03-28
      • 2017-05-23
      • 2020-12-13
      • 1970-01-01
      • 2014-06-12
      • 2014-11-13
      • 2019-07-22
      • 1970-01-01
      • 2023-03-09
      相关资源
      最近更新 更多