Sei que posso abrir vários arquivos usando vim
algo como vim 2011-12*.log
, mas como posso alternar entre arquivos e fechá-los um por vez? Além disso, como posso informar o nome do arquivo atual que estou editando?
linux
command-line
vim
files
cwd
fonte
fonte
Respostas:
Primeiro, no vim, você pode inserir :(dois pontos) e, em seguida
help
, ajudar , procure:help
uma lista de tópicos de auto-ajuda, incluindo um breve tutorial. Na lista de tópicos, mova o cursor sobre o tópico de seu interesse e pressione ctrl]e esse tópico será aberto.Um bom lugar para você começar seria o tópico
Ok, vamos à sua resposta.
Após iniciar o vim com uma lista de arquivos, você pode passar para o próximo arquivo digitando
:next
ou:n
abreviando.:wnext
é a abreviação de escrever as alterações atuais e, em seguida, passa para o próximo arquivo.Há também um análogo
:previous
,:wprevious
e:Next
. (Observe que:p
é abreviação de:print
. A abreviação de:previous
é:prev
ou:N
.)Para ver onde você está na lista de arquivos, digite
:args
e o arquivo que está sendo editado no momento aparecerá[]
entre colchetes.Exemplo:
resultado:
fonte
você pode abrir outro arquivo enquanto o vim estiver aberto com
:tabe filename
e alternar para o outro arquivo digitado:tabn
ou:tabp
para o próximo e o anterior de acordo.Os atalhos de teclado gT e gt também podem ser usados para alternar entre guias quando você não está no modo de edição (ou seja, não está nos modos de inserção, substituição etc.). Em alguns sistemas, Ctrl+ Alt+ Page Upe Ctrl+ Alt+ Page Downtambém permitem a alternância de guias, mas isso nem sempre funciona (por exemplo, não funciona no terminal OS X 'pronto para uso').
E você pode ver o nome do arquivo na parte superior do aplicativo vim.
fonte
vim -p file1 file2
:argadd filename
e depois:next
a ele. Da mesma forma, você pode usar:argdel filename
para remover um dos arquivos em edição.Comandos para alternar entre buffers:
:help buffer
para encontrar mais informaçõesPara saber utilização filename Ctrl+ G,
:file
ou:f
fonte
:bw
fechar arquivo haha. Não se esqueça de ler a ajuda:bw
onde diz que você só deve usá-la se souber o que está fazendo. Não é um grande negócio, mas a menos que queira acabar com todas as marcas e informações sobre o arquivo, a melhor utilização:bd
ou:q
como uma pessoa normal:bw
no caso de você estar curioso: vi.stackexchange.com/questions/2212/…Outra opção, além das respostas dadas, é dividir a janela com:
:vsp
é para divisão vertical. Em seguida, useCtrl+W <ARROW_KEYS>
para mover em painéis.fonte
:vs
vez de:vsp
Ctrl+W, v
para a divisão vertical eCtrl+W, s
para a horizontal.CTRL+W
há anos e recentemente faço muita edição de VI em páginas da web. Toda vez que eu digito o comando sem nem pensar e ... whammmm ... a guia do navegador se foi! Eu continuo esquecendo. Eu realmente preciso aprender um novo atalho.fonte
Fiz uma pergunta semelhante no superusuário,
"Como copiar e colar entre diferentes janelas do bash e arquivos abertos com o VI?"
A resposta para minha pergunta foi que você não pode, mas pode abrir dois arquivos em uma janela do bash usando o
:split
comando do VIM :$ vim file1
, abra um segundo arquivo no VIM usando o:split file2
comando$ vim -o file1 file2
do bash.:q
fecha e:q!
força fecha.Meu bash é preto e branco; portanto, o nome do arquivo de cada tela é denominado como uma linha 'selecionada' invertida com o nome do arquivo mencionado lá.
Woot!
fonte
Acho que o método mais conveniente de editar vários arquivos é usando guias. Você pode abrir vários arquivos em guias separadas através da linha de comando da seguinte maneira:
Ou, se você já possui o vim aberto, pode abrir um novo arquivo em uma nova guia, como segue:
Depois de abrir as guias, use
gt
para exibir a próxima guia egT
a guia anterior.Você também pode pular para a primeira guia com
1gt
, a segunda guia com2gt
, etc.Você pode fechar as guias usando
:tabc
Finalmente, você pode mover a guia atual para a
n
localização th com:ntabm
onden
é qualquer número maior ou igual a0
.fonte
argadd ...
adicionará todos os arquivos aos argumentos e também a:ls
/:buffers
e permitirá que você os edite.Ver
:h arglsit
&:h argedit
&:h argsd
Além disso, você pode executar determinadas ações apenas em args com
:argdo ...
, e você pode começar novamente com seus argumentos, fazendo:argsd*
.fonte
Há muitas maneiras de fazer isso. O primeiro, talvez o menos conveniente, é chamar
vim
os arquivos que você deseja editar - crie:Ele chama os dois arquivos em dois buffers. Para alternar de um arquivo para outro, use
:n
e:N
. Para listar os arquivos que você está editando,:args
fará o trabalho.:help buffer
irá ajudá-lo mais sobre isso.Isso deve responder à sua pergunta. Mas aqui estão mais informações:
Existe uma maneira de editar seus arquivos de uma maneira mais conveniente, dividindo a tela do console usando o vim . Para fazer isso, abra dois quadros com
:split
(:sp
) ou:vsplit
(:vs
) enquanto estiver usando o vim . Em seguida, navegue nesses quadros usando a combinação Ctrl+ W> Ctrl+ W. Também é possível usar Ctrl+ W+ a seta ou a tecla ( H, J, Kou L) correspondente para o quadro seguinte. Quando isso for feito, edite o arquivo que deseja:e file_name
.:help opening-window
irá ajudá-lo mais sobre isso.Agora, se você quiser ver as diferenças entre os arquivos, use o
-d
argumento ou chame o programa vimdiff (é o mesmo) com os arquivos correspondentes.:help diff
irá ajudá-lo mais sobre isso.Entre em contato se tiver algum problema.
fonte
Eu gosto de usar janelas divididas - horizontais e verticais - para editar vários arquivos.
Eu uso o tmux para gerenciar essas janelas mais facilmente
https://tmux.github.io/ "O que é um multiplexador de terminal? Ele permite alternar facilmente entre vários programas em um terminal, desconectá-los (eles continuam sendo executados em segundo plano) e conectá-los novamente a um terminal diferente. muito mais. Consulte o manual. "
Exemplo: Examinando arquivos ou executando testes à direita, editando arquivos de teste e de origem à esquerda:
fonte
:e #(filename)
para alternar entre dois arquivos abertos:p
para arquivo anterior:n
para o próximo arquivofonte