Создайте проект в VIM/MacVim/GVIM

Я новичок в VIM и пересматривал его снова и снова, и я надеюсь, что на этот раз я действительно буду придерживаться его. В основном я программирую в TextMate с Ruby on Rails. По чьему-то совету я установил Janus (https://github.com/carlhuda/janus), и это очень помогло. Но чего мне не хватает, так это наличия «проекта», чтобы я мог легко и быстро вернуться к проекту.

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

  1. CD в ​​корень проекта
  2. Установите резервные копии всех вкладок/разделений, которые я установил, в тех же местах.
  3. Снова откройте файлы, над которыми я работал в последний раз.
  4. Сегодня я собираюсь изучить Conque Shell (http://code.google.com/p/conque/), и если это сработает, я бы хотел, чтобы эти оболочки также перезагружались и запускали свои команды запуска. (перейдите на компакт-диск в корень проекта, запустите сервер rails, запишите журнал и т. д.)

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

Бонус: я тоже часто использую Windows, поэтому было бы здорово сделать то же самое в GVim.

Спасибо за вашу помощь


person Dave Sanders    schedule 31.08.2011    source источник


Ответы (3)


Для разработчиков Rails есть известный плагин Тима Поупа под названием rails.vim.

Когда вы находитесь в корне проекта rails (вы можете изменить текущий каталог Vim с помощью :cd /path/to/project/root ), rails.vim предоставляет быстрый способ доступа к вашему файлу, например:

  • :файл Rcontroller
  • :просмотреть файл
  • :файл таблицы стилей

Это другие варианты рефакторинга с использованием партиалов. Установите его и введите :help rails.txt. Таких приятных особенностей предостаточно. Это действительно полезно для ускорения доступа к файлам вашего проекта.

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

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

 if isdirectory("~/workspace/project1")
    cd ~/workspace/project1
 endif

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

person Xavier T.    schedule 31.08.2011
comment
Отлично, я искал что-то подобное. - person cfeduke; 31.08.2011
comment
У меня уже установлен Rails.vim, но мой вопрос был не об этом. Я проверю session.vim, чтобы увидеть, делает ли он то, что мне нужно для некоторых элементов в моем списке. Я не хочу вносить изменения в .vimrc, потому что такой подход не поддерживает несколько проектов. Я полагаю, я мог бы сопоставить команду с функцией там, хотя... - person Dave Sanders; 31.08.2011
comment
session.vim приближает меня... но есть некоторые ошибки/проблемы как с вкладками, так и с Conque, но посмотрим, что я смогу выяснить. Спасибо - person Dave Sanders; 31.08.2011
comment
@Vulgrin: я знаю, что есть также плагин project.vim, но он, похоже, не поддерживается (последнее обновление было в 2006 году). - person Xavier T.; 31.08.2011

Вы можете проверить встроенную возможность Vim создавать сеансы восстановления. Это позволяет вам сохранить почти все, что вы настроили, включая cwd, folds, splits, buffers, vars и т. д. См. :help :mksession.

Вот два плагина, которые помогают сохранять и восстанавливать сеансы:

Вы также можете проверить подключаемый модуль проекта: http://www.vim.org/scripts/script.php?script_id=69

Я тоже слышал хорошие отзывы о rails.vim.

person Greg Sexton    schedule 01.09.2011

Terminitor (Ruby Gem) не решит конкретно вашу цель "проекта" vim, но решит остальные ваши проблемы. Вы можете настроить окна терминала, а затем выполнить команду для захвата положения и размеров терминала, отредактировать конфигурацию, чтобы добавить любые другие команды (на Ruby), которые вы хотите выполнить, и это позволит вам восстановить вашу среду.

person cfeduke    schedule 31.08.2011