Думая о переходе от TextMate к vim для Rails dev. Что мне нужно? - PullRequest
24 голосов
/ 16 февраля 2010

Я занимаюсь разработкой Ruby on Rails почти исключительно. В настоящее время я разрабатываю в OS X с использованием TextMate. У меня есть виртуальная машина, работающая для максимально возможной эмуляции среды, в которой будет развернуто мое приложение, и я монтирую код на общем ресурсе Samba в OS X из гостевой виртуальной машины. Оттуда я открываю с TextMate и код далеко.

Я начинаю думать, что при наличии соответствующих плагинов и времени, потраченного на обучение, я мог бы гораздо более продуктивно работать с vim непосредственно на ВМ. Прямо сейчас мой TextMate в основном готов, хотя я считаю плагин ProjectPlus незаменимым. То, что я ищу, - это некоторые предложения ресурсов и плагинов vim (если это правильная терминология), чтобы тесно имитировать функции, от которых я не хочу отказываться в TextMate. Или, по крайней мере, веские причины, почему я должен быть готов отказаться от них. Вот краткий список:

  • Возможность иметь (предпочтительно) разборное дерево проекта, видимое либо всегда, либо легко переключаемое.
  • Возможность мгновенного просмотра статуса SCM, либо внутри этого дерева проекта (предпочтительно), либо иным образом. (Я использую GIT почти исключительно, если это имеет какое-либо значение.)
    • Было бы замечательно иметь возможность просматривать сторонний diff изнутри vim
  • Возможность поиска по всему проекту по желанию (я полагаю, :stop; grep -nr; fg; выполнит это, если нет лучшего способа сделать это.)
  • Завершение кода, если возможно

Ответы [ 10 ]

27 голосов
/ 16 февраля 2010

Плагин NERD Tree дает вам сворачиваемое дерево проекта. Лично я считаю, что плагина netrw более чем достаточно, и он обычно устанавливается вместе с Vim. В то время как дерево NERD чувствует себя так, как будто оно пытается эмулировать поведение других IDE (и панели проекта TextMate), я чувствую, что плагин netrw делает вещи способом Vim. Я предлагаю вам попробовать оба и посмотреть, какой из них вы предпочитаете.

Плагин fugitive предоставляет Git-интерфейс для Vim (см. Vimcasts: запчасти 1 , 2 , 3 , 4 и 5 ).

Плагин ack отлично подходит для поиска всего проекта. Вы можете прочитать список quickfix Vim, чтобы получить максимальную отдачу от этого.

Завершение слова TextMate запускается с помощью esc и shift - esc . В Vim вы получаете аналогичные функции автозаполнения , используя ctrl - n и ctrl - p в режиме вставки. Проверьте :help ins-completion для (много!) Больше информации.

Я запускаю серию скринкастов об изучении Vim на vimcasts.org . Мой опыт работы с TextMate, но я уже некоторое время использую Vim. Пока я пишу это, у меня всего 6 эпизодов, но я планирую охватить каждый из вопросов, которые вы затронули в будущих эпизодах. Я постараюсь вернуться и отредактировать этот ответ со ссылками на скринкасты, когда они станут доступны.

6 голосов
/ 16 февраля 2010
4 голосов
/ 27 апреля 2011

Для файловой навигации просто любовь CommandT
Это работает почти так же, как любимая функция commandT в textmate.

4 голосов
/ 16 февраля 2010

Я сейчас нахожусь с вами в позиции (переход от TextMate к Vim)

Один действительно хороший ресурс это:

http://robots.thoughtbot.com/post/166073596/intro-rails-vim

Удачи с этим!

2 голосов
/ 29 декабря 2010

Возможно, вы захотите начать с моих связанных с Ruby / Rails vimfiles , которые включают поддержку rvm и git.

1 голос
/ 27 апреля 2011

Все остальные ответы плюс:

Возможность иметь (желательно) разборное дерево проекта, видимое всегда или легко переключаемое.

  • Плагин project.vim на самом деле не работает, как ящик проекта TextMate, но он близко.
  • С NERDTree вы можете настроить закладки и сделать их немного похожими на ящик проекта.
  • :help mkview и :help mksession тоже могут помочь.

Возможность мгновенного просмотра состояния SCM, либо внутри этого дерева проекта (предпочтительно), либо иным образом. (Я использую GIT почти исключительно, если это имеет какое-либо значение.)

  • vcscommand.vim предоставляет одинаковый набор команд для нескольких SCM, работает с Git, SVN, Mercurial…
  • Вы можете использовать вышеупомянутый беглый плагин для отображения статуса Git в строке состояния, :help fugitive-statusline.

Было бы замечательно иметь возможность просматривать сторонний diff изнутри vim

  • Беглец предоставляет команду :Gdiff, которая делает именно это.
  • Недавно выпущенный плагин под названием Gitv пытается эмулировать GitK в Vim. Мне это очень нравится, и автор очень отзывчив. В виде дерева нажмите <CR>, чтобы открыть предыдущий коммит в другом окне, и D, чтобы увидеть двойной дифференциал.

Завершение кода, если возможно

  • Есть несколько решений, если вам не нужен автоматический <C-x><C-o>, <C-n> и <C-p> будет более чем достаточно, если вы хотите "автозаполнение", вы можете попробовать эти несколько плагинов . Мой любимый autocomplpop .
1 голос
/ 25 февраля 2010

Проверьте сообщение в блоге: От Textmate до VIM для кодировщиков Rails .

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

1 голос
/ 16 февраля 2010

Поиск по всему проекту здесь.

Завершение кода: обычно выполняется с ctrl - X , затем ctrl - O в режиме вставки.

Интеграция с Git: git.vim

Дерево проекта: Nerdtree.vim

Удачи

1 голос
/ 16 февраля 2010

Этот скринкаст также хорош http://blip.tv/file/1372096

Я использую VIM, и мне особенно нравится, как вращаться из модели / вида и контроллера, связанных ..

0 голосов
/ 05 сентября 2011

Сегодня я опубликовал расширенный пост на эту тему, в котором объясняю , как реплицировать 100 функций из Textmate в VIM . Это продукт многочасовых исследований.

Например, я объясняю:

  • Как скопировать ящик проекта
  • Как управлять вкладками
  • Как выполнять специфичные для Rails команды (давайте посмотрим правде в глаза: многие пользователи Textmate являются программистами Rails)
  • Как найти и заменить
  • Как выполнить поиск в проекте

Читать оригинал статьи: Textmate To VIM

...