我对 VIM 和 Linux 还很陌生。所以自己做这件事远远超出了我的技能水平。我熟悉 vimrc 文件,但仅此而已...
假设我有一个终端处于打开状态,处于空闲状态。然后我打开另一个终端,并使用 vim 编辑一个 python (.py) 文件。如何创建一个永久热键(例如 f1),该热键适用于所有 VIM 模式,可以保存 python 文件并在另一个终端窗口中执行它?
答案1
可以在另一个现有终端中执行命令,但这绝非易事。
首先,您打开了多个终端仿真器。bash
如果您使用的是 Linux,这些终端仿真器可能正在运行 shell。使用该ps
命令,您可以找到计算机上运行的所有 shell 的进程 ID (PID)。现在最大的问题是:将命令发送给哪一个?
您正在寻找属于您想要在其上显示命令的终端的 shell。echo $$
在相关终端上运行该命令应返回在该终端上运行的 shell 的 PID。使用/proc
文件系统,您可以确定 shell 的标准输入/proc/<PID>/fd/0
,即pty
设备。
接下来,您要向该终端发送命令。这必须使用TIOCSTI
ioctl
shell 的 pty 上的命令来完成。您可以找到执行此操作的 C 源代码这里. 将该程序编译为例如ttyecho
并将其放在 $PATH 中的目录中。
现在所有部分都已就位,您可以使用ttyecho
shell 的 pty 名称和命令来调用该命令python <filename>
。
在 vimscript 中完成所有这些工作留给读者作为练习。:-)
答案2
您可以尝试类似的操作(同一终端):
map <F2>:w<CR>!C:\Python27\python.exe %<CR><CR>