Я знаю, что могу открыть несколько файлов с vim
помощью чего-то вроде vim 2011-12*.log
, но как я могу переключаться между файлами и закрывать файлы по одному? Кроме того, как я могу сказать имя текущего файла, который я редактирую?
169
Ответы:
Прежде всего, в vim вы можете ввести :(двоеточие), а затем help
help
, аля:help
список тем самопомощи, включая краткое руководство. В списке тем наведите курсор на интересующую тему, а затем нажмите, ctrl]и эта тема будет открыта.Хорошее место для вас будет тема
Хорошо, к вашему ответу.
После запуска vim со списком файлов, вы можете перейти к следующему файлу, введя
:next
или:n
для краткости.:wnext
сокращение для записи текущих изменений, а затем перейти к следующему файлу.Там тоже аналог
:previous
,:wprevious
и:Next
. (Обратите внимание, что:p
это сокращение для:print
. Сокращение для:previous
это:prev
или:N
.)Чтобы увидеть, где вы находитесь в списке файлов, введите,
:args
и файл, который в данный момент редактируется, появится в[]
(скобках).Пример:
результат:
источник
Вы можете открыть другой файл, когда 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
чтобы удалить один из файлов в редактировании.Команды для переключения между буферами:
:help buffer
найти больше информацииЧтобы узнать имя файла используйте Ctrl+ G,
:file
или:f
источник
:bw
закрыть файл хаха. Не забудьте прочитать справку,:bw
где говорится, что вы должны использовать ее, только если знаете, что делаете. Это не имеет большого значения, но если вы не хотите стереть все отметки и информацию о файле, лучше использовать:bd
или:q
как обычный человек:bw
случай, если вам интересно: vi.stackexchange.com/questions/2212/…Другой вариант, помимо ответов, состоит в том, чтобы разделить окно:
: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, вы можете открыть новый файл на новой вкладке, например:
Открыв вкладки, используйте
gt
для просмотра следующей вкладки иgT
просмотра предыдущей вкладки.Вы также можете перейти к первой вкладке с помощью
1gt
, второй вкладке с помощью2gt
и т. Д.Вы можете закрыть вкладки, используя
:tabc
Наконец, вы можете переместить текущую вкладку в ту
n
позицию,:ntabm
гдеn
любое число больше или равно0
.источник
argadd ...
добавит все файлы в args, а также в:ls
/:buffers
и позволит вам редактировать их.Смотрите
:h arglsit
&:h argedit
&:h argsd
Кроме того, вы можете выполнять определенные действия только с аргументами
:argdo ...
, и вы можете начать заново с аргументами, выполнив:argsd*
.источник
Есть много способов сделать это. Первый, возможно, менее удобный, это вызов
vim
файлов, которые вы хотите отредактировать - создать:Он вызывает два файла в двух буферах. Чтобы переключиться из одного файла в другой, используйте
: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
поможет вам больше в этом.Пожалуйста, дайте мне знать, если у вас есть проблемы.
источник
Мне нравится использовать раздельные окна - как горизонтальные, так и вертикальные - для редактирования нескольких файлов.
Я использую tmux для более легкого управления этими окнами
https://tmux.github.io/ «Что такое терминальный мультиплексор? Он позволяет легко переключаться между несколькими программами в одном терминале, отсоединять их (они продолжают работать в фоновом режиме) и подключать их к другому терминалу. намного больше. См. руководство. "
Пример: просмотр файлов или выполнение тестов справа, редактирование тестовых и исходных файлов слева:
источник
:e #(filename)
переключаться между двумя открытыми файлами:p
для предыдущего файла:n
для следующего файлаисточник