Intereting Posts
Поиск файлов, созданных определенным пользователем «Файловая система только для чтения» на общем ресурсе NFS, разрешениях, файлах монтирования и экспорта выглядит нормально Где можно установить PATH в Thunderbird в Ubuntu 10.04 Будет ли изменение имени хоста в OpenBSD повлиять на установленные пакеты? Может запускать службу С помощью скрипта init.d, однако запуск службы <SERVICE_NAME> не работает Поддерживает ли okular / poppler следующие перекрестные ссылки внутри документа в файлах PDF? Не удается смонтировать SD-карту после жесткого отключения Rsync over ssh tunnel – использование сервера шлюза MATE отключает обе мыши, чтобы действовать как средняя мышь postfix для проверки всех получателей Rsync ssh include & exclude Gnome: как отключить или включить контекстное меню «добавить в избранное» Сохранять доступность системы в случае замораживания Использование шаблона в пути к каталогу Использование ядра vanilla + busybox Linux, как проверить, зашифрован ли раздел?

Как редактировать несколько файлов в VIM?

Я знаю, что я могу открыть несколько файлов с помощью vim , выполнив что-то вроде vim 2011-12*.log , но как я могу переключаться между файлами и закрывать файлы по одному? Кроме того, как я могу указать имя файла текущего файла, который я редактирую?

Прежде всего, в vim вы можете ввести : (двоеточие), а затем help help , ala :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.

Другим вариантом, помимо ответов, является разделение окна на:

 :sp :vsp 

:vsp для вертикального разделения. Затем используйте Ctrl+W <ARROW_KEYS> для перемещения в стеклах.

Команды для переключения между буферами:

 :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

Я задал подобный вопрос у суперпользователя,

«Как копировать и вставлять между различными окнами bash и файлами, открытыми с помощью VI?»

Ответ на мой вопрос заключался в том, что вы не можете, но вы можете открыть два файла в одном окне bash с помощью команды VIM :split :

  1. Откройте файл с файлом $ vim file1 , откройте второй файл в VIM, используя команду :split file2 .
  2. Или, используйте $ vim -o file1 file2 из bash.
  3. Переключение между файлами – включение активного файла – в VIM с помощью ctrlw ctrlw .
  4. Примерная операция – это копирование (или yank) в file1 y y , switch (3), затем вставка (или добавление) p- содержимого в файл2.
  5. Все остальное нормально, когда любое окно активно, таким образом :q завершает работу и :q! принудительное завершение.

Мой баш черный и белый, поэтому имя файла каждого экрана оформляется как обратная «выбранная» строка с именем файла, указанным там.

Woot!

 :n -> Move to next file :N -> Move to previous file 

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

 vim -p file1.txt file2.txt 

Если у вас уже открыт vim, вы можете открыть новый файл на новой вкладке, например:

 :tabe file2.txt 

После открытия вкладок используйте gt чтобы просмотреть следующую вкладку и gT чтобы просмотреть предыдущую вкладку.

Вы также можете перейти к первой вкладке с 1gt , второй вкладкой с 2gt и т. Д.

Вы можете закрыть вкладки, используя :tabc

Наконец, вы можете переместить текущую вкладку в n ю позицию с помощью :ntabm где n – любое число, большее или равное 0 .

Есть много способов сделать это. Первым, возможно, менее удобным, является вызов 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 для следующего файла