3

В моем .vimrc есть сопоставления для открытия или переключения на часто используемые приложения.

Вариант использования: у меня есть 10 открытых приложений, и я в MacVim. Быстрее выдать <Leader>sc который сопоставлен с map <Leader>sc :silent !open /Applications/Google\ Chrome.app<CR> , затем несколько раз нажмите Command+Tab чтобы перейти в приложение Chrome.

Однако vim задерживается с момента, когда я запускаю команду <Leader>sc до момента, когда он выполняет действие.

Как я могу уменьшить эту задержку только для этого отображения? Мне бы хотелось, чтобы это происходило так же быстро, как запуск open /Applications/Google\ Chrome.app из командной строки, однако vim вводит небольшую задержку перед выполнением этой команды.

Изменить: я заметил, что есть настройка timeoutlen , однако это глобальный. Я хотел бы что-то подобное только для этих сопоставлений.

2 ответа2

3

Скорее всего, это связано с тем, что у вас есть другое отображение, начинающееся с <Leader>sc и Vim ждет, чтобы узнать, печатаете ли вы просто более короткое отображение или намереваетесь напечатать другое, более длинное отображение.

Единственный способ обойти эту проблему - изменить одно из сопоставлений, чтобы Vim знал, что двусмысленности нет, что должно привести к немедленному запуску команды.

Набрав " :map <leader>sc " и нажав клавишу ввода, вы увидите все сопоставления, которые начинаются с этой последовательности.

0

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

Но я думаю, что задержка вызвана использованием здесь open .

Почему ты не используешь ртуть? Я использовал его годами: он обеспечивает один и тот же механизм, в каком бы контексте я ни находился. Будь я в Vim, iTunes, Outlook или Preview, я могу набрать ту же последовательность клавиш, чтобы переключиться на Chrome. Одно это повсеместность делает его обязательным для меня. Это и скорость <C-Space>c<CR> .

В вашей системе вы могли бы теоретически сэкономить время, выполняя Vim> Chrome, но как вы делаете Chrome> Vim? AFAIK, вы не можете использовать <leader>sv в Chrome, поэтому вы должны использовать другой механизм. Это как минимум две системы для настройки и поддержки или, по крайней мере, пользовательская очень эффективная и менее эффективная по умолчанию.

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