Использование vim и кофеина на одной машине

12

Фон

Я работаю в исследовательской лаборатории и использую три разные ОС ежедневно. На компьютерах с Windows и Mac я использую Caffeine, чтобы запретить этим компьютерам активировать заставку, когда я работаю на другом компьютере (у Linux такой проблемы нет). Это очень раздражает, чтобы войти снова, когда я переключаюсь назад.

проблема

Когда vim или gvim находятся в режиме вставки, символ <F15>периодически появляется в документе. Я отследил его до кофеина после небольшого исследования. На веб-сайте Caffeine говорится, что программное обеспечение работает, периодически имитируя <F15>событие нажатия клавиши:

Из всех доступных нажатий клавиш F15, вероятно, наименее навязчивый (я никогда не видел клавиатуру ПК с этой клавишей!) И реже всего мешает вашей работе.

Таким образом, кофеин является очевидным виновником. Тем не менее, я все еще предпочитаю использовать мой любимый текстовый редактор на всех трех машинах, и не собираюсь менять это просто для удобства использования кофеина.

Вопрос

Есть ли что-то, что я могу добавить, vimrcчтобы vim игнорировал <F15>события нажатия клавиш?


Редактировать для ясности

Я не могу отключить тайм-аут заставки; устанавливается ИТ-отделом в целях безопасности. Так что с обходом кофеина, чтобы оставаться послушным, я должен вручную заблокировать свои машины, когда отхожу от своего стола. Это не так плохо; но разблокировка их каждые несколько минут есть.

Кроме того, я не писал Caffeine, поэтому я не знаю, почему разработчик выбрал клик <F15>один раз в минуту. Я, вероятно, сделал бы это по-другому, возможно, легким движением мыши или касанием сенсорной панели, как предложил @ Random832.

Джонатан Ландрум
источник
4
Почему бы просто не отключить заставки / тайм-аут для блокировки на этих машинах? Это было бы намного более чистым решением, чем настраивать vim для обхода странного поведения Caffeine. Или, по крайней мере, заставить кофеин имитировать нечто подобное <Ctrl>вместо <F15>.
Руслан
1
@Ruslan Смысл использования в <F15>том, что это очень редко означает что-либо и обычно игнорируется; <Ctrl>Однако имеет смысл, и при срабатывании в неподходящее время может вызвать непреднамеренное поведение.
Кайл Стрэнд
@Ruslan ОС настраивается ИТ-отделом для блокировки после определенного периода бездействия; использование кофеина позволяет мне обойти это, пока я вручную блокирую свои машины, когда отхожу от стола. Кроме того, у меня нет исходного кода для кофеина, поэтому я не могу его изменить.
Джонатан Ландрум
Почему он не просто имитирует то событие, которое вы получаете, когда вы нажимаете на сенсорную панель, когда касание не включено, но оно по-прежнему фокусирует окно, над которым вы находитесь, - но поверх текущего окна, поэтому оно ничего не делает?
Random832
@ Random832 это хороший вопрос; Я не писал программу, поэтому я не знаю логики выбора, <F15>кроме того, что размещено на сайте.
Джонатан Ландрум

Ответы:

20

Вы можете сопоставить ключ <nop>(сокращение от «без операции»), чтобы заставить его «ничего не делать».

Это должно заставить Vim игнорировать <F15>ключ во всех режимах:

:noremap <F15> <nop> 
:noremap! <F15> <nop>

Это, вероятно, решит вашу проблему, но я не проверял ее в вашей конкретной ситуации, так как у меня нет различных машин с Windows / OSX с установленным Caffeine :-)

Мартин Турной
источник
Похоже, что сделал это! Спасибо за помощь.
Джонатан Ландрум
1
Следует отметить, что предположительно мертвые ключи, подобные <f15>часто используемым при отображении быстрых кодов клавиш в терминале Vim . Примером плагина, который делает такую ​​вещь, является rsi.vim .
Питер Ринкер