vim atalho para abrir um arquivo sob o cursor em uma janela já aberta

8

No vim você pode abrir um arquivo sob o cursor usando o comando gf .

Também é possível abrir facilmente esse arquivo em uma nova janela dividida, atingindo <c-w> f . Este é um recurso muito legal e que economiza tempo.

No entanto, não consigo descobrir como abrir o arquivo em uma janela dividida já aberta (sem criar uma nova).

    
por psibar 03.05.2013 / 15:08

2 respostas

6

Eu juntei todas as peças para fazer o truque. A melhor maneira é criar um mapeamento personalizado para todos os comandos:

 map <F8> :let mycurf=expand("<cfile>")<cr><c-w> w :execute("e ".mycurf)<cr><c-w>p

Explicação:

  • map <F8> mapeia em "F8" os comandos que seguem
  • let mycurf=expand("<cfile>") obtém o nome do arquivo sob o cursor e o salva em mycurf
  • <c-w>w altera o foco para a próxima janela dividida aberta
  • execute("e ".mycurf) abre o arquivo salvo em mycurf
  • finalmente, <c-w>p altera o foco para a janela anterior (de onde realmente viemos)
por 03.05.2013 / 16:29
0

Isso não pode ser feito facilmente. Um [count] antes de <C-w>f especifica qual arquivo corresponde em 'path' é aberto, ele não seleciona uma janela existente. Apenas para o comando <C-w>w , [count] significa "ir para o número da janela existente".

Para obter essa funcionalidade, você precisa escrever um mapeamento personalizado que

  • pega o arquivo, acessa a janela [count] e emula o comando gf ou
  • clona o buffer atual para a janela [count] e executa gf
por 03.05.2013 / 16:00