无法在vim </enter>中的存储映射中自动执行<enter>

时间:2012-05-26 14:52:27

标签: vim keyboard hotkeys

我读了this stack thread关于如何在vim中永久保存映射的内容。 我转到/etc/vim/vimrc并在文件的第一行添加了:map ,k :!python % <enter>。当我用vim打开一个新的python文件时,命令通过在屏幕底部显示:!python % <enter>来响应。但它不会自动执行。如何修复此命令以自动执行“输入”?

3 个答案:

答案 0 :(得分:2)

我认为您宁愿使用本地版本~/.vimrc进行本地设置,而不是编辑文件/etc/vim/vimrc中的全局设置。在那里你可以添加:

let maplocalleader=","
map <localleader>k :!python %<cr>

我建议不要按照ZyX对ghoti的回答see

的评论中的说明使用^M

修改

ZyX的评论让我将上面的代码更改为

filetype plugin on
augroup ft_python
    au!
    au FileType python nnoremap ,k :!python %<cr>
augroup END

,k不要搞乱其他东西

  • filetype plugin on说如果文件有某种文件类型我们想要完成任务 - 在我们的例子中是python
  • augroup ft_python说我想拥有一组自动命令:=“使用该组名打开文件时调用的命令
  • au!删除所有自动命令
  • au Filetype python为所有python类型的文件声明自动命令= au
  • augroup END离开群组ft_python并返回常规设置

这样就可以让,k在python中充当'compile'但是当我不小心在另一个文件中按,k说一个c源代码时,它什么都不做(或者我不做的事情)告诉,k我的.vimrc中的其他地方的c源代码。)

答案 1 :(得分:0)

输入一个文字回车字符 - 按Ctrl + V,然后在写地图时输入:

:map ,k :!python %^M

输入序列Ctrl + V后,您会看到回车显示为^M,然后按回车键。

Ctrl + V键告诉vim插入您键入的下一个字符。

答案 2 :(得分:0)

我要找的答案是将:map :!python % <enter>粘贴到~/.vimrc