使用 conqueterm 在 gvim 中运行 python 脚本

使用 conqueterm 在 gvim 中运行 python 脚本

我正在尝试配置 vim 以在缓冲区内运行 python 脚本。我尝试了 conqueterm,当我输入以下命令时,我设法得到了我想要的结果:

:ConqueTerm python -i test.py

现在我想将此命令绑定到一个键,以在另一个缓冲区中执行当前文件/缓冲区。但是当我运行:

:ConqueTerm python -i %

我得到一个空的新缓冲区,其中没有显示任何内容。我该怎么做才能执行该脚本?

我在 Windows 7 上使用 gvim 7.3 和 python 2.7

答案1

经过一些研究,我想出了以下解决方案:

map <F8> :exe "ConqueTermVSplit python -i " . expand("%")

该问题强制了 % 扩展。

答案2

一般使用其中一个:map命令即可将一个键绑定到一个命令。

:map Q :ConqueTerm python -i %^V^M

您可以使用任何内容代替Q,它类似于:命令。来自 VIM 帮助文本:

{lhs}   means left-hand-side    *{lhs}*
{rhs}   means right-hand-side   *{rhs}*

:map    {lhs} {rhs}             |mapmode-nvo|           *:map*
:nm[ap] {lhs} {rhs}             |mapmode-n|             *:nm* *:nmap*
:vm[ap] {lhs} {rhs}             |mapmode-v|             *:vm* *:vmap*
:xm[ap] {lhs} {rhs}             |mapmode-x|             *:xm* *:xmap*
:smap   {lhs} {rhs}             |mapmode-s|                   *:smap*
:om[ap] {lhs} {rhs}             |mapmode-o|             *:om* *:omap*
:map!   {lhs} {rhs}             |mapmode-ic|            *:map!*
:im[ap] {lhs} {rhs}             |mapmode-i|             *:im* *:imap*
:lm[ap] {lhs} {rhs}             |mapmode-l|             *:lm* *:lmap*
:cm[ap] {lhs} {rhs}             |mapmode-c|             *:cm* *:cmap*
                    Map the key sequence {lhs} to {rhs} for the modes
                    where the map command applies.  The result, including
                    {rhs}, is then further scanned for mappings.  This
                    allows for nested and recursive use of mappings.

答案3

为了%方便扩展,在 vim 中输入命令时,可以使用Ctrl+R然后%。这会将%字符扩展为命令行。

相关内容