Переключаясь с TextMate на Vim, я хотел бы запустить Vim и открыть определенную папку при запуске на MacOS?

Вручную я могу запустить Vim из оболочки с помощью mvim someFolder . Я использую MacOS 10.6 и NERDTree.

Спасибо!

РЕДАКТИРОВАТЬ:

Читая и пытаясь применить предложенные ответы (спасибо, кстати), я понимаю, что, вероятно, я не был достаточно ясен в своем вопросе:

Я хочу, чтобы MacVim автоматически запускался при запуске и при открытии определенной папки. Позже, во время моего сеанса MacOS, если по какой-либо причине я заново открываю MacVim, я не хочу, чтобы он открывал эту конкретную папку, я хочу поведение MacVim по умолчанию.

Я мог бы сделать это с TextMate, зайдя в Системные настройки MacOS, Учетные записи, Элементы входа в систему и добавив сюда мой файл проекта TextMate. Поскольку этот файл проекта был связан с TextMate, достаточно было автоматически запустить TextMate при запуске и отобразить этот список файлов проекта.

Есть ли способ добиться этого с Vim?

5 ответов5

2

Если вы хотите, чтобы MacVim открывал папку каждый раз, вы также можете добавить псевдоним в свой .profile или .bashrc например так:

alias vimm='mvim /path/to/some/folder'

Таким образом, вы все равно можете запустить MacVim для какой-либо задачи, не связанной с содержимым вашей папки (например, редактирование .profile или некоторого файла конфигурации), с помощью обычной команды mvim .

1

Чтобы открыть NERDTree в конкретный каталог, вы можете добавить следующую строку в ваш ~/.gvimrc (или ~/.vimrc если вы хотите, чтобы он также работал в консоли):

au VimEnter * NERDTreeToggle /path/to/your/folder/
1

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

-- Open MacVim
do shell script "/path/to/mvim /path/to/folder"

или же

    -- Open Vim on the terminal
    tell application "Terminal"
        activate
        do script "/path/to/vim /path/to/folder"
    end tell

с помощью редактора AppleScript.

1

Чтобы сделать этот запуск при запуске, вам придется прыгать через некоторые обручи.

Создайте файл сеанса, используя .vims в качестве расширения:

Откройте MacVim и откройте все / все файлы / вкладки / NERDTree, которые вы хотели бы открыть. Сохраните это в сеансе с расширением .vims :

mksession! ~/Desktop/project.vims

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

Создать приложение Automator:

Откройте Automator и создайте новое пользовательское приложение. Добавьте действие "Выполнить сценарий оболочки" в рабочий процесс. Измените Shell на /usr/bin/ruby , измените "Pass input" на "as arguments", затем вставьте этот код в тело действия:

file_name = ARGV[0].split(' ').join('\ ')
command = %Q!/usr/local/bin/mvim -S "#{file_name}"!
system(command)

Проверьте местоположение mvim с which , и обновите при необходимости. Сохраните рабочий процесс (я поместил его в ~/Desktop/SU) и измените "Формат файла" на "Приложение".

Свяжите свое приложение Automator с файлами .vims .

Щелкните правой кнопкой мыши ~/Desktop/project.vims и выберите "Получить информацию". В разделе «Открыть с помощью:» выберите приложение Automator и скажите «Изменить все ...».

Зайдите в свой логин.

Откройте Системные настройки, Учетные записи, Ваш пользователь и перейдите на вкладку "Элементы входа". Перетащите файл ~/Desktop/project.vims в список.

Готово!

Выйдите и снова войдите в систему, и MacVim должен открыться автоматически.

Ограничения.

По какой-то причине Automator продолжает работать во время этого сеанса, если VIM активен. Если кто-нибудь знает, как это исправить, пожалуйста, дайте мне знать.

0

Что я считаю наиболее полезным, так это открыть файлы проекта на вкладках с помощью NERDTree, а затем создать файл сеанса:

mksession! project.vim

Восклицательный знак должен перезаписать предыдущий project.vim, если вы добавите новый файл в проект. Затем, в любое время, когда я хочу запустить vim, мне просто нужно позвонить:

vim -S project.vim

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .