Использование Vi, Vim или GVim в качестве IDE - PullRequest
46 голосов
/ 23 июня 2009

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

Теперь я знаю, что есть плагины и тому подобное, которые могут заставить VIM работать как IDE, поэтому мне интересно, действительно ли кто-нибудь использует его в качестве IDE?

EDIT:

Для тех из вас, кто считает, что выступает за массы, говоря, что Vim не следует использовать в качестве IDE, учтите, что функции IDE являются запросом функций номер один в официальном списке запросов на vim.org .

Ответы [ 11 ]

47 голосов
/ 25 июня 2009

Vim - удивительное программное обеспечение, но оно довольно грязное из-за его возраста. Vi был выпущен в 1976 году, а Vim был выпущен в 1991 году. Например, Vim предлагает несколько различных способов завершения текста, от простого ключевого слова до его системы завершения omni. Кроме того, некоторые плагины предпочитают работать со встроенными функциями, в то время как другие просто заменяют его оптом. Надеюсь, что следующие предложения помогут вам начать.

IDE с Vim

Вы можете попробовать этот новый патч для Vim, который позволяет использовать Vim в Visual Studio в качестве редактора:

Vundle

Во-первых, установите плагин Vundle менеджер плагинов для Vim! Он работает очень хорошо и облегчает управление плагинами Vim. Ручки установки, обновления и удаления.

Например, ваш .vimrc теперь содержит:

" === Plugins! ===
Plugin 'junegunn/fzf'
Plugin 'scrooloose/nerdtree'
Plugin 'w0rp/ale'
...

И команда PluginUpdate установит их или обновит.

Плагины для Vim-IDE

Следующие скрипты vim дают Vim больше ощущения от IDE. Имейте в виду, что в Vim встроено огромное количество функций, поэтому потратьте некоторое время, чтобы изучить их (это постоянное путешествие), прежде чем загружать 20 плагинов.

Самые мощные плагины для меня: fzf и ALE . Вы захотите установить fzf и ripgrep .

Навигация:

  • FZF - Любимый плагин, потрясающая навигация по файловой системе и текстовый поиск
  • Nerd Tree - Навигация по файловой системе
  • Command-T - Поиск проекта по имени файла, чтобы открыть, рекомендовал бы FZF вместо
  • CtrlP - альтернатива Command-T, нечеткий поиск файлов и буфера. Обычно медленнее, но не требует компиляции
  • Панель тегов - Кодовая навигация по функциям
  • Закладка - Закладки для vim (мой собственный плагин:))

Завершение текста:

  • delimitMate - Автоматическое закрытие скобок, фигурных скобок и т. Д.
  • tcomment - Команды простого комментария / раскомментирования исходного кода
  • Ultisnips - Система фрагментов Great Vim
  • YouCompleteMe - завершение кода, множество функций
  • neocomplete - чуть более простое завершение кода, чем YCM

Лично я считаю, что завершение кода слишком много, и я полагаюсь на встроенную в Vim функцию CTRL-N завершение текста, но помните CTRL-N! Встроенная в Vim система завершения дополняет другие режимы завершения, такие как завершение имени файла с помощью CTRL-X CTRL-F или «omni-завершение», которое пытается предложить зависящее от типа файла контекстно-зависимое завершение до CTRL-X CTRL-O. Для Omni-Complete требуются плагины для конкретных типов файлов, пакет vim-go для Golang поддерживает его.

Форматирование:

  • табличный - Выравнивание текста легко
  • vim -round - Быстро окружить некоторый текст (т. Е. Скобки, теги ...)

Просто потрясающе:

  • ALE - Проверка синтаксиса в реальном времени для многих языков, поддерживает новые функции Vim 8, такие как асинхронные задания, чтобы гарантировать, что Vim не зависает во время работы.
  • Беглец - Git внутри vim, diffs, обвиняют ... и т.д.
  • gitgutter - Live diff из git-версии файла
  • YankRing - Легкий доступ к ранее скопированным или удаленным текстовым объектам

Лучший графический интерфейс:

  • Авиакомпания - легче читать строку состояния с более полезной информацией
  • Gundo - Визуализация истории отмен vim в виде дерева (мой любимый, обязательно включите постоянную отмену в Vim)

Цветовые решения:

Vim Distributions

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

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

Руководства по Vim Plugin

VimAwesome может быть хорошим местом для поиска плагинов Vim и поиска полезных и популярных.

Vim Patches

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

  • Проверка кода - Проверка кода на лету ( note : Syntastic - лучший выбор в наши дни).
  • Clewn - Разрешает отладку и пошаговое выполнение кода в Vim с использованием GDB.

С этими установленными сценариями и исправлениями у вас должно быть что-то очень близкое в Vim к возможностям Visual Studio или Eclipse.

15 голосов
/ 23 июня 2009

Вы также можете пойти другим путем и использовать плагин под названием viemu . Это дает вам режим vi в VS IDE, который облегчает коллегам совместную работу в вашей системе.

7 голосов
/ 24 июня 2009

Taglist - замечательный плагин - не выходите из дома без него.

Вы также можете настроить завершение вкладки .

Omnicompletion - это здорово, если ваш язык поддерживается.

И Совет VIM 1439 содержит сводку советов IDE-ification.

6 голосов
/ 07 июля 2010

Если вы используете Linux, попробуйте Pida . Вы можете встроить Vim или Emacs в него. Многочисленные интеграции, такие как файловый браузер, структура проекта и консоль, делают Vim похожим на Eclipse. ИМХО, это простой способ использовать Vim в качестве IDE.

6 голосов
/ 23 июня 2009

Я не пытаюсь поднять этот ответ, но я хочу избавить вас от головной боли. Это тот же ответ, который я даю всем людям, которые задают подобные вопросы в # vim.

Vim не является IDE. Это редактор. Он никогда не предназначался для IDE, и любые попытки привести его в соответствие с этим только вызовут у вас проблемы. Есть некоторые плагины, которые пытаются придать Vim ощущение, похожее на IDE, но они ужасны.

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

  • taglist - Отлично подходит для навигации по коду с помощью функции / метода / класса
  • NERDTree - Замечательный плагин для навигации по файловой системе
3 голосов
/ 23 июня 2009

VIM имеет первоклассную поддержку C и C ++ в качестве IDE. У вас даже есть визуальный отладчик с clewn и gdb. На других языках вам придется немного подправить и поиграть, и результат может не достичь желаемого. Стоит попробовать в течение часа и посмотреть, как это происходит.

У меня сложилось впечатление, что emacs лучше работает как IDE для большего количества языков.

2 голосов
/ 02 июля 2009

попробуйте exVim в http://code.google.com/p/exvim Этот проект делает VIM IDE для многоязычной разработки.

1 голос
/ 23 июня 2009

Я использую только Vim - у него есть некоторые базовые возможности для автозаполнения через ^ X, а затем различные опции (^ P для ключевого слова, ^ O для омникомплета (хорошо для переключения между HTML, CSS и т. Д. В веб-файлах).

Он также может запускать команды с помощью:! (Компилятор или другие команды).

Довольно простая, безболезненная интеграция с базовыми разработками без необходимости в рабочих пространствах или подобных объектах, а также при необходимости моделирование параметров файла.

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

1 голос
/ 23 июня 2009

Я иногда использую Vim в качестве IDE в Kate , когда в противном случае у меня было бы несколько открытых вкладок в Vim, которые трудно изменить.

Иначе, я придерживаюсь обычного обычного Vim.

KDE для Windows позволит вам установить Kate в Windows.

0 голосов
/ 06 октября 2018

Кроме того, эти комментарии в значительной степени зависят от года их написания. Вот мои мысли о Виме как IDE в 2018 году.

Протокол Language Server приобретает все большее значение, и Sourcegraph популяризирует его благодаря генеральному плану .

Это основная причина, по которой ALE (Asynchronous Linting Engine) так важен, потому что он реализует LSP. Таким образом, он также предлагает Переход к определению, завершение кода и информацию о наведении . Я только начал использовать его для линтинга и не углублялся в другие функции, но думаю, что он обещает предложить многое из того, что ожидается от IDE.

Но в значительной степени все общее от Tim Pope + FZF + Ripgrep + ALE даст вам очень мощный редактор.

Честно говоря, редактор «Все, что Тим Папа» - одна из лучших отправных точек, которую вы можете иметь для Vim IDE (я даже создал vim-tim только для этого).

Единственные места, где я немного отличаюсь от Отличный ответ Дэвида Терея :

Будьте осторожны при установке плагинов IDE, они могут очень легко повлиять на производительность Vim.

Потенциальные преимущества по сравнению с другими IDE

Стоит отметить, насколько гибко Vim позволяет вам настраивать кодовую базу. Поскольку многие IDE работают только на уровне проекта, вы можете создать родительскую папку во многих репозиториях Git, FZF и Ripgrep настолько мощны, что они потребляют огромные базы кода и практически не замедляются при поиске по ним. С помощью Ctags вы можете создать индекс за пределами репо. Это на самом деле заполняет несколько необычных моментов в контрольном списке Sourcegraph для интеллектуальных редакторов (я думаю, что Vim способен выполнить все пункты, которые большинство современных IDE делают кроме них):

  • Работает ли ваш переход к определению через границы репозитория?

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

Использование буферов Vim позволяет вам открывать сотни буферов без каких-либо помех пользовательского интерфейса или снижения производительности. Ввод :b some-buffer-text, а затем Tab позволяет легко заполнять имена буферов. Я также использую следующую строку , взятую из другого ответа , которая позволяет перечислить все буферы и распечатать команду буфера, чтобы вы могли быстро переключиться на другой по его номеру:

nnoremap <leader>bb :buffers<cr>:b<space>

Тим Поуп имеет недавно обновленный плагин базы данных dadbod , который предоставляет вам те же возможности, что и у вас в Microsoft Database Management Studio.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...