0

我阅读了这个堆栈线程,了解如何在 vim 中永久保存映射。我去/etc/vim/vimrc:map ,k :!python % <enter>在文件的第一行添加了。当我用 vim 打开一个新的 python 文件时,命令:!python % <enter>会在屏幕底部显示。但它不会自动执行。如何修复此命令以自动执行“输入”?

4

3 回答 3

2

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

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

我建议不要^M按照 ZyX 评论中解释的方式使用 ghoti 的答案,请参阅

编辑

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 pythonau为所有 python 类型的文件声明一个 autocommand=
  • augroup END离开组 ft_python 并返回常规设置

所以这使得,k在 python 中充当“编译”成为可能,但是当我不小心按下,k另一个文件说 c 源代码时,它什么也不做(或者我告诉,k我的 . vimrc).

于 2012-05-26T15:42:24.247 回答
0

:map :!python % <enter>我一直在寻找的答案是粘贴~/.vimrc

于 2012-05-28T10:00:13.767 回答
0

改为输入文字回车符 - 按 Ctrl + V,然后在编写地图时按 Enter:

:map ,k :!python %^M

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

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

于 2012-05-26T15:21:04.103 回答