Após algumas pesquisas, desenvolvi a seguinte solução:
map <F8> :exe "ConqueTermVSplit python -i " . expand("%")
o problema estava forçando a% expansão.
Estou tentando configurar o vim para executar um script python dentro de um buffer. Eu tentei conqueterm e consegui o que eu quero quando digito este comando:
:ConqueTerm python -i test.py
Agora eu quero vincular este comando a uma chave para executar o arquivo / buffer atual em outro buffer. Mas quando eu corro:
:ConqueTerm python -i %
Eu recebo um novo buffer vazio sem nada exibido. O que posso fazer para executar o script?
Estou usando o gvim 7.3 & python 2.7 no windows 7
Geralmente, use um dos comandos :map
para ligar uma chave a um comando.
:map Q :ConqueTerm python -i %^V^M
Você pode usar qualquer coisa no lugar de Q
, que é semelhante ao comando :
. A partir do texto de ajuda do 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.
Para obter o %
facilmente expandido, ao digitar o comando no vim, você pode usar Ctrl + R e então % . Isso expandirá o caractere %
na linha de comando.