Рабочий процесс Vim - отладка и запуск терминала - PullRequest
1 голос
/ 18 марта 2012

Я только что переключился на vim из emacs, используя MacVim с Janus. В emacs вы можете иметь буфер исключительно для использования в оболочке. Возможно ли это в MacVim? Это было бы очень полезно при отладке.

Что также заставляет меня спросить - есть ли способ компилирования в vim, похожий на emacs: когда вы набираете мета-x compile, а затем можете нажать на ошибки, чтобы перевести курсор на соответствующую строку?

Я просто пытаюсь найти хороший рабочий процесс для MacVim и хочу найти хороший способ исправить мои ошибки, не выстраивая терминалы и MacVim рядом друг с другом. Любые рекомендации приветствуются.

Ответы [ 3 ]

5 голосов
/ 19 марта 2012

Vim не выполняет никакой эмуляции терминала, но вы можете использовать плагин Conque , чтобы обеспечить эмуляцию терминала в окне Vim . Для Conque требуется Vim с поддержкой Python (достаточно MacVim ).

Однако, если ваш рабочий процесс сфокусирован на простом переходе к местоположениям, сообщаемым инструментами командной строки, вам действительно следует попробовать использовать систему быстрого исправления (см. :help quickfix).

Как правило, вы просто запускаете :make для вызова вашего компилятора (обычно через make, но настраиваемый с помощью makeprg опция ; также см. :compiler) и Vim будут использовать значение , параметр errorformat - , анализировать всех полученных сообщений и создавать список быстрых исправлений. Затем вы можете перемещаться по указанным местоположениям с помощью таких команд, как

  • :cc N - перейти к номеру местоположения N,
  • :cn - следующее местоположение,
  • :cp - предыдущее местоположение,
  • :cnf - следующее местоположение в следующем файле (т.е. пропустить остальные местоположения в текущем файле),
  • :cw - откройте список местоположений в буфере, где вы можете просмотреть сообщения, и нажмите Enter, чтобы перейти к местоположению.

Значения по умолчанию makeprg и errorformat обычно подходят для анализа выходных данных make и cc / gcc, но могут потребоваться изменения для обработки сообщений от других систем сборки или компиляторов.

Команда :grep работает аналогично :make (она заполняет список быстрого исправления местоположениями, сообщаемыми командой grep).

4 голосов
/ 18 марта 2012

Вы можете скомпилировать с :make, если у вас есть make-файл.Vim может анализировать выходные данные GCC и переходить к ошибкам с помощью :cnext и :cprevious.Я не думаю, что vim знает, как анализировать вывод gfortran, и я не использовал его ни с какими другими компиляторами.

Я не знаю, как сохранить оболочку открытой в буфере.

1 голос
/ 18 марта 2012

Пока выходные данные компилятора передаются в буферы быстрого исправления или определения местоположения, тогда да, вы можете легко переходить от ошибок к их расположению в исходном коде.Vim имеет разумный набор настроек по умолчанию для разбора Make и GCC;другие форматы могут быть добавлены с помощью :set efm.

Запуск интерактивной оболочки внутри Vim не работает "из коробки", но есть плагины, такие как Conque , которыепредоставить его.

...