【发布时间】:2018-05-30 07:56:32
【问题描述】:
在我的.vimrc 文件中,我包含了以下行:
autocmd vimenter * botright term
这意味着,每当 vim 启动时,它都会在右下角打开一个终端。
我想创建一个键映射,使 vim 在终端运行给定的、动态生成的命令。例如,我在.vimrc 文件中添加了以下内容:
nmap <leader><leader> <C-w><C-w>python my_python_file.py<CR><C-w><C-w>
所以如果我正在编辑一个名为my_py_file.py的文件,我可以按<leader><leader>,vim会先换窗口(换成嵌入式终端),然后输入命令
python my_python_file.py
这样文件就可以在python中运行了,最后换回另一个窗口,这样我就可以继续编辑了。这行得通!但我希望它适用于任意文件,而不仅仅是名为my_python_file.py 的文件。这如何实现?
我曾考虑使用expand('%:p') 来获取当前文件的完整路径,但我无法将此字符串作为输入传递给嵌入式终端窗口。我已经尝试编写一个函数来实现这一点,但没有成功。
【问题讨论】:
-
你查看
term_sendkeys()了吗?那也许能够达到你想要的。如果您找到解决方案,请将其作为答案发布,我也对此感兴趣。
标签: python vim terminal-emulator