Como configurar o MacVim para sair ao sair?

7

Quando fecho o MacVim usando o comando vim padrão :q , a janela do MacVim é fechada, mas o programa ainda está em execução. Isso causa problemas quando outros processos tentam gerar uma instância do MacVim, porque se ele ainda estiver em execução, um sinalizador especial precisa ser passado para o MacVim para que uma nova instância seja aberta, mas as instâncias se acumulam.

Existe uma maneira de usar o vimscript para matar o processo, bem como fechar a janela ao sair?

    
por tlehman 18.07.2011 / 22:41

2 respostas

17

Se você consistentemente acabar com vários ícones MacVim em seu Dock , talvez queira examinar como está iniciando MacVim . Especificamente, :help macvim-start diz

Do NOT call the MacVim binary inside the app bundle to start MacVim.

Na linha de comando, você usaria normalmente open -a MacVim filename ou mvim filename 1 . A partir da GUI, você pode associar MacVim a extensões específicas, arrastar e soltar arquivos para MacVim no Finder ou no Dock ou em uma janela aberta MacVim , ou você pode usar o menu Serviços para iniciar novos buffers com seleções de outros aplicativos. Há também o manipulador de URL mvim:// (consulte :help mvim:// ).

Nenhum desses métodos requer nenhum sinalizador / opção especial se uma instância existente está em execução ou não e deve sempre criar um ícone MacVim adicional no Dock .

1 mvim é um script que vem com MacVim ; veja :help mvim . Depois de instalá-lo em um diretório em seu PATH, você poderá usá-lo para editar arquivos em uma instância MacVim existente (ou iniciará um se já não estiver em execução).

A opção “Após a última janela é fechada:” Sair do MacVim na guia Geral das preferências do MacVim (⌘ ou MacVim & gt ; Preferências… ) pode ser o que você deseja.

Se você realmente precisa de algo mais específico, então você pode usar o comando MacVim -custom :macaction terminate: para pedir a todo o aplicativo MacVim para sair em qualquer momento roteirizado. Deve ser equivalente a ⌘Q e ao MacVim > Item de menu Sair MacVim (todos enviam a ação terminate: para o primeiro respondente do aplicativo); Se você modificou os buffers, então ele perguntará se você deseja "Parar de qualquer maneira?".

Parece que você pode querer conectá-lo ao evento VimLeave por meio de um autocommand:

autocmd VimLeave * macaction terminate:
    
por 19.07.2011 / 04:40
0

Parece que o pacote MacVim do macvim-dev não possui o script mvim. Eu peguei o script mvim do repositório b4winckler e ele está funcionando como descrito acima.

    
por 29.12.2016 / 14:41