Ao sair do Byobu, feche todas as sessões de vim que não saíram

3

Eu configurei o Byobu para abrir uma dúzia de arquivos de texto na inicialização:

new-session -n memo /home/nico/bin/vim-my-memo.sh;
new-window -n client1 /home/nico/bin/vim-client1.sh;
[...]

Funciona bem, mas fechar todas as sessões vim sempre que eu precisar desligar meu computador levaria muito tempo, então eu fecho todo o Byobu clicando no botão X vermelho no canto superior esquerdo.

PROBLEMA: Quando reabro o Byobu, todas as sessões vim estão sendo exibidas:

E325: ATTENTION
Found a swap file by the name "~/.memo.txt.swp"
          owned by: nico   dated: Fri Jul 17 21:18:38 2015
         file name: ~nico/memo.txt
          modified: no
         user name: nico   host name: nico
        process ID: 21813 (still running)
While opening file "/home/nico/memo.txt"
             dated: Fri Jul 17 21:08:32 2015

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.
(2) An edit session for this file crashed.
    If this is the case, use ":recover" or "vim -r /home/nico/memo.txt"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file "/home/nico/.memo.txt.
swp"
    to avoid this message.

Swap file "~/d/n/.memo.txt.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort:

PERGUNTA: Como evitar isso?

Talvez Byobu poderia de alguma forma enviar um sinal de matar para vim para fazê-lo sair corretamente?
Ou talvez tudo que é necessário seja alguma configuração / truque do vim?

    
por Nicolas Raoul 17.07.2015 / 15:16

1 resposta

2

Usar set noswapfile no seu arquivo vimrc ou arquivos (ou :set noswapfile caso contrário) tem alguns efeitos colaterais talvez não desejados, mas faz o truque do lado do vim.

Eu não sei sobre o byobu, mas se você puder personalizá-lo para enviar o sinal de saída 3 ( kill -3 vimprocess ) para todos os seus processos de vim, isso funcionará.

EDIT: O plugin tmux no link fará o que você quiser (e mais: veja o script safekill.sh para customização), sem as desvantagens de set noswapfile .

    
por JEL 17.07.2015 / 17:10

Tags