2022年 11月 8日

vim 一键运行 Python 的几种方法

vim的配置文件:~/.vimrc

本来用的如“代码片段A”的代码,在台式机上用的挺好的,换了笔记本后,配置文件也没变,但按了F5以后,只执行了“w”,没有后面的代码运行结果。

在这篇博客,找到了另外三种方法,我选了“方法一”。写到配置里,按F5,成功的看见了结果,和博主说的一样,虽然可以输出结果,但一闪而过,直接就回到了编辑页面,完全没有参考价值。

据我花了五分钟研究之后,找到了病因所在:

众所周知,在vim运行完代码,输出结果之后,会有一个“任意键继续”,这时在键盘上找到一个叫任意的键(不是),按下去,就回到编辑了。

在“方法一”中,代码最后一个字符不是“>”,而是空格。这就导致了它实际上是依次执行了:“:w,回车,:!python %,回车,空格” 五个动作,正是这“空格”,起了任意键的作用,才造成了“一闪而过”的现象。只要把最后那个空格删掉,使得“>”是最后一位就可以解决了。

 

代码们放到后面,省的影响观感:

  1. "方法一,注意:> 后面还有个空格
  2. map <F5> :w<cr>:!python %<cr>
  3. "如果你从我这里复制它的话,记得删掉空格
  1. "代码片段A
  2. "一键运行代码
  3. map <F5> :call CompileRunGcc()<CR>
  4. func! CompileRunGcc()
  5. exec "w"
  6. if &filetype == 'c'
  7. exec "!g++ % -o %<"
  8. exec "!time ./%<"
  9. elseif &filetype == 'cpp'
  10. exec "!g++ % -o %<"
  11. exec "!time ./%<"
  12. elseif &filetype == 'java'
  13. exec "!javac %"
  14. exec "!time java %<"
  15. elseif &filetype == 'sh'
  16. :!time bash %
  17. elseif &filetype == 'python'
  18. exec "!time python %"
  19. elseif &filetype == 'html'
  20. exec "!firefox % &"
  21. elseif &filetype == 'go'
  22. " exec "!go build %<"
  23. exec "!time go run %"
  24. elseif &filetype == 'mkd'
  25. exec "!~/.vim/markdown.pl % > %.html &"
  26. exec "!firefox %.html &"
  27. endif
  28. endfunc

“代码片段A”来源:https://www.cnblogs.com/juneman/p/8592776.html

“方法一”来源:https://blog.csdn.net/fhl0000/article/details/42487031