Eu costumava usar uma combinação de guias e várias instâncias do gvim, mantendo grupos de arquivos relacionados como guias em cada instância. Contanto que eu não tenha acabado com muitas guias em uma instância, a barra de guias mostra o nome de cada arquivo que você está editando rapidamente.
Então li uma postagem de Jamis Buck sobre como ele mudou do TextMate de volta para o vim e aprendeu alguns truques excelentes:
- Ctrl-w s e Ctrl-w v para dividir a janela atual
- Ctrl-6 para alternar entre dois buffers na mesma janela.
- o incrível fuzzyfinder.vim que dá a você a pesquisa de preenchimento automático de arquivos em seu diretório atual ou de buffers que você tenha aberto no momento
- Os próprios fuzzy_file_finder e fuzzyfinder_textmate de Jamis , que modificam ligeiramente como o fuzzyfinder funciona para se comportar mais como um recurso semelhante no TextMate (pelo que posso dizer, a diferença é que corresponde a qualquer lugar no nome do arquivo em vez de apenas desde o início). Assista a este vídeo para vê-lo em ação.
Agora, tenho apenas uma instância do gvim, maximizada, e divido em várias janelas para que possa ver vários arquivos de uma vez. Eu liguei Ctrl-F a fuzzyfinder_textmate, então agora se eu digitar (digamos) Ctrl-F, mod/usob
ele abre app / models / user_observer.rb. Quase nunca mais me preocupo com guias.
Atualização 07/08/2010
Embora o fuzzyfinder_textmate continue incrível, como Casey aponta nos comentários, ele não é mais mantido. Além disso, ele (e / ou fuzzyfinder.vim) fica um pouco lento e instável ao trabalhar com grandes projetos (muitos diretórios ou arquivos), então estou procurando uma alternativa.
Felizmente, parece haver uma alternativa muito agradável na forma de Wincent Colaiuta 's Command-T plug-in . Este tem um comportamento muito semelhante (se não ligeiramente melhor) ao fuzzyfinder_textmate, mas é visivelmente mais rápido; ele também possui recursos interessantes, como a capacidade de abrir o arquivo encontrado em uma divisão ou divisão vertical. Obrigado (e votos positivos!) A David Rivers por apontar para ele.
Eu uso o básico - '
:ls
' + ':bn
' / ':bp
' + ':b <part-of-name>
'fonte
:map <c-n> :bn<cr>
e:map <c-p> :bp<cr>
, uma vez queC-n
eC-p
são rápidos de digitar e permitem alternar entre os buffers se você pressioná-los repetidamente. (Eu nunca os usei para o propósito original.) É como alternar entre as guias do navegador comC-PgUp
eC-PgDn
ou qualquer atalho que seu navegador tenha.[b
para o buffer anterior e]b
para o próximo buffer. Mais um monte de outras guloseimas que usam o conceito de]
para o próximo e[
para o anterior.Eu gosto de "ctrl-w s" e "ctlr-w v" para dividir a janela. Então mapeio as teclas de movimento (h, j, k, l) com ctrl pressionado para mover entre as janelas divididas:
Ter que mover minha mão para as teclas de seta é irritante.
Em seguida, eu configuro ctlr-tab para alternar entre buffers na janela atual (como muitos outros ambientes):
Isso funcionou muito bem para mim nos últimos anos, embora o vim sempre tenha mais segredos do que você possa imaginar.
fonte
:bp
:bn
e ninguém mencionou o bom plugin ctrlp.vim . Usando este plugin, você pode pesquisar o buffer por nome.
fonte
eu uso
CTRL- Jpara o próximo buffer
CTRL- Kpara buffer anterior
CTRL- Lpara a próxima guia
CTRL- Hpara a guia anterior
Aqui está a
.vimrc
configuração:Veja http://syskall.com/my-biggest-vim-productivity-boost/
fonte
fonte
:tab sball
primeiro, ou em vez de usar:tabn
você deve usar:buffer
Recentemente, tornei-me mais minimalista.
Para ciclo de buffers que eu uso ]be [bdo intacto: https://github.com/tpope/vim-unimpair
Para pular direto para um buffer aberto, basta usar o preenchimento da guia do Vim com :b. Algumas letras são suficientes para chegar a qualquer buffer aberto com uma ou duas guias.
Da mesma forma que os buffers abertos, eu uso :ecom caminhos relativos e tabulação completa.
Eu também uso :lsocasionalmente para ver quais buffers abri (e para verificar seu status modificado).
Para me livrar de um buffer, eu uso :bwpara limpar o buffer. Eu geralmente faço uma divisão temporária e altero os buffers para preservar meu layout, já que :bwtambém fecha a janela ativa.
Todas as coisas do minibuf que experimentei acabaram me irritando, e não quero que alguma coisa de correspondência inteligente abra arquivos aleatórios para mim. Se eu realmente precisar procurar por algo, uso NERDtree ( :e .).
IDK, Ultimamente também abandonei o Yankring (porque ele estraga xp) e comecei a usar registradores, e recentemente decidi que os movimentos f/ tsão a melhor coisa de todos os tempos ...
fonte
<leader>ll
para:ls
. Também é muito útil ter certeza de que você temset wildmenu
na sua,.vimrc
pois então você obtém um pequeno menu que apresenta todas as alternativas para:b
O excelente Buffer Explorer , o ser tornou-se uma memória muscular tão forte que me encontro desejando poder usá-lo em outras aplicações. Acho que é extremamente rápido ao editar ativamente mais de dois arquivos.
fonte
Passei um bom tempo construindo meu .vimrc para trabalhar com este projeto HTML :: Mason no qual estou há quatro anos, então eu tenho uma mistura estranha de guias e janelas divididas. Para sua apreciação:
fonte
Eu uso tselectbuffer . É muito rápido e ao contrário do bufexplorer não ocupa espaço na sua janela. Ele também tem uma busca incremental. Eu tentei o minibufexplorer e achei a navegação no buffer um pouco difícil.
fonte
,be
,,bs
,,bv
, então eu mapeados TSelectBuffer para,bb
.Para listar e alternar entre os buffers que uso:
Para alternar entre buffers:
fonte
Eu mapeei
<S-J>
e<S-K>
para:bp
e:bn
, embora admita que não o use porque o número de arquivos é maior que 10. Eu mapeei<C-J>
e<C-K>
para as guias anterior e seguinte do Terminal Gnome e geralmente executo 4 instâncias do vim para cada uma os 4 projetos diferentes em que trabalho. Eu ainda realmente desejo que o buffer anterior e o próximo vão para o histórico dos buffers nos quais tenho trabalhado, e não para a ordem na lista de buffers.fonte
Eu uso tselectbuffer. É muito rápido e ao contrário do bufexplorer não ocupa espaço na sua janela. Ele também tem uma busca incremental. Eu tentei o minibufexplorer e achei a navegação no buffer um pouco difícil.
fonte
eu uso simples: vsplit com ^ W + w / ^ W + re: tabnew com combinações de teclas Ctrl + Alt + PgUp / PgDown.
fonte
Quando há vários buffers abertos em uma sessão do Vim, pode se tornar difícil controlar os buffers e seus respectivos números. Se for esse o caso, mudar para um arquivo diferente pode ser mais fácil usando um mapa simples:
vim.wikia.com
fonte