Я ни в коем случае не опытный пользователь vim, я только начинаю понимать продвинутые движения и команды с помощью vim. Но есть один недостаток, который я не могу обойти.
Я вырос с графическими программами для написания кода, но я только недавно начал использовать vim over ssh & screen для работы над довольно большими проектами со многими папками.
Мне любопытно, что делают мастера vim для быстрой и простой работы с несколькими файлами. Рассмотрим приложение rails в качестве примера. Скажем, вы хотите отредактировать контроллер, чтобы запустить.
vim app/controllers/controller.rb
Но затем вы быстро захотите перейти к редактированию представления или миграции базы данных, мой первый инстинкт - :wq
вернуться к bash, чтобы перейти к этому каталогу, и снова запустить vim в совершенно новом буфере.
Это, очевидно, совершенно неправильно.
Я узнал о нескольких вещах, таких как:
- Клиентский сервер (но я не хочу использовать X поверх ssh, и это кажется единственным способом)
:e
открыть другой файл, просматривая, но я не могу сделать это очень быстро. Закладка завершена, действительно, сбивает меня с толку.- Открытие всего каталога и поиск в буферах.
- NERDTree многообещающе, но я действительно хочу держаться подальше от любого графического представления, чтобы заставить меня освоить навигацию командной строки
Я извиняюсь за то, что был наивен, но я действительно хочу выучить правильный путь, даже если это очень субъективно.
Какие у вас методы и что бы вы порекомендовали?
rails-type-navigation
В документации или:help rails-type-navigation
когда вы установить его).Ответы:
Можно настроить vim для редактирования нескольких файлов без необходимости вообще завершать работу. Вы используете несколько буферов и переключаетесь между ними. Поскольку вы используете vim на экране, вы можете включить следующее в ~ / .vimrc, чтобы включить это.
Эти сопоставления клавиш отображаются на клавиши со стрелками Ctrl-Left и Right для переключения между буферами. Клавиша F4 вызывает то же меню, которое отображает графический интерфейс. Нажатие вкладки также теперь отображает небольшое меню для выбора завершения при нажатии вкладки.
источник
Хах! Раньше я был точно таким же, как ты, поэтому я точно знаю , откуда ты. Даже теперь, когда я знаю, что я делаю в определенной степени (я не очень-то бог, но я надеюсь попасть туда), я все равно иногда делаю: wq и возвращаюсь к своей оболочке.
Проверьте это - это может помочь вам. (Это тоже поможет мне, так как я никогда не знал об этом. Вот что удивительно в сайтах stackexchange - вы учитесь, помогая другим учиться!)
Вот несколько вещей, которые я делаю.
:e
Команда. Внутри vim, при редактировании файла, вы можете сделать что-то подобное,:e dir/subdir/otherfile
и он откроет его в новом буфере, то есть у вас будет два открытых файла одновременно.Ctrl-Shift-6
(Не знаю фактических значений ASCII). Если у вас открыто два буфера, вы можете переключаться между ними мгновенно с помощью этого переключателя.bd
удаление буфера. Позволяет очистить буфер.Это действительно очень удобно
:sh
. Если по какой-либо причине вам нужно вернуться в оболочку (скажем, посмотреть каталог и выполнить chmod файл), вы можете вызвать команду оболочки vim, сделав именно это. Выход из оболочки возвращает вас туда, где вы были в vim.В той же категории, что и вышеперечисленные,
:!
эта команда и команда unix впоследствии выполнят эту команду. Попробуйте это сls
. (Я думаю, что это также работает со встроенными командами оболочки, но я не уверен.)Это те, которые я использую все время. Также есть
:n
для следующего и:p
для предыдущего файла, так как в vim может быть открыто более двух буферов одновременно (хотя обычно я этого не делаю).источник
:sh
,:e
и надлежащее управление буфером, и вещи становятся сексуальноCtrl+Z
следует приостановить процесс (fg
из оболочки, чтобы отобразить его снова) - что является альтернативой:sh
.Вот где вы начинаете использовать плагины . Для управления файлами (или буферами) NERD-дерево и MiniBufExplorer являются общими вариантами. В вашем случае я бы гуглил " vim ruby ide " и следовал одному из множества учебных пособий, которые я нашел. Я использую Python, и 3 команды в этом руководстве настраивают все, что мне нужно, из Vim.
источник
Я также рекомендовал бы использовать разделенные окна для просмотра нескольких файлов одновременно. Добавьте некоторые навыки с помощью Buffer и Window management в VIM, и вы сразу станете ниндзя VIM.
Для получения актуальной документации я отошлю вас к Документации VIM для Windows , но постараюсь дать вам преимущество.
Запустите VIM с 2 (или более) горизонтально разделенными окнами, верхнее окно имеет файл1, следующее окно внизу имеет файл2 и т. Д.
Запустите VIM с 2 (или более) вертикально разделенными окнами, в крайнем левом окне находится файл1, в следующем - файл2 и т. Д.
Переместить курсор в другое окно:
Уже редактируете один файл, но хотите разделить окно и отредактировать другой файл:
Для горизонтального и вертикального разделения соответственно.
Есть также команды для перемещения окон, изменения их размера и т. Д.
источник
Используйте команду vi: split, чтобы открыть второе окно редактирования. split может выполнять как горизонтальное, так и вертикальное разбиение и более двух одновременно. У меня было 10 открытых файлов за один сеанс vi.
источник