vim setting 'map<F12> :!python %<cr>' 在终端执行后自动返回vim

标签 vim

我加了 map<F12> :!python %<cr>进入 ~/.vimrc .但是,执行此命令后,当我按下键 <F12> 时,它会自动退出。 .在正常情况下,它应该停在一条线 Press ENTER or type command to continue ,但就我而言,它只是跳过这一行并返回到 vim。看起来有人在偷偷按下 ENTER 键。最令人惊讶的是,它只发生在终端。当我手动输入 `:!python % ' 或使用 gvim 时,一切正常。我不知道如何解决这个问题。

最佳答案

终端版本可能在您能够阅读消息之前重绘屏幕。您可以尝试设置 'lazyredraw'延迟重绘。

解决方法可以是设置 'lazyredraw'并添加对函数 getchar() 的调用到映射:

  function! RunPython()
     let s:save_lz = &lazyredraw   " save 'lazyredraw' setting
     set lazyredraw
     !python %
     call getchar()                " stop waiting pressing a key
     let &lazyredraw = s:save_lz   " restore 'lazyredraw'
  endfunction
  map <F12> :call RunPython()<CR>

编辑:

您也可以考虑为此任务使用插件,如 "SingleCompile : Make it more convenient to compile or run a single source file" .

关于vim setting 'map<F12> :!python %<cr>' 在终端执行后自动返回vim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12069963/

相关文章:

c# - 在 C# 中使用 mono 或 vim 在 unix 上自动查找必要但缺少的命名空间?

macos - 如何提高 mac 操作系统上的 xset 速率?

vim - 在 hg 提交消息上设置文本宽度?

python - 让 Omni 完整地在 Windows 上的 vim 7.2 上工作

vim - 星号 (*) 命令的行为

vim - Vim 的尾声剪辑

vim - 如何从 `Insert mode` 撤消在此模式下所做的更改?

ios - .vimrc 中的 "set number"在 Vim for iOS 中不工作

c - C程序结果后ZSH自动打印 '%'

java - Vim 和 Java : add java import statements automatically