VIM热键创作


0

我对VIM和Linux一般都很陌生。因此,我自己做这件事远远超出了我的技能水平。我熟悉vimrc文件,但就是这样......

假设我有一个终端打开空转。然后我打开另一个终端,用vim编辑python(.py)文件。如何创建一个永久性热键(例如f1),它将在所有VIM模式下工作,这将保存python文件并在另一个终端窗口中执行它?


le google:alisnic.github.io/posts/vim-run-hotkey - 哦,在另一个终端运行一些东西并不简单,除非你想开始一个新的终端。我想说现在就忘了它...也许有人会有更好的建议:)欢迎来到SU!
ЯрославРахматуллин2013年

Answers:


1

可以在另一个现有终端中执行命令,但这远非微不足道。

首先,您打开了多个终端仿真程序。那些终端模拟器正在运行shell,可能是bash因为你在Linux上。使用该ps命令,您可以找到计算机上运行的所有shell的进程ID(PID)。现在最大的问题是; 哪一个发送命令?

您正在寻找属于终端的shell,以便显示该命令。echo $$在有问题的终端上运行命令应该返回在该终端上运行的shell的PID。使用/proc文件系统,您可以确定shell的标准输入/proc/<PID>/fd/0,即pty设备。

接下来,您要向该终端发送命令。这必须使用TIOCSTI ioctlshell的pty上的命令来完成。您可以在此处找到C源代码。将该程序编译为例如ttyecho并将其放在$ PATH中的目录中。

现在这些部分就位,您可以ttyecho使用shell的pty和命令调用命令python <filename>

在vimscript中完成所有这些工作留给读者练习。:-)


-1

你可以试试这样的东西(同一个终端):

map <F2>:w<CR>!C:\Python27\python.exe %<CR><CR>

appleLover提到他在Linux上
taketwo 2013年

这几乎不是投票给答案的理由。除了二进制路径之外,Vim命令在unix环境中是相同的。我全都是迂腐,但你先生拿蛋糕:)
ЯрославРахматуллин9年

除非他做了适当的修改,否则我没有看到给出答案的意义,这对于提问者肯定不起作用。这可能对教育目的有好处,但是......我们不在教室里。
taketwo 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.