微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vim设置’map:!python%’在终端执行后自动返回vim

添加了地图< F12> :! python%< cr>到〜/ .vimrc.但是,当我按下键< F12>时,它会在执行此命令后自动退出.在正常情况下,它应该停在一行按ENTER或键入命令继续,但在我的情况下,它只是跳过此行并返回到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”.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