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

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


Прежде всего, в vim вы можете ввести : (двоеточие), а затем help help , ala : help для получения списка тем самопомощи, включая краткое руководство. В списке тем наведите курсор на интересующую тему и нажмите ctrl ] , и эта тема откроется.

Хорошим местом для начала будет тема

  | usr_07.txt |  Редактирование нескольких файлов  

Итак, приступим к вашему ответу.

После запуска vim со списком файлов вы можете перейти к следующему файлу введя : next или для краткости : n . : wnext — это сокращение для записи текущих изменений и затем перехода к следующему файлу.

Также есть аналогичный : предыдущий , : 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 вне box ‘).

И вы можете увидеть имя файла в верхней части приложения vim.

4


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

 : bf # Перейти к первому  file.:bl # Перейти к последнему файлу: bn # Перейти к следующему файлу .:bp # Перейти к предыдущему файлу .:bw # Закрыть файл.  

: буфер справки , чтобы найти дополнительную информацию

Чтобы узнать имя файла, используйте Ctrl + G , : file или :f

2


Другой вариант, помимо данных ответов, — разделить окно с помощью:

 : sp: vsp  

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

3


 : n -> Перейти к следующему файлу: N -> Перейти к предыдущему файлу  


Я задал аналогичный вопрос суперпользователю,

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

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

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

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

Woot!

1


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

  vim -p file1.txt file2.txt  

Или, если у вас уже открыт vim, вы можете открыть новый файл на новой вкладке следующим образом:

 : tabe file2.txt  

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

Вы также можете перейти на первую вкладку с помощью 1gt , на вторую вкладку с помощью 2gt и т. д.

Вы можно закрывать вкладки с помощью :tabc

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


  argadd a/bc/de/f   

argadd ... добавит все файлы в args, а также в : ls /: буферы и позволяют редактировать их.


См. : h arglsit & : h argedit & : h argsd


Кроме того, вы можете выполнять определенные действия только с аргументами с : argdo ... , и вы можете начать заново со своими аргументами, выполнив : argsd * .


Есть много способов сделать это. Первый, возможно, менее удобный, — это вызвать vim с файлами, которые вы хотите редактировать — create:

  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 имя_файла . : help open-window поможет вам больше в этом.

Теперь, если вы хотите увидеть различия между файлами, используйте -d или вызвать программу vimdiff (она такая же) с соответствующими файлами. : help diff поможет вам в этом подробнее.

  vim -d first_file second_file ...  

Сообщите мне, если у вас возникнут проблемы.


Мне нравится использовать разделенные окна — как горизонтальные, так и вертикальные — для редактирования нескольких файлов.

Я использую tmux для более простого управления этими окнами

https://tmux.github.io/»Что такое терминальный мультиплексор? Он позволяет легко переключаться между несколькими программами в одном терминале, отсоединять их (они продолжают работать в фоновом режиме) и повторно подключать их к другому терминалу . И многое другое. См. Руководство. «

Пример: просмотр файлов или выполнение тестов справа, редактирование тестовых и исходных файлов слева:


: e # (имя файла) для переключения между двумя открытыми файлами

: p для предыдущего файла

: n для следующего файла

1



Как эффективно работать с несколькими файлами в Vim

Я начал использовать Vim для разработки сценариев Perl и начинаю находить его очень мощным.

Одно дело. Мне нравится иметь возможность открывать несколько файлов одновременно с помощью:

  vi main.pl maintenance.pl  

, а затем переключаться между ними с помощью:

 : n: prev  

и посмотреть, какой файл открыт, с помощью:

: args

И чтобы добавить файл, я могу сказать:

 : n test.  pl  

который, как я ожидаю, затем будет добавлен в мой список файлов, но вместо этого он стирает мой текущий список файлов, и когда я набираю : args У меня открыт только test.pl .

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


Почему бы не использовать вкладки (введенные в Vim 7)? Вы можете переключаться между вкладками с помощью : tabn и : tabp , с помощью : tabe вы можете добавить новую вкладку; а с обычным : q или : wq вы закрываете вкладку. Если вы сопоставляете : tabn и : tabp к вашим клавишам F7 / F8 , вы можете легко переключаться между файлами.

