EDIT: sugira mapeamentos bem simétricos para a caixa dividida vertical, pois o Vim, por padrão, possui dois mapeamentos para a caixa dividida horizontal.
Existem várias maneiras de editar o "arquivo sob o cursor" e, embora você certamente possa remapear gfpara editar em uma nova tabpage como menciona @ alexander-myshov, isso significa que você tem duas maneiras de editá-lo em uma nova tabpage, mas não há como edite-o na janela atual, o que você também pode querer fazer às vezes. Não é difícil usar os mapeamentos padrão, mas se você deseja remapear um deles gf, sugiro alternar os mapeamentos para que você não perca um deles.
Algumas das maneiras de editar um nome de arquivo sob o cursor são
- gf - Edite o arquivo existente sob o cursor na mesma janela
- C-Wf - Edite o arquivo existente sob o cursor na janela dividida
- C-WC-F - Edite o arquivo existente sob o cursor na janela dividida
- C-Wgf - Edite o arquivo existente sob o cursor na nova tabpage
Não há mapeamento padrão para editar o arquivo existente sob o cursor em uma divisão vertical, mas você pode obtê-lo primeiro dividindo a janela verticalmente e depois editando o arquivo sob o cursor na janela atual.
- C-Wv+ gf- Editar arquivo existente sob o cursor na janela dividida verticalmente
Como você pode ver acima, existem dois mapeamentos padrão para editar o arquivo sob o cursor em uma divisão horizontal. Portanto, você pode remapear um deles para a sequência de teclas acima, estendendo o grupo de mapas para também cobrir a caixa dividida vertical. Você pode vincular qualquer coisa, é claro, mas isso parece para completar a simetria bem: nnoremap <C-W><C-F> <C-W>vgf
. Agora você tem
- gf - Edite o arquivo existente sob o cursor na mesma janela
- C-Wf - Edite o arquivo existente sob o cursor na janela dividida
- C-WC-F - Edite o arquivo existente sob o cursor na janela dividida verticalmente
- C-Wgf - Edite o arquivo existente sob o cursor na nova tabpage
Você também pode ir para uma linha específica no arquivo, se o nome do arquivo sob o cursor for seguido por um número de linha. Se você tem
filename:10
você pode editar o arquivo e mover o cursor para a linha 10 com gF. O equivalente é verdadeiro para C-WFuma divisão e C-WgFuma tabulação. A conclusão da simetria para uma divisão vertical não é tão simples aqui, mas eu sugeriria que o C-WC-S-Fmapa obtido com nnoremap <C-W><C-S-F> <C-W>vgF
, imitando o Fou Shift+ fdos mapas padrão como candidato.
Este :
é um exemplo, você pode usar qualquer caractere que não seja um nome de arquivo (consulte :h 'isfname'
).
Todos esses comandos vêm com molho de maçã, como
- expandir caracteres curinga
- procure em mais lugares que o diretório atual, de acordo com sua
'path'
opção
- adicionando uma extensão de arquivo ao nome do arquivo, de acordo com sua
'suffixesadd'
opção
- caso contrário, modifique o nome do arquivo fornecido para encontrar uma correspondência, de acordo com sua
'includeexpr'
opção
Leia mais em :help gf
e os tópicos de ajuda para essas várias opções.
Se o nome do arquivo sob o cursor nomear um arquivo que não existe, é melhor usar os comandos de edição padrão com <cfile>
, como
:edit <cfile> // edit non-existent file under cursor in current window
:split <cfile> // edit non-existent file under cursor in split window
:vsplit <cfile> // edit non-existent file under cursor in vertical split window
:tabe <cfile> // edit non-existent file under cursor in new tabpage
e com isso, é claro, você pode usar coisas como :spl+10 filename
mover o cursor para uma linha específica ou :tabe+/cologne filename
mover o cursor para a primeira ocorrência de um padrão.
'hidden'
opção (set hidden
) permite navegar para longe de buffers não salvos. Para mim, esse foi um enorme aumento de produtividade e foi vital para parar de depender tanto de divisões e separadores.