Se eu vim aberto com vários arquivos na linha de comando, por exemplo vim debug.log*
, que as cargas debug.log
, debug.log.1
e debug.log.2
, posso navegar entre elas, atribuí-los a várias janelas ( :split
/ :vsplit
) ou tal?
O único atalho que conheço para esse modo de operação é o :n
que carrega o próximo arquivo na lista. O que mais posso fazer neste modo de operação com vários arquivos? (ou qual assunto da ajuda cobre isso?)
multiple-files
load
SF.
fonte
fonte
:previous
(ou:prev
) é o inverso de:n
e retorna um arquivo.Respostas:
O tópico da ajuda mais relevante é
:ls
também conhecido como:files
ou:buffers
.No seu
vim debug.log*
exemplo, se você desse o:ls
comando, veria:… Indicando que o primeiro é o buffer ativo.
Para abrir
debug.log.2
na janela atual, dê o comando:b 3
ou:b debug.log.2
para mostrar o buffer 3.Para dividir a janela e abrir o buffer 2 nela, dê o
:sb 2
comando A versão com divisão vertical disso é:vert sb 2
.Existem muitas variantes do
:b
comando; procure os tópicos de ajuda citados aqui para ter uma idéia deles.Além disso, você pode chamar
vim -o debug.log*
para abrir todos os arquivos, cada um em sua própria divisão, ouvim -O debug.log*
para abri-los cada um em uma divisão vertical.fonte
Além da funcionalidade bruta do vim mencionada pelo 200_success, o ecossistema do Vim está cheio de plugins para fornecer funcionalidade extra, como:
No entanto, antes de começar a usar plug-ins, é melhor entender completamente os buffers e janelas no vim.
fonte
Você também pode abrir o vim com parâmetros diferentes.
Abre arquivos em guias:
Abre arquivos em divisões verticais:
Existe um plugin legal e bastante poderoso chamado CtrlSpace:
https://github.com/szw/vim-ctrlspace
É muito útil se você precisar trabalhar com muitos arquivos. Simplesmente você pode imaginar o ctrl-space como a própria lista de buffers para cada guia. Ele fornece uma maneira muito fácil de navegar entre os arquivos, como o autor declara:
fonte
Se você deseja abrir um arquivo específico sem precisar passar
:ls
, pode usar um dos seguintes::vs filename
abre o arquivo em uma divisão vertical:sp filename
faz o mesmo, mas em uma divisão horizontal:tabe filename
abre em uma nova guiaTambém vale a pena saber que, se você não especificar um nome de arquivo, abrirá uma nova divisão / guia do arquivo atual, o que pode ser útil para arquivos longos.
fonte
:t
é o comando de cópia. Para:tabedit
você precisar pelo menos:tabe
.Existem alguns atalhos úteis para navegar em vários arquivos:
CTRL-^
(ondeN
está o número do buffer) para ir para o arquivo editado anteriormente.N CTRL-^
(ondeN
está o número do buffer) para ir para o buffer específico.Por exemplo:
Isso é equivalente a
:buffer N
.Use
:Ex
/:Sex
/:Vex
para navegar no diretório atual.Use
:tabs
(vim -p
) com alguns atalhos personalizados.vimrc
, como:Use
:ba
/:vert ba
para dividir, pule para o buffer selecionado via Control+w, w/ We faça a janela atual (:on
).fonte