После того, как я почти каждый раз что-то печатаю прописными буквами, я забываю отключить capslock при возвращении в обычный режим. Затем я пытаюсь переместить курсор и в итоге объединить несколько строк и многое другое, чего я не ожидаю.
Можно ли настроить vim для отключения capslock при нажатии escape для перехода в обычный режим?
Если есть решения для конкретной ОС, меня интересуют решения, применимые к Linux.
normal-mode
DRS
источник
источник
Ответы:
Ответы на этот вопрос показывают, что это маловероятно - у Vim нет доступа к ОС для выполнения этого вызова.
Однако вы можете попробовать изменить свое поведение, чтобы Caps Lock не требовался. Это популярный ключ для сопоставления Ctrl, Escили Meta.
В Vim есть gUоператор для выделения выделенного фрагмента или движения в верхнем регистре, так что, возможно, вы могли бы печатать как обычно и использовать его потом. Также актуально: guв нижнем регистре и ~для переключения.
Есть также способы автозаполнения, которые могут уменьшить вашу потребность печатать
VERY_LONG_MACRO_NAMES
.источник
Я изменил свой capslock, чтобы быть ctrl, и я редко использую capslock больше. Однако, для vim, если мне когда-нибудь понадобится, у вас есть tpope / vim-capslock в качестве временного программного capslock для вас. Если вы используете это, должно быть довольно легко настроить autocmd для события
InsertLeave
и отключить capslock.источник
Я нашел способ автоматически отключить блокировку заглавных букв в обычном режиме (хотя он работает только в Linux).
Решения, которые были сделаны с помощью плагинов, не учитывают, что вы можете войти в обычный режим более чем одним способом (то есть из режима вставки в обычный режим), например из командного режима.
На самом деле нет события автокоманды, которое активируется при входе в нормальный режим, поэтому вместо этого я использовал
CursorHold
событие, которое активируется, когда вы не печатаете в обычном режиме.Вы устанавливаете время обновления на очень маленькое число, поэтому оно всегда будет активировано, прежде чем вы сможете набрать что-либо.
источник
Другой вариант заключается в переназначить ваш CapsLockTo Esc. Это отображение, которым я пользуюсь уже пару лет: оно CapsLockнаходится в домашнем ряду, поэтому его очень легко использовать, если вы касаетесь ввода текста. Это также способствует правильному использованию Vim, поскольку выход из режима вставки намного проще (клавиша ближе, чем Esc).
Его легко переназначить: Linux поддерживает это изначально, для этого есть небольшие приложения для Mac OS X и Windows. А некоторые дорогие клавиатуры даже имеют функцию, которая позволяет переназначать клавиши.
источник
В дополнение к ответу Avian Y, на самом деле есть автокоманда, которая активирует выход из режима вставки:
Это было именно то, что я искал ...
источник
На моем компьютере Apple я фактически реализовал эту функцию, используя Karabiner , который работал достаточно хорошо. К сожалению 10.12 сломал Карабинер, и с тех пор я не пытался его реализовать.
У меня так было с помощью клавиши Escape или клавиши Enter, отключенной заглавной буквы, если она была включена раньше.
Поэтому, когда вы используете macOS на 10.11 или ниже, вы, безусловно, можете это сделать (хотя не спрашивайте меня о настройках, у меня их больше нет).
В противном случае я бы пошел с предложенным
gU
. (Хотя я могу понять ваши обиды из-за невозможности использовать тот же метод, который вы использовали бы в любом другом текстовом редакторе)источник
В справочном руководстве vim есть довольно хорошее отображение, чтобы все слова в режиме вставки были заглавными:
Он использует ctrl-h, который обычно является просто клоном backspace, так что вы действительно ничего не теряете с этим отображением.
Caps Lock - это кошмар, когда вы находитесь в обычном режиме! Надеюсь, это поможет!
источник