Как организовать буферы, окна и вкладки Vim при работе с большим количеством файлов

Я использовал VIM всю свою жизнь, но в последнее время я немного устал от него, потому что я теряюсь в буферах, окнах и вкладках при одновременной работе с 20 файлами или около того в большом проекте (с 500 КБ LOC и сотнями файлов).

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

Какие есть проверенные и простые способы контролировать такое поведение?


person name    schedule 30.09.2010    source источник


Ответы (5)


  • Используйте :hide, чтобы избавиться от всех окон, если они вам действительно не нужны.

  • Я не уверен, почему теги создают для вас новое окно, CTRL+] следует повторно использовать текущее окно.

  • nnoremap + 4<C-W>+ и nnoremap - 4<C-W>- значительно упрощают изменение размеров окон, наряду со стандартными <C-W>_ и <C-W>|.

  • Приобретите 22-дюймовый монитор (минимум) и используйте :vsplit для отображения файлов рядом. Я считаю, что это даже важнее, чем иметь два монитора меньшего размера.

  • Используйте <C-W>L, <C-W>H и т. д. для перемещения окон. Не забудьте :tab sp, чтобы открыть текущий файл (или новый) в новой вкладке.

  • :map <LEFT> <C-W>h и :map <RIGHT> <C-W>l и т. д. значительно упрощают перемещение между окнами. :map <C-LEFT> :tabprev<CR> и :map <C-RIGHT> :tabnext<CR> значительно упрощают перемещение между вкладками.

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

person too much php    schedule 30.09.2010
comment
К сожалению, здесь нет ничего нового, чего бы я не знал. Я предполагаю, что проблема в том, что мой проект действительно огромен, и одновременная работа с таким количеством файлов и вещей сама по себе делает его проблемой, а не проблемой vim. - person name; 04.10.2010

Недавно я протестировал Eclim http://eclim.org/ для друга. По сути, он позволяет запускать Eclipse в автономном режиме, используя vim для редактирования и так далее. Расширение позволяет Vim использовать все сильные стороны обоих миров, добавляя, например, дерево проектов Eclipse в ваш любимый редактор!

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

О, я также должен упомянуть, что есть несколько настроек Eclim. У вас может быть безголовый Eclipse с vim в качестве основного интерфейса (как я впервые упомянул), у вас может быть headless Eclipse и Vim, чтобы вы могли легко переключаться туда и обратно (не меньше в том же проекте), или вы можете иметь Vim интегрирован в сам Eclipse.

person Sarah    schedule 30.09.2010
comment
это выглядит действительно интересно, и я обязательно должен попробовать. Благодарю. - person name; 04.10.2010

Запустите несколько vims. Я использую «консоль» на своей машине с Linux. Это позволяет мне открывать множество сеансов терминала Linux с вкладками в одном окне. Я могу дважды щелкнуть вкладки, чтобы назвать их, например. «модели», «представления», «контроллеры» и т. д. В каждом из этих терминалов Linux с вкладками у меня будет запущен процесс vim, который обычно открывает 2 или 3 файла одновременно. Другой вариант — найти IDE с режимом Vim, чтобы вы могли использовать большинство своих клавишных команд.

person coder_tim    schedule 30.09.2010

Как давнему пользователю vim, мне больно это говорить, но, возможно, вам пора перейти на полноценную IDE. В большинстве случаев вы по-прежнему можете использовать vim в качестве редактора, но IDE будет управлять файлами и навигацией за вас и, вероятно, упростит ваши рабочие процессы make и grep (например, структурный поиск превосходит grep). На каком языке вы работаете?

person Alex Feinman    schedule 30.09.2010
comment
Проект включает в себя несколько языков, C++/C (90%), VHDL, TCL, а также немного DSL. Я работаю удаленно, и vim отлично подходит для этого (но я также использую nomachine). Несколько лет назад я попробовал Eclipse, CodeBlocks и недавно XCode, но вскоре вернулся к vim. - person name; 30.09.2010

Vim-CtrlSpace позволяет организовывать вкладки, буферы, сеансы (рабочие области) + нечеткий поиск.< br> Вполне подходит для работы над большими проектами. Вот как я это придумал.
Раньше я использовал jlanzarotta/bufexplorer.git и xolox/vim-session.

Вы можете просмотреть демонстрацию на YouTube.

person Anbu Agarwal    schedule 20.06.2016