Если есть не так много файлов или у вас нет Vim 7, вы также можете разделить экран на несколько файлов: : sp . Затем вы можете переключаться между разделенными экранами с помощью Ctrl + W , а затем клавиши со стрелкой в ​​направлении, в котором вы хотите двигаться (или вместо клавиш со стрелками, w для следующего и W для предыдущего разделенного экрана)


Листинг

Чтобы увидеть список текущих буферов, я использую:

 : ls  

Открытие

Чтобы открыть новый файл, я использую

 : e ../myFile.pl 

с расширенным завершением табуляции (поместите set wildmenu в свой .vimrc ).

Примечание: вы также можете использовать : find , который будет искать для вас набор путей, но сначала вам нужно настроить эти пути.


Переключение

Для переключения между всеми открытыми файлами я использую

 : b myfile  

с расширенным завершением табуляции (по-прежнему set wildmenu ).

Примечание: : b # выбирает последний посещенный файл, поэтому вы можно использовать его для быстрого переключения между двумя f iles.


Использование окон

Ctrl-W s и Ctrl-W v , чтобы разделить текущее окно по горизонтали и вертикали. Вы также можете использовать : split и : vertical split (: sp и : vs )

Ctrl-W w для переключения между открытыми окнами и Ctrl-W h (или j или k или l ) для навигации по открытым окнам.

Ctrl-W c , чтобы закрыть текущее окно, и Ctrl-W o , чтобы закрыть все окна, кроме текущего.

Запуск vim с помощью Флаг -o или -O открывает каждый файл в отдельном разделе.


Со всем этим я вкладки в Vim не нужны, и мои пальцы находят мои буферы, а не глаза.

Примечание: если вы хотите, чтобы все файлы передавались в один и тот же экземпляр Vim, запустите Vim с помощью - опция удаленного молчания .

10


:ls 

для списка открытых буферов

  • : bp предыдущий буфер
  • : bn следующий буфер
  • : bn ( n число) перейти в n-й буфер
  • : b с клавишей табуляции, обеспечивающей автозаполнение (круто !!)

В некоторых версиях vim, bn и bp на самом деле являются bnext и bprevious соответственно. В этом случае полезно автозаполнение табуляции.

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

Кроме того, вы можете сохранять сеансы vim

 : mksession!  ~/today.ses  

Приведенная выше команда сохраняет текущие буферы и настройки открытых файлов в ~/today.ses . Вы можете загрузить этот сеанс с помощью

  vim -S ~/today.ses  

Нет проблем с запоминанием того, где вы остановились вчера . 😉

3


Чтобы добавить в список args :

 : argadd  

Чтобы удалить из args list:

 : argdelete  

В вашем примере вы можете использовать : argedit test.pl, чтобы добавить test.pl в список args и отредактировать файл за один шаг.

: help args дает более подробную информацию и расширенное использование

1


Я использую команды буфера — : bn (следующий буфер), : bp (предыдущий буфер) : buffers (список открытых буферов) :b (открытый буфер n) : bd (удалить буфер). : e просто откроется в новом буфере.

0


Я думаю, вы могли использовать неправильную команду для просмотра списка открытых вами файлов.

Попробуйте выполнить : ls , чтобы просмотреть список открытых вами файлов, и вы увидите:

  1% a "./checkin.pl" line 1 2 # ". /grabakamailogs.pl "строка 1 3" ./grabwmlogs.pl "строка 0 и т. д.  

Затем вы можете перемещаться по файлам, ссылаясь на них по перечисленным номерам, например: 3b

или вы можете разделить экран, введя номер, но используя sb вместо просто b.

В качестве стороннего символа% относится к текущему видимому файлу, а # относится к в альтернативный файл.

Вы можете легко переключаться между этими двумя файлами, нажимая Ctrl Shift 6

Изменить: как и : ls , вы можете использовать : reg , чтобы увидеть текущее содержимое ваших регистров, включая регистры 0-9, которые содержат то, что вы удалили. Это особенно полезно, если вы хотите повторно использовать ранее удаленный текст.

1


Vim (но не исходный Vi!) имеет вкладки, которые, как я считаю (во многих контекстах) лучше буферов. Вы можете сказать : tabe [filename] , чтобы открыть файл в новой вкладке. Переключение между вкладками осуществляется нажатием на вкладку или комбинациями клавиш [ n ] gt и gT . В графическом Vim есть даже графические вкладки.

2


Здесь много ответов! То, что я использую, не изобретая велосипед — самые известные плагины (которые не скоро умрут и используются многими людьми) должны быть сверхбыстрыми и увлекательными.

  • ctrlpvim/ctrlp.vim — для поиска файла по имени нечеткий поиск по его местоположению или только его имени.
  • jlanzarotta/bufexplorer — для просмотра открытых буферов (когда вы не помните, сколько файлов вы открывали и изменяли в последнее время, и не помните, где они находятся, возможно, потому, что вы искали их с помощью Ag)
  • rking/ag.vim для поиска файлов относительно gitignore
  • scrooloose/nerdtree , чтобы увидеть структуру каталогов, поиск, добавление/удаление /изменить файлы

EDIT: Недавно я использовал dyng/ctrlsf.vim для поиска с контекстным просмотр (например, Sublime search), и я переключил движок с ag на ripgrep . Производительность выдающаяся.

EDIT2: вместе с CtrlSF вы можете использовать mg979/vim-visual-multi , внесите изменения сразу в несколько файлов, а затем сохраните их за один раз.

4


Такие вещи, как : e и : badd , будут принимать только ОДИН аргумент, поэтому следующее не удастся

 : e foo.txt bar.txt: e/foo/bar/*.txt:badd/foo/bar/*  

Если вы хотите добавить несколько файлов из vim, используйте arga[ddestive

 : arga foo.txt  bar.txt: arga/foo/bar/*.txt:argadd/foo/bar/*  


Некоторые ответы в этом потоке предлагают использовать вкладки, а другие предлагают использовать буфер для выполнения того же самого. Вкладки и буферы разные. Я настоятельно рекомендую вам прочитать эту статью «Безумие Vim Tab — Буферы против вкладок».

Вот хорошее резюме, которое я извлек из статьи:

Резюме:

  • Буфер — это текст файла в памяти.
  • Окно — это область просмотра в буфере.
  • Вкладка — это набор окон.

1


При использовании нескольких файлов в vim я в основном использую эти команды (с открытыми ~ 350 файлами):

  • : b (переход к буферу)
  • : bw (очистка буфера, удаление буфера)
  • : e (редактировать, открывать новый буфер>
  • pltags — разрешить прыжки к определениям подпрограмм/методов

2


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

Чтобы изменить все буферы на вкладку .

 : tab sball  

откроет все буферы для просмотра вкладок. Затем мы можем использовать любые команды, связанные с вкладками

  gt или: tabn "перейти к следующей вкладке gT или: tabp или: tabN" перейти к предыдущей вкладке  

подробности в : help tab-page-commands .

Мы можем указать vim открывать в виде вкладки несколько файлов с помощью vim -p файл1 файл2 . alias vim = 'vim -p' будет полезен.
То же самое может быть достигнуто с помощью следующей автокоманды в ~/. vimrc

  au VimEnter * if! & diff |  вкладка все |  tabfirst |  endif  

В любом случае, чтобы ответить на вопрос: Чтобы добавить в список аргументов: файл arga ,

Чтобы удалить из списка аргументов: шаблон argd

Подробнее в : help arglist


Вы можете использовать глобальные метки Vim.

Таким образом, вы можете быстро переключаться между файлами и даже в отмеченное место в файле. Кроме того, ключевые команды короткие: 'C переводит меня к коду, с которым я работаю, ' T переводит меня к модульному тесту. работает с.

Когда вы меняете места, сброс меток тоже происходит быстро: mC отмечает новое место кода, mT отмечает новое тестовое пятно.


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

  "Перемещение между вкладками  ИЛИ buffersnnoremap L: вызов MyNext ()  nnoremap H: вызов MyPrev ()  «MyNext () и MyPrev (): перемещение между вкладками ИЛИ функция буферов!  MyNext () если существует ('* tabpagenr') && tabpagenr ('$')! = 1 "Поддержка вкладок && вкладки открываются нормально gt else" Нет поддержки вкладок или вкладки не открыты выполнить ": bnext" endifendfunction!  MyPrev (), если существует ('* tabpagenr') && tabpagenr ('$')! = '1' "Поддержка вкладок && вкладки открываются нормально gT else" Нет поддержки вкладок или вкладки не открыты выполнить ": bprev" endifendfunction  

Это затирает существующие сопоставления для H и L , но делает переключение между файлами чрезвычайно быстрым и простым. Просто нажмите H для следующего и L для предыдущего; используете ли вы вкладки или буферы, вы получите желаемые результаты.

2


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

0


Если используется только встроенный vim команды , лучшая из тех, что я когда-либо видел для переключения между несколькими буферами, это:

  nnoremap  f: set nomore : ls : установить больше : b   

Он идеально сочетает в себе как : ls , так и : b — перечисление всех открытых буферов и ожидание, пока вы введете команду для переключения буфера.

Указанное выше сопоставление в vimrc, как только вы наберете f ,

  • Отображаются все открытые буферы
  • Вы можете:
    • Введите 23 , чтобы перейти к буферу 23,
    • Введите # , чтобы перейти к альтернативному буферу/MRU,
    • Введите частичное имя файла, затем введите или для автозаполнения,
    • Или просто или , чтобы остаться в текущем буфере

Снимок вывода для указанного выше сопоставления клавиш:

 :  set nomore |: ls |: set more 1 h "script.py" строка 1 2 #h + "file1.txt" строка 6 - '#' для альтернативного буфера 3% a "README.md" строка 17 - '  % 'для текущего буфера 4 "file3.txt" строка 0 - строка 0 для не переключена на 5 + "/etc/passwd" строка 42 -' + 'для измененного: b'  здесь ' 

На снимке выше:

  • Второй столбец: % a для текущего, h для скрытого, # для предыдущего, пустое для не было переключено на.
  • Третий столбец: + для измененных.

Кроме того, я настоятельно рекомендую установить скрытый . См. : help 'hidden' .

4


Я использую следующее, это дает вам множество функций, которые вы ожидаете иметь в других редакторах, таких как Sublime Text/Textmate

  1. Используйте буферы, а не «страницы вкладок». Буферы — это та же концепция, что и вкладки почти во всех других редакторах.
  2. Если вам нужен такой же вид вкладок, вы можете использовать плагин vim-airlines со следующей настройкой в ​​вашем .vimrc : let g: Airlines # extensions # tabline # enabled = 1 . Это автоматически отображает все буферы в виде заголовков вкладок, если у вас нет открытых страниц вкладок.
  3. Используйте vim-unimpaired Тима Поупа, который дает [ b и ] b для перехода к предыдущему/следующему буферу соответственно (плюс целый ряд других вкусностей)
  4. Установите wildmenu в свой . vimrc тогда, когда вы наберете : b + Tab для буфера, вы получите список возможных буферов, которые вы можете использовать стрелки влево/вправо для прокрутки
  5. Используйте плагин vim-obsession Тима Поупа для хранения сессий, которые хорошо работают с авиакомпанией (у меня было много проблем с сессиями и плагинами)
  6. Используйте плагин vim-уксуса Тима Поупа. Это работает со встроенным : Explore , но значительно упрощает работу. Вы просто набираете - , чтобы открыть проводник, что является тем же ключом, что и переход по каталогу в проводнике. Ускоряет навигацию (однако с fzf я редко использую это)
  7. fzf (который можно установить как плагин vim) также является действительно мощным средством нечеткого поиска, которое можно использовать для поиска файлов (и буферов). тоже). fzf также очень хорошо работает с fd (более быстрая версия find).
  8. Используйте Ripgrep с vim-ripgrep для поиска по базе кода, а затем вы можете использовать : cdo в результатах для поиска и замены

1


Мой способ эффективно работать с несколькими файлами — это использовать tmux.

Он позволяет разделять окна по вертикали и горизонтали, как в:

У меня это работает как на Mac, так и на Linux, и Я считаю, что это лучше, чем встроенный механизм переключения оконных панелей, который предоставляется (на Mac). Я считаю переключение проще, и только с tmux я смог получить «новую страницу в том же текущем каталоге», работающую на моем Mac (несмотря на то, что, похоже, есть варианты для открытия новых панелей в том же каталоге), что является на удивление критическая штука. Мгновенное создание новой панели в текущем месте очень полезно. Метод, который создает новые панели с одинаковыми комбинациями клавиш для обеих ОС, критически важен для меня и является бонусом для всех для будущей личной совместимости. Помимо нескольких панелей tmux, я также пробовал использовать несколько вкладок, например и несколько новых окон, например и в конечном итоге я обнаружил, что несколько панелей tmux являются для меня наиболее полезными. Я очень «нагляден» и люблю держать различные контексты прямо перед собой, соединенные вместе как панели.

tmux также поддерживает горизонтальные и вертикальные панели, чего не было в более старом screen (хотя iterm2 в Mac, похоже, поддерживает это, но, опять же, текущая настройка каталога не поддерживает) т работает у меня). tmux 1.8

3


В мой и многие другие пользователи vim, лучший вариант —

  • Открыть файл с помощью

: e имя_файла. extension

А затем просто Ctrl + 6, чтобы перейти к последнему буферу. Или вы всегда можете нажать

: ls, чтобы вывести список буфера, а затем изменить буфер, используя b, за которым следует номер буфера.

  • Мы делаем вертикальное или горизонтальное разделение, используя

: vsp для вертикального разделения

: sp для горизонтальное разделение

А затем , чтобы изменить рабочее разделение.

Конечно, вы можете редактировать любой файл в любом количестве разделов.

1


Я часто использую командную строку и git, поэтому в моем bashrc есть этот псевдоним:

  alias gvim = "gvim --servername  $ (git rev-parse --show-toplevel || echo 'default') --remote-tab"  

Это откроет каждый новый файл на новой вкладке в существующем окне и создаст одно окно для каждого репозитория git. Итак, если вы откроете два файла из репозитория A и 3 файла из репозитория B, вы получите два окна, одно для репо A с двумя вкладками и одно для репо B с тремя вкладками.

Если файл, который вы открываете, не содержится в репозитории git, он будет перейти в окно по умолчанию.

Для перехода между вкладками я использую следующие сопоставления:

  nmap : tabprevious  nmap : tabnext   

Чтобы открыть сразу несколько файлов, вы должны объединить это с одним из других решений.

0


Я использую несколько буферов, которые скрыты в моем файле ~/.vimrc .

Скрипт проводника мини-буфера тоже хорош, чтобы получить хороший компактный список ваших буферов. Затем : b1 или : b2 …, чтобы перейти к соответствующему буферу или использовать проводник мини-буфера и перейти по буферам с помощью табуляции.


попробуйте следующие карты для удобства редактирования несколько файлов

«разделить окна

nmap sh: leftabove vnew

nmap sl: rightbelow vnew

nmap sk: leftabove new

nmap sj: справа под новым

«перемещение

nmap j

nmap k

nmap l

nmap h


Я сделал очень простое видео, показывающее рабочий процесс, который я использую. В основном я использую плагин Ctrl-P Vim и сопоставил навигацию по буферу с клавишей Enter.

Таким образом, я могу нажать Enter в обычном режиме, посмотреть список открытых файлов (которые отображается в небольшом новом окне в нижней части экрана), выберите файл, который я хочу отредактировать, и снова нажмите Enter. Чтобы быстро найти несколько открытых файлов, просто введите часть имени файла, выберите файл и нажмите Enter.

У меня не так много файлов, открытых в видео, но это становится невероятно полезным, когда у вас их становится много.

Поскольку плагин сортирует буферы, используя порядок MRU, вы можете просто дважды нажать Enter и перейти к самому последнему файлу, который вы редактировали.

После установки плагина единственная необходимая конфигурация:

  nmap : CtrlPBuffer   

Конечно, вы можете сопоставить его с другим ключом, но я считаю, что сопоставление для ввода очень удобно.


Я бы предложил использовать плагин

NERDtree

Вот Ссылка на github с инструкциями.

Nerdtree

Я использую vim-plug в качестве диспетчера плагинов, но вы также можете использовать Vundle.

vim-plug

Vu ndle


Когда я начал использовать VIM, я не понимал, что вкладки предполагалось использовать как разные макеты окон, а буфер служит для редактирования/переключения нескольких файлов между собой. На самом деле в начале вкладок даже не было до версии 7.0, и я просто открыл один VIM внутри вкладки терминала (в данный момент я использовал gnome-terminal) и переключался между вкладками с помощью alt + чисел, поскольку я думал, используя такие команды, как : buffers,: bn и: bp были для меня непосильны. Когда был выпущен VIM 7.0, я обнаружил, что легче управлять большим количеством файлов и переключаться на него, но недавно я просто понял, что буферы всегда должны быть подходящим вариантом, если только одна вещь: вам нужно настроить его, чтобы он работал правильно.

Итак, я попробовал vim-Airlines и включил визуальную панель буфера в виде вкладок, но с моим iTerm2 возникла проблема с графикой, поэтому я попробовал несколько других, и похоже, что MBE работает лучшее для меня. Я также установил shift + h/l как ярлыки, так как исходные (переход к началу/хвосту текущей страницы) мне не очень полезны.

map : bprev
map : bnext

Кажется, еще проще чем gt и gT, и: e тоже проще, чем: tabnew. Я считаю: bd не так удобен, как: q (хотя у MBE есть проблемы), но я могу жить со всеми файлами в буфере, я думаю.


В большинстве ответов в этой теме используются простые команды vim, которые это конечно нормально, но я подумал, что дам исчерпывающий ответ, используя комбинацию плагинов и функций, которые я считаю особенно полезными (по крайней мере, некоторые из этих советов взяты из советов по навигации по файлам Гэри Бернхардта):

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

      nnoremap     
  2. Для быстрого перемещения по проекту ответом будет решение с нечетким соответствием, такое как CtrlP. Я привязываю его к a для быстрого доступа.

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

  4. Если я хочу просмотреть файловую систему, я бы использовал командную строку или внешнюю утилиту (Quicklsilver, Afred и т. Д.), Но чтобы посмотрите на текущую структуру проекта NERD Tree — это классика. Не используйте его вместо 2 в качестве основного метода поиска файлов. Это действительно замедлит вас. Я использую привязку ff.

Этого должно быть достаточно для поиска и открытия файлов. Оттуда, конечно, используйте горизонтальное и вертикальное разделение. Что касается разбиения, я считаю эти функции особенно полезными:

  1. Открывайте новые разбиения в небольших областях, когда недостаточно места, и расширяйте их при навигации. См. Здесь комментарии о том, что именно они делают:

      set winwidth = 84set winheight = 5set winminheight = 5set winheight = 999nnoremap  v: 111vs  nnoremap   s: справа под разделением  установить разделение вправо  
  2. Легко переходить от разделения к разделению:

      nnoremap    nnoremap    nnoremap    nnoremap   


если вы используете OSX и хотите иметь возможность нажимать на свои вкладки, используйте MouseTerm и SIMBL (взяты отсюда). Также ознакомьтесь с этим связанным обсуждением.


Вы можете быть абсолютным сумасшедшим и использовать псевдоним vim для vim -p , добавив в свой .bashrc :

alias vim = "vim -p"

Это приведет к открытию несколько файлов из оболочки во вкладках, без необходимости впоследствии вызывать : tab ball из vim.

Оцените статью
clickpad.ru
Добавить комментарий