Думая о переходе с TextMate на vim для Rails dev. Что мне нужно?
Я занимаюсь разработкой Ruby on Rails исключительно. В настоящее время я разрабатываю в OS X с помощью TextMate. У меня есть виртуальная машина для эмуляции как можно ближе к среде, в которую будет развернуто мое приложение, и я смонтирую код на share Samba в OS X от гостевой системы VM. Оттуда я открываю с TextMate и код прочь.
Я начинаю думать, что с помощью правильных плагинов и времени, затраченного на обучение, я мог бы быть намного более продуктивным в vim непосредственно на виртуальной машине. Прямо сейчас мой TextMate является в основном запасом, хотя я считаю, что плагин ProjectPlus незаменим. Я ищу некоторые предложения vim ресурсов и плагинов (если это правильная терминология), чтобы тесно имитировать функции, которые я не желаю сдавать в TextMate. Или, по крайней мере, убедительные причины, по которым я должен был бы их бросить. Вот короткий список:
- Возможность иметь (желательно) складчатое дерево проекта, видимое либо в любое время, либо легко переключаемое.
- Возможность видеть статус SCM с первого взгляда, либо внутри этого дерева проектов (предпочтительно), либо иным образом. (Я использую git почти исключительно, если это имеет значение.)
- Возможность просмотра параллельного diff изнутри vim также будет очень большой.
- Возможность поиска по всему проекту по желанию (я полагаю,
:stop; grep -nr; fg;
выполнит это, если не будет лучшего способа сделать это.)
- По завершении кода
Ответы
Ответ 1
Плагин NERD Tree дает вам сбрасываемое дерево проектов. Лично я считаю, что плагин netrw более чем достаточен, и обычно это устанавливается с Vim. В то время как дерево NERD чувствует себя так, как будто оно пытается подражать поведению других IDE (и ящика проекта TextMate), я чувствую, что плагин netrw делает вещи Vim. Я предлагаю вам попробовать оба и посмотреть, какой из них вы предпочитаете.
скрытый плагин предоставляет интерфейс git для Vim (см. Vimcasts: parts 1, 2, 3, 4 и 5).
ack плагин отлично подходит для поиска всего проекта. Вы хотите прочитать Vim quickfix, чтобы получить максимальную отдачу от этого.
Завершение слова TextMate запускается с помощью esc и shift - esc. В Vim вы получаете аналогичную autocomplete с помощью ctrl - n и ctrl - p в режиме вставки. Проверьте :help ins-completion
для (много!) Дополнительной информации.
Я запускаю серию скринкастов об изучении Vim в vimcasts.org. Мой фон с TextMate, но я уже давно использую Vim fulltime. Когда я пишу это, у меня всего 6 эпизодов, но я планирую покрыть каждый из пунктов, которые вы подняли в будущих эпизодах. Я попытаюсь вернуться и отредактировать этот ответ со ссылками на скринкасты по мере их появления.
Ответ 2
И snipMate: фрагменты стиля TextMate для Vim
Ответ 3
Сейчас я вхожу в аналогичную позицию (переход от TextMate к Vim)
Один действительно хороший ресурс:
http://robots.thoughtbot.com/post/166073596/intro-rails-vim
Удачи вам!
Ответ 4
Для навигации по файлам просто нравится CommandT
Это очень похоже на любимую функцию commandT в textmate.
Ответ 5
Возможно, вы захотите начать с моего связанного с Ruby/Rails vimfiles, который включает поддержку rvm и git.
Ответ 6
Этот скринкаст также замечателен http://blip.tv/file/1372096
Я использую VIM, и мне особенно нравится, как вращаться от модели/просмотра и связанного с ним контроллера.
Ответ 7
Искать весь проект здесь.
Завершение кода: обычно выполняется с помощью ctrl - X, а затем ctrl - O в режиме вставки.
Git Интеграция: git.vim
Дерево проектов: Nerdtree.vim
Удачи.
Ответ 8
Отправляйте сообщение в блоге: От Textmate до VIM для кодировщиков Rails.
Комментарии могут быть полезны для вас.
Ответ 9
Все остальные ответы плюс:
Возможность иметь (желательно) складчатое дерево проекта, видимое либо в любое время, либо легко переключаемое.
- project.vim плагин на самом деле не работает, как ящик TextMate Project, но он закрывается.
- С помощью NERDTree вы можете настроить закладки и заставить их работать немного как ящик проекта.
-
:help mkview
и :help mksession
тоже могут помочь.
Возможность просмотра статуса SCM с первого взгляда, либо в этом дереве проектов (предпочтительнее), либо в противном случае. (Я использую git почти исключительно, если это имеет значение.)
- vcscommand.vim предоставляет один и тот же набор команд для нескольких SCM, он работает с Git, SVN, Mercurial...
- Вы можете использовать вышеупомянутый скрытый плагин для отображения состояния git в строке состояния
:help fugitive-statusline
.
Возможность просмотра параллельного diff изнутри vim тоже будет очень хороша
- fugitive предоставляет команду
:Gdiff
, которая делает именно это.
- Недавно выпущенный плагин под названием Gitv пытается подражать GitK в Vim. Мне это очень нравится, и автор очень отзывчив. В древовидном представлении нажмите
<CR>
, чтобы открыть предыдущую фиксацию в другом окне и D
, чтобы увидеть двойной diff.
По завершении кода
- Есть несколько решений, если вам не нужно автоматическое
<C-x><C-o>
, <C-n>
и <C-p>
будет более чем достаточно, если вы хотите "автозаполнение", вы можете попробовать эти несколько плагинов. Мой любимый autocomplpop.
Ответ 10
Сегодня я опубликовал расширенный пост по этой теме, в котором я объясняю , как реплицировать 100 функций из Textmate в VIM. Это продукт многочасового исследования.
Например, я объясняю:
- Как реплицировать ящик проекта
- Как управлять вкладками
- Как сделать конкретные команды Rails (Давайте посмотрим правде в глаза: многие пользователи Textmate являются программистами Rails)
- Как найти и заменить
- Как выполнить поиск по проекту в целом
Прочитать исходную статью: Textmate To VIM