![如何让 vim 拥有 python 交互式运行时窗口](https://linux22.com/image/1565115/%E5%A6%82%E4%BD%95%E8%AE%A9%20vim%20%E6%8B%A5%E6%9C%89%20python%20%E4%BA%A4%E4%BA%92%E5%BC%8F%E8%BF%90%E8%A1%8C%E6%97%B6%E7%AA%97%E5%8F%A3.png)
是否可以在 python 中打开 python 实时程序模式窗口,以便我们可以调用程序并直接查看实时结果,而不是从 vim 跳转到 CMD?这有点像 VisualStudio 设置。
答案1
在 Vim 8.* 上
基本选项
:w name-of-python-script.py
:term python name-of-python-script.py
:close
这将:
- 保存脚本
- 在 vim 中打开终端
- 运行脚本并显示输出
- 关闭终端窗口
- 将光标返回到原始窗口
另一个选择是(使用 ipython):
这将:
- 使用 ipython 打开一个 vim 终端
- 将编辑缓冲区保存为 python 脚本 (myscript.py)
- 使用 :term_sendkeys() 将 ipython %run cmd 发送到 :term 窗口。
此示例假设 :terminal 是缓冲区“2”
:call term_sendkeys(2, "%run myscript.py\<cr>")
'call term_sendkeys(..)' 可以映射到一个键,因此在 ipython 缓冲区中运行脚本会很高效。
:nnoremap <leader>zr :term_sendkeys(2, "%run myscript.py\<cr>")
另一个选择是(使用 python 或 ipython):
这将:
- 使用 python 或 ipython 打开 vim 终端
- 将编辑缓冲区拉到寄存器(本例中为双引号寄存器)::%y"
- 将缓冲区内容发送到 python 解释器
:call term_sendkeys(2, @")
- 然后映射到一个键以方便使用:
:nnoremap <leader>zk :%y \| :call term_sendkeys(2, @")<CR>