O problema com o Ctrl - Z
Quando você suspende um processo com Ctrl - Z , o processo recebe um sinal SIGTSTP
, e toda a execução será interrompida (ou seja, sem mais ciclos de CPU), até que um sinal SIGCONT
apareça. Você não poderá enviar vim
de nenhum comando ou entrada enquanto estiver suspenso.
Em outras palavras, não use Ctrl - Z .
No entanto, se você tiver vim
compilado com o recurso clientserver
ativado, poderá usar as opções --servername
e --remote-*
:
Use vim --remote
Ao iniciar sua vim
sessão pela primeira vez, use vim --servername VIM [filename ...]
(o nome do arquivo é opcional se você quiser começar com uma sessão em branco).
Deixe em execução no seu terminal. Agora você pode controlá-lo a partir de qualquer outra janela de terminal, aba, máquina, etc., através dos comandos vim --remote
. Para abrir um arquivo (por exemplo, arquivo.txt em uma nova guia da sessão vim
existente:
vim --remote-tab file.txt
Para usar a funcionalidade vim
interna de :tabfind
(consulte :help find
para obter mais informações):
vim --remote-send ":tabfind filename.txt<CR>"
Para usar o programa find(1)
do seu sistema, como você fez na sua pergunta:
vim --remote-tab 'find $PWD -name build.xml'
Múltiplas sessões
Você também pode especificar um --servername
diferente, o que é útil se você quiser várias sessões vim. Nesse caso, você precisa fornecer o argumento --servername
sempre:
vim --servername HAMBURGER # Start new session named "HAMBURGER"
vim --servername HAMBURGER --remote-tab 'find $PWD -name BACON'
É claro que você pode colocar tudo isso em um shell ou dois para economizar alguma digitação.