Eu não sou um usuário avançado do vim, estou apenas começando a entender os movimentos e comandos avançados com o vim. Mas há uma desvantagem que eu não consigo entender.
Eu cresci com programas gráficos para escrever código, mas recentemente comecei a usar o vim over ssh & screen para trabalhar em projetos bastante grandes com muitas pastas.
Estou curioso para saber o que os mestres do vim fazem para trabalhar com vários arquivos de maneira rápida e fácil. Considere um aplicativo de trilhos como um exemplo. Digamos que você queira editar um controlador para executar.
vim app/controllers/controller.rb
Mas então você quer rapidamente mudar para editar uma visualização ou uma migração de banco de dados, meu primeiro instinto é :wq
retornar ao bash para navegar até esse diretório e iniciar o vim novamente em um buffer novo.
Obviamente, isso é totalmente errado.
Eu aprendi sobre várias coisas como:
- O clientserver (mas eu não quero usar o X sobre ssh e esta parece ser a única maneira)
:e
para abrir outro arquivo navegando, mas não consigo fazê-lo muito rapidamente. Guia completo realmente me excita.- Abrindo um diretório inteiro e pesquisando nos buffers.
- O NERDTree é promissor, mas eu realmente quero ficar longe de qualquer representação gráfica para continuar me forçando a dominar a navegação na linha de comando
Peço desculpas por ser ingênuo, mas realmente quero aprender a maneira correta de fazer isso, mesmo que seja muito subjetivo.
Quais são seus métodos e o que você recomendaria?
rails-type-navigation
a documentação ou:help rails-type-navigation
quando você instalá-lo).Respostas:
É possível configurar o vim para editar vários arquivos sem precisar sair. Você usa vários buffers e alterna entre eles. Como você está usando o vim dentro da tela Você pode colocar o seguinte em seu ~ / .vimrc para habilitá-lo.
Esses mapeamentos de teclas são mapeados para as teclas de seta Ctrl-Esquerda e Direita para alternar entre buffers. A tecla F4 chama o mesmo menu que a GUI mostraria. A guia Pressionar agora também exibe um pequeno menu para selecionar a conclusão quando a guia Pressionar.
fonte
Hah! Eu costumava ser exatamente como você, então eu sei exatamente de onde você vem. Mesmo agora que sei o que estou fazendo até certo ponto (não sou um deus do vim, mas espero chegar lá), ainda faço ocasionalmente a: wq e volto ao meu shell.
Verifique isso - isso pode ajudá-lo. (Isso também me ajudará, já que eu nunca soube disso. Isso é impressionante nos sites de stackexchange - você aprende ajudando os outros a aprender!)
Aqui estão algumas coisas que eu faço.
O
:e
comando De dentro do vim, ao editar um arquivo, você pode fazer algo parecido:e dir/subdir/otherfile
e ele será aberto em um novo buffer, o que significa que você terá dois arquivos abertos ao mesmo tempo.Ctrl-Shift-6
(Não conheça os valores reais de ASCII). Se você tiver dois buffers abertos, poderá alternar entre eles em um flash com essa alternância.bd
- exclusão de buffer. Permite limpar um buffer.Este é realmente muito útil -
:sh
. Se você precisar voltar ao shell por qualquer motivo (por exemplo, para procurar um diretório e chmod um arquivo), poderá invocar o comando shell do vim para fazer exatamente isso. Sair do shell o leva de volta para onde você estava no vim.Na mesma categoria que a digitação acima
:!
e um comando unix posteriormente, esse comando será executado. Tente isso comls
. (Eu acho que também funciona com os shell embutidos, mas não tenho certeza.)Esses são os que eu uso o tempo todo. Há também o arquivo
:n
seguinte e o:p
arquivo anterior, já que você pode ter mais de dois buffers abertos no vim de uma só vez (embora eu não costumo fazer isso).fonte
:sh
,:e
e gerenciamento de buffer adequada, e as coisas ficam sexyCtrl+Z
devem suspender o processo (afg
partir do shell para exibi-lo novamente) - o que é uma alternativa:sh
.É aí que você começa a usar plugins . Para gerenciamento de arquivos (ou buffer), a árvore NERD e o MiniBufExplorer são escolhas comuns. No seu caso, eu pesquisaria no Google " vim ruby ide " e seguiria um dos muitos tutoriais que encontrar. Eu uso o Python e os 3 comandos deste tutorial configuram tudo o que preciso no Vim.
fonte
Eu também recomendaria o uso de janelas divididas para visualizar vários arquivos de uma vez. Adicione algumas habilidades com o gerenciamento de buffer e janela no VIM, e você será um ninja do VIM rapidamente.
Para a documentação real, encaminhá-lo-ei para a documentação do Windows VIM , mas tentarei ajudá-lo aqui.
Inicie o VIM com 2 (ou mais) janelas divididas horizontalmente, a janela superior possui o arquivo1, a próxima janela abaixo possui o arquivo2, etc.
Inicie o VIM com 2 (ou mais) janelas divididas verticalmente, a janela mais à esquerda possui arquivo1, a próxima janela sobre tem arquivo2, etc.
Mova o cursor para uma janela diferente:
Já está editando um arquivo, mas deseja dividir a janela e editar um arquivo diferente também:
Para divisão horizontal e vertical, respectivamente.
Também existem comandos para mover janelas, redimensioná-las etc.
fonte
Use o comando vi: split para abrir uma segunda janela de edição. A divisão pode fazer divisões horizontais e verticais e mais de duas por vez. Eu tive até 10 arquivos abertos na mesma sessão do vi.
fonte