Como abrir dois arquivos diferentes usando o editor vi?

17

Eu tenho dois arquivos em locais diferentes e quero abrir esses dois arquivos com o mesmo comando vi . Como posso fazer isso?

  • Localização do arquivo 1: /home/rs/rest.pl
  • Localização do arquivo 2: /home/dev/grd.pl
por sandy 05.06.2017 / 07:44

3 respostas

21

Como observado por Zanna , use vários argumentos para Vi. No entanto, Vi (m) por padrão não mostra os arquivos de uma só vez. Eles são carregados em buffers e você pode alternar para os próximos (ou anteriores) buffers usando :bn e :bp . Se você quiser ver os arquivos ao mesmo tempo, use o windows (splits):

vim /some/file1 /some/file2 -o # horizontal split
vim /some/file1 /some/file2 -O # vertical split

Ou guias:

vim /some/file1 /some/file2 -p # Open up to 10 files in tabs

No entanto, os buffers são o que o Vim realmente usa para manipular arquivos, guias e janelas são apenas maneiras de organizá-los visualmente. Acostume-se a usar buffers diretamente, em vez de usar várias janelas ou guias.

(Essas opções também se aplicam ao vi do Ubuntu, que é vim.tiny por padrão. vim-tiny é construído com +windows , portanto, as guias e as janelas estão ativadas.

Veja também:

por muru 05.06.2017 / 08:28
12

Você pode chamar o vi (ou vim) com vários argumentos

vi /home/rs/rest.pl /home/dev/grd.pl

Você está no primeiro arquivo, mas ambos estão abertos. Você pode alternar entre eles usando :n (próximo arquivo) e :N (último arquivo) (pressione esc para sair do modo de inserção, se necessário).

Eu noto que esses arquivos estão em diretórios home de diferentes usuários, então você pode não ter permissão como um usuário normal. Para editar arquivos cujo usuário não tem permissões suficientes para editar, você precisará de sudo . Você pode executar o comando com sudo inicialmente ou usar um truque ao salvar o arquivo :w !sudo tee %

    
por Zanna 05.06.2017 / 08:17
1

Se você gosta de ver os dois arquivos lado a lado horizontalmente, use

vi -o /home/rs/rest.pl /home/dev/grd.pl

    
por Sat Yam 05.06.2017 / 17:35