Я знаю, что могу открыть несколько файлов с vimпомощью чего-то вроде vim 2011-12*.log, но как я могу переключаться между файлами и закрывать файлы по одному? Кроме того, как я могу сказать имя текущего файла, который я редактирую?
Я знаю, что могу открыть несколько файлов с vimпомощью чего-то вроде vim 2011-12*.log, но как я могу переключаться между файлами и закрывать файлы по одному? Кроме того, как я могу сказать имя текущего файла, который я редактирую?
Ответы:
Прежде всего, в vim вы можете ввести :(двоеточие), а затем help help, аля :helpсписок тем самопомощи, включая краткое руководство. В списке тем наведите курсор на интересующую тему, а затем нажмите, ctrl]и эта тема будет открыта.
Хорошее место для вас будет тема
|usr_07.txt| Editing more than one file
Хорошо, к вашему ответу.
После запуска vim со списком файлов, вы можете перейти к следующему файлу, введя :nextили :nдля краткости.
:wnextсокращение для записи текущих изменений, а затем перейти к следующему файлу.
Там тоже аналог :previous, :wpreviousи :Next. (Обратите внимание, что :pэто сокращение для :print. Сокращение для :previousэто :prevили :N.)
Чтобы увидеть, где вы находитесь в списке файлов, введите, :argsи файл, который в данный момент редактируется, появится в [](скобках).
Пример:
vim foo.txt bar.txt
:args
результат:
[foo.txt] bar.txt
Вы можете открыть другой файл, когда vim открыт, :tabe filenameи переключиться на другой файл, который вы набираете, :tabnили :tabpдля следующего и предыдущего соответственно.
Сочетания клавиш gT и gt также можно использовать для переключения вкладок, когда вы не находитесь в режиме редактирования (т.е. не в режимах вставки, замены и т. Д.). В некоторых системах Ctrl+ Alt+ Page Upи Ctrl+ Alt+ Page Downтакже допускается переключение табуляции, но это не всегда работает (например, оно не будет работать в терминале OS X «из коробки»).
И вы можете увидеть имя файла в верхней части приложения VIM.
vim -p file1 file2
:argadd filenameи затем :nextк нему. Кроме того, вы можете использовать, :argdel filenameчтобы удалить один из файлов в редактировании.
Команды для переключения между буферами:
:bf # Go to first file.
:bl # Go to last file
:bn # Go to next file.
:bp # Go to previous file.
:bw # Close file.
:help buffer найти больше информации
Чтобы узнать имя файла используйте Ctrl+ G, :fileили:f
:bwзакрыть файл хаха. Не забудьте прочитать справку, :bwгде говорится, что вы должны использовать ее, только если знаете, что делаете. Это не имеет большого значения, но если вы не хотите стереть все отметки и информацию о файле, лучше использовать :bdили :qкак обычный человек
:bwслучай, если вам интересно: vi.stackexchange.com/questions/2212/…
Другой вариант, помимо ответов, состоит в том, чтобы разделить окно:
:sp
:vsp
:vspдля вертикального разделения. Затем используйте Ctrl+W <ARROW_KEYS>для перемещения по панелям.
:vsвместо:vsp
Ctrl+W, vдля вертикального разделения и Ctrl+W, sдля горизонтального разделения.
CTRL+Wтечение многих лет, и в последнее время я много редактирую VI на веб-страницах. Каждый раз, когда я набираю команду, даже не задумываясь и ... вау ... вкладка браузера пропала! Я постоянно забываю. Мне действительно нужно выучить новый ярлык.
Я задал похожий вопрос в суперпользователе,
"Как скопировать и вставить между различными окнами bash и файлами, открытыми с помощью VI?"
Ответ на мой вопрос был, что вы не можете, но вы можете открыть два файла в одном окне bash, используя :splitкоманду VIM :
$ vim file1, откройте второй файл в VIM с помощью :split file2команды.$ vim -o file1 file2из Bash.:qзакрывается и :q!принудительно завершается.Мой bash черно-белый, поэтому имя файла каждого экрана оформляется в виде перевернутой «выбранной» строки с указанным там именем файла.
Woot!
Я считаю, что наиболее удобный способ редактирования нескольких файлов - использование вкладок. Вы можете открыть несколько файлов на отдельных вкладках через командную строку, например, так:
vim -p file1.txt file2.txt
Или, если у вас уже открыт vim, вы можете открыть новый файл на новой вкладке, например:
:tabe file2.txt
Открыв вкладки, используйте gtдля просмотра следующей вкладки и gTпросмотра предыдущей вкладки.
Вы также можете перейти к первой вкладке с помощью 1gt, второй вкладке с помощью 2gtи т. Д.
Вы можете закрыть вкладки, используя :tabc
Наконец, вы можете переместить текущую вкладку в ту nпозицию, :ntabmгде nлюбое число больше или равно 0.
argadd a/b c/d e/f
argadd ...добавит все файлы в args, а также в :ls/ :buffersи позволит вам редактировать их.
Смотрите :h arglsit& :h argedit&:h argsd
Кроме того, вы можете выполнять определенные действия только с аргументами :argdo ..., и вы можете начать заново с аргументами, выполнив :argsd*.
Есть много способов сделать это. Первый, возможно, менее удобный, это вызов vimфайлов, которые вы хотите отредактировать - создать:
vim first_file second_file ...
Он вызывает два файла в двух буферах. Чтобы переключиться из одного файла в другой, используйте :nи :N. Чтобы вывести список файлов, которые вы редактируете, :argsсделаем работу. :help bufferпоможет вам больше в этом.
Это должно ответить на ваш вопрос. Но вот больше информации:
Есть способ отредактировать ваши файлы более удобным способом, разделив экран консоли с помощью vim . Для этого откройте два кадра с помощью :split( :sp) или :vsplit( :vs) при использовании vim . Затем перемещайтесь в этих кадрах, используя комбинацию Ctrl+ W> Ctrl+ W. Вы также можете использовать Ctrl+ W+ стрелку или клавишу ( H, J, Kили L) , соответствующую следующий кадр. Когда это будет сделано, отредактируйте нужный файл :e file_name. :help opening-windowпоможет вам больше в этом.
Теперь, если вы хотите увидеть различия между файлами, используйте -dаргумент или вызовите программу vimdiff (она одинакова) с соответствующими файлами. :help diffпоможет вам больше в этом.
vim -d first_file second_file ...
Пожалуйста, дайте мне знать, если у вас есть проблемы.
Мне нравится использовать раздельные окна - как горизонтальные, так и вертикальные - для редактирования нескольких файлов.
Я использую tmux для более легкого управления этими окнами
https://tmux.github.io/ «Что такое терминальный мультиплексор? Он позволяет легко переключаться между несколькими программами в одном терминале, отсоединять их (они продолжают работать в фоновом режиме) и подключать их к другому терминалу. намного больше. См. руководство. "
Пример: просмотр файлов или выполнение тестов справа, редактирование тестовых и исходных файлов слева: 
:e #(filename) переключаться между двумя открытыми файлами
:p для предыдущего файла
:n для следующего файла