Как открыть два разных файла с помощью редактора vi?

17

У меня есть два файла в разных местах, и я хочу открыть эти два файла с той же командой vi . Как я могу это сделать?

  • Файл 1: /home/rs/rest.pl
  • Файл 2: /home/dev/grd.pl
задан sandy 05.06.2017 в 05:44
источник

3 ответа

21

Как отмечено Zanna , используйте несколько аргументов для Vi. Однако Vi (m) по умолчанию не отображает файлы одновременно. Они загружаются в буферы, и вы можете переключиться на следующие (или предыдущие) буферы, используя :bn и :bp . Если вы хотите видеть файлы одновременно, используйте окна (splits):

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

Или вкладки:

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

Однако буферы - это то, что фактически использует Vim для управления файлами, вкладками и окнами - это просто способы визуально упорядочить их. Вы привыкли использовать буферы напрямую, а не через несколько окон или вкладок.

(Эти параметры также применимы к vi Ubuntu, по умолчанию vim.tiny . vim-tiny построено с помощью +windows , поэтому вкладки и окна включены.)

См. также:

ответ дан muru 05.06.2017 в 06:28
источник
12

Вы можете вызвать вызов vi (или vim) с несколькими аргументами

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

Вы находитесь в первом файле, но оба они открыты. Вы можете переключаться между ними, используя :n (следующий файл) и :N (последний файл) (нажмите esc , чтобы выйти из режима вставки, если необходимо).

Я замечаю, что эти файлы находятся в домашних каталогах разных пользователей, поэтому у вас может не быть разрешения как обычный пользователь. Чтобы редактировать файлы, которые у вашего пользователя не имеют достаточных разрешений для редактирования, вам понадобится sudo . Вы можете сначала запустить команду с sudo или использовать трюк при сохранении файла :w !sudo tee %

    
ответ дан Zanna 05.06.2017 в 06:17
1

Если вам нравится просматривать два файла, разбитые по горизонтали, используйте

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

    

ответ дан Sat Yam 05.06.2017 в 15:35