Como você retornar de 'gf' no Vim
Pergunta
Eu estou usando Vim para Windows instalado no modo de Unix. Graças a este site agora eu uso o comando gf
para ir para um arquivo sob o cursor.
Eu estou procurando um comando para qualquer um:
- retorno para o arquivo anterior (similar para Ctrl + T para ctags), ou
-
gf
remapear para iniciar automaticamente o novo arquivo em uma nova janela.
Solução
Eu uso Ctrl - O
Outras dicas
Eu freqüentemente usam Ctrl -. 6 para este
É útil porque me permite saltar rapidamente para trás e para frente entre os dois arquivos.
Você pode querer usar CTRL-W gf
para abrir o arquivo em uma nova aba.
Você pode fechar o arquivo recém-inaugurado como sempre com :bd
ou uso CTRL-6
e outras formas usuais de mudança de buffers.
Use gf para descer em um arquivo e uso: bf para voltar
Apenas uso :e#
seguido de Enter -. Que basicamente diz para editar o último arquivo (mais recente)
Ctrl-Shift-6 é um deles.
:e#↲
é outra.
Eu não sei a resposta para a parte 2 da sua pergunta, mas eu posso ajudar com a parte 1. Use
:e#
Vim mantém uma lista de arquivos (buffers) que está editando. Se você digitar
:buffers
ele irá listar todos os arquivos que você está editando. O arquivo nessa lista com um% ao lado dele é a imagem atual. Aquele com o # ao lado dele é o arquivo alternativo. : E # vai alternar entre o arquivo atual e alternativo. Ao invés de tipo que muito, eu mapear F2 para: e # para que eu possa facilmente alternar entre os arquivos atuais e alternativos. Eu mapear o comando para F2, adicionando este para Vimrc
nmap `<F2> :e#<CR>`
Eu tenho f CTRL-W ao trabalho.
É muito deprimente que eu passei tanto tempo aperfeiçoando mapas para apenas estes comandos para descobrir que não são built-in versões.
Quando você abre um novo arquivo (com gf ou : n ou outro comando) os antigos restos de arquivos em uma lista de buffer. Você pode listar os arquivos abertos com : ls
Se você quiser navegar facilmente entre buffers em vim, você pode criar um mapeamento como este:
nmap <M-LEFT> :bN<cr>
nmap <M-RIGHT> :bn<cr>
Agora você pode alternar entre buffers com Alt + Seta para a esquerda ou Alt + seta para a direita.
A documentação completa sobre mapeamentos está aqui:
:help map.txt
Eu não olhei para o seu gf comando mas eu imagino que usa o : e ou :. Encontrar comando
Assumindo que isso é correto, basta substituir o : e ou : achado com : novo (ou : vnew para uma divisão vertical) eo arquivo será aberto em uma nova janela em vez do mesmo.
por exemplo.
"Switch between header and cpp nmap ,s :find %:t:r.cpp<CR> nmap ,S :new %:t:r.cpp<CR> nmap ,h :find %:t:r.h<CR> nmap ,H :new %:t:r.h<CR> nmap ,F :new =expand("<cfile>:t")<CR><CR> nmap ,d :new =expand("<cfile>")<CR><CR>