Como posso fechar a janela mais à esquerda no Vim?

0

Estou tentando escrever um comando que fechará uma janela de navegador de árvore ( vim-tree ) e redimensionará as outras janelas.

,to abre a janela e ajusta o tamanho da janela para que todas as janelas abertas mantenham um tamanho normal (usando :set columns+=30 CTRL-W = ).

,tc deve fechar a janela da árvore (comprimento total, extrema esquerda) e redimensionar a janela principal ( :set columns-=30 ).

Como posso escrever um comando que feche a janela mais à esquerda para que eu possa digitar ,tc para fechar a janela e redimensionar de uma só vez?

  • Eu posso navegar para ele com CTRL-W h , mas é deselegante e potencialmente irritante (campainha audível!) usar 10CTRL-W h no comando.
  • :topleft c infelizmente não funciona.

Você consegue pensar em uma maneira elegante de fazer isso?

    
por terrace 10.01.2011 / 02:09

1 resposta

1

Se a janela for realmente comprida na extremidade esquerda, ela terá a janela número 1, portanto, um mapeamento como esse deve funcionar:

:nmap ,tc :exe '1wincmd w' | close<CR>

Isso salta para a primeira janela e depois fecha. A desvantagem é que a janela ativa se tornará qualquer que tenha sido a janela número 2 (que se torna a janela número 1 quando o número da janela original for fechado), em vez da última janela em que você estava.

Infelizmente :1wincmd c não fecha a primeira janela, já que ctrl - w c não aceita uma contagem, então não consigo ver uma maneira de evitar a primeira mudança para a janela que você deseja fechar.

2017 Editar: Desde que escrevi esta resposta, ctrl - w c aceita uma contagem em versões mais recentes do Vim, portanto, a resposta é apenas usar :1wincmd c e não irá desviar o cursor da sua janela ativa:

:nmap ,tc :1wincmd c<CR>
    
por 10.01.2011 / 02:54

Tags