Как настроить MacVim для выхода при выходе?

2305
tlehman

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

Есть ли способ с помощью vimscript убить процесс, а также закрыть окно при выходе?

7

2 ответа на вопрос

17
Chris Johnsen

Если в Dock последовательно появляются несколько значков MacVim, возможно, вы захотите проверить, как вы запускаете MacVim . Конкретно говорит:help macvim-start

НЕ вызывайте двоичный файл MacVim внутри пакета приложения, чтобы запустить MacVim.

Из командной строки вы обычно используете либо 1,open -a MacVim filename либо mvim filename1 . Из графического интерфейса вы можете связать MacVim с определенными расширениями, перетаскивать файлы в MacVim в Finder или Dock или в открытое окно MacVim или использовать меню «Службы» для запуска новых буферов с выборами из других приложений. Также есть mvim://обработчик URL (см. :help mvim://).

Ни один из этих методов не требует каких-либо специальных флагов / опций, независимо от того, работает существующий экземпляр или нет, и никогда не должен создавать дополнительный значок MacVim в Dock .

1 mvim - это скрипт, который поставляется с MacVim ; см :help mvim. После того, как вы установили его в каталог в вашей переменной PATH, вы можете использовать его для редактирования файлов в существующем экземпляре MacVim (или запустите его, если он еще не запущен).


«После закрытия последнего окна:» Выход из MacVim на вкладке « Общие » в настройках MacVim (⌘ или MacVim > « Настройки» ) может быть тем, что вам нужно.

Если вам действительно нужно что-то более конкретное, то вы можете использовать команду MacVim -custom, :macaction terminate:чтобы запросить завершение работы всего приложения MacVim в любой момент сценариев. Он должен быть эквивалентен ⌘Q и пункту меню MacVim > Выход из MacVim (все они отправляют terminate:действие первому респонденту приложения); если вы изменили буферы, он спросит вас, хотите ли вы «В любом случае выйти?».

Похоже, вы можете подключить его к событию VimLeave с помощью автокоманды:

autocmd VimLeave * macaction terminate: 
Ах, наконец, моя иконка дока Vim исчезает, как только я закрываю все буферы :) Andre 5 лет назад 0
0
Aham

Похоже, у пакета MacVim из macvim-dev нет сценария mvim. Я взял скрипт mvim из репозитория b4winckler, и он работает, как описано выше.