- Как отправить сигнал ESC в vim, когда мой ключ esc не работает?
- 5 ответов
- Новичок в vim: отображение ключа kj в не работает в терминале gnome
- 2 ответа
- Как выйти из Vim если Esc не срабатывает? Не включается режим ввода команды [дубликат]
- 1 ответ 1
- Vim: русская раскладка. Три способа
- Vim и переключение раскладок: о наболевшем
Как отправить сигнал ESC в vim, когда мой ключ esc не работает?
У меня возникла проблема с клавишей Esc , когда я хочу вернуться в интерактивный режим из режима вставки. Существует ли еще один ключ, используемый для освобождения режима вставки.
5 ответов
Несмотря на существующие существующие решения, обычное решение в Vim — переназначить ключи в конфигурации .vimrc . Фактически, у многих пользователей Vim есть более удобный доступный ключ, замененный на Esc . Популярные варианты: Ctrl + Введите или j j и т. Д.
Чтобы включить это, просто добавьте что-то вроде следующего в свой .vimrc и перезагрузите его /перезапустите Vim:
Ctrl — [ отправляет тот же символ в терминал как физический Esc ). Последний — просто ярлык для первого, вообще.
Если вы хотите использовать один ключ, как чистое решение nix (без сопоставлений Vim), вы можете определить другой ключ как Esc . Точно так же как пользователи Emacs перенаправляют CapsLock на Ctrl некоторые пользователи Vim (включая меня) remap CapsLock на Esc . Это работает для любого * nix, используя X11.
Используйте xev -event keyboard (а затем нажмите CapsLock ), чтобы получить код ключа для CapsLock (для меня это keycode 66). Затем вы можете использовать xmodmap для переназначения ключа:
Чтобы получить это при входе в систему, вы можете добавить выражения xmodmap в
/.Xmodmap следующим образом:
Хотя для второй части YMMV, поскольку не все диспетчеры отображают
/.Xmodmap . Вам может потребоваться добавить xmodmap .Xmodmap в .xinitrc на некоторых из них.
Вы можете попробовать Ctrl-C, который работает для меня и, на мой взгляд, проще, чем ESC. Однако я не уверен, что он включен по умолчанию.
Включен по умолчанию. Не нужно настраивать какие-либо настройки.
Вы перейдете в обычный режим, где вы можете сделать :q! or :wq .
Источник
Новичок в vim: отображение ключа kj в не работает в терминале gnome
Я только начал изучать Vim. Я использую Vim в gnome-terminal (на Ubuntu 14.04). Я хочу сопоставить ключи kj с Esc в моем файле vimrc. Я добавил следующие две строки в свой файл vimrc (
Вопрос 1: Я получил свой файл vimrc (даже перезапустил терминал), но когда я быстро набираю kj в режиме вставки, он просто набирает эти две буквы kj и не переходит в обычный режим. Я делаю что-то неправильно? Как правильно сопоставить клавишу Esc с чем-то другим?
Вопрос 2: Как мне отредактировать мой vimrc, чтобы сопоставить клавишу с заглавными буквами и Esc?
Для справки вот мой полный файл vimrc (без комментариев):
2 ответа
Раскладки режима вставки не будут работать, пока активен режим вставки, и он активен по умолчанию:
Вероятно, вам будет лучше удалить эту строку, чтобы режим вставки не был активен, и добавить простой способ включить его, когда вы этого захотите. Я использую это:
По умолчанию режим вставки выключен, и я могу легко переключить его с помощью ,p
Не совсем отвечаю на вопрос, так как это отображает CapsLock для выхода для всех приложений, а не только для Vim.
Я поместил этот сценарий в PATH где-нибудь как capswap с chmod + x . Пока вы не выйдете из системы, CapsLock больше не будет, а Esc будет там, где он должен быть для vi, возле левого мизинца.
Чтобы позволить Esc блокировать заглавные буквы (что я обнаружил, даже будучи программистом COBOL, редко, если вообще когда-либо, необходимо)
Между прочим, я привык называть это capswap, но на самом деле я давно удалил часть «подкачки», как в первом листинге, и просто запустил без CapsLocking. Ваши предпочтения могут привести к другому выбору. Первый сценарий дает эквивалент двух клавиш Esc.
Источник
Как выйти из Vim если Esc не срабатывает? Не включается режим ввода команды [дубликат]
Я знаю, что при использовании vim , чтоб выйти с сохранением, нужно нажать следующие кнопки, по одной: :wq
Я нажимаю на Esc и ничего не происходит, не открывается режим ввода команд
Вот так выглядит мой vim
После нажатия на Esc ничего не меняется и выглядит он также, нажимаю на wq я так понимаю, что внизу должны появиться эти буквы, но ничего не появляется, нажимаю Enter и опять ничего
Режим ввода команды просто не включается
Как это исправить? Что делаю не так?
Когда нажимаю Ctrl + ] получается вот так
Если нажимаю Ctrl + c ничего не происходит
1 ответ 1
программа vim может находиться в нескольких разных режимах работы (mode).
из любого другого режима, нажав клавишу esc , можно вернуться в так называемый основной, умолчальный, «нормальный» режим (normal mode) (также встречается название «режим навигации»).
чтобы ввести команду (например, упоминаемую вами wq — «write and quit»), надо переключиться в командный режим (command mode), для чего в нормальном режиме следует ввести символ «двоеточие» — :
на изложенном и основывается упомянутая вами универсальная (т.е., не зависящая от текущего режима работы) мини-инструкция по «сохранению и выходу»:
- esc — из любого режима вернуться в нормальный
- : — переключиться в командный режим
- w + q + enter — выполнить команду wq («сохранить текущий буфер и закрыть его»)
Источник
Vim: русская раскладка. Три способа
Как я понимаю, есть три способа работать с русской раскладкой.
Первый способ: использовать langmap. Этот способ, вроде бы, устарел, никаких профитов не приносит.
Там 100500 реализаций, у каждого пользователя своя, но вот официальная:
Второй способ: использовать keymap. Вроде самый нормальный на сегодня (переключается через Ctrl-^).
Третий способ: использовать плагин https://github.com/lyokha/vim-xkbswitch. Есть ли там профиты? Не знаю. Про него было несколько тредов, вот один из: Vim. Назначение горячих клавиш кириллицей.
Слишком сложно. Можно сделать так чтобы при входе в командный режим английская раскладка в ловеркейсе включалась (т.е. капслок тоже отключался)? Глобально в иксах, в терминале? По выходу чтобы возвращалось как было (независимо от того менял ли ты язык или нет). Очень уж напрягает.
Заодно как удалить капслок? У меня на капслоке переключение раскладок, шифт+капслок включает капслок, но от него больше вреда чем пользы.
Способ 4 — не работать в normal mode с русской раскладкой. Повесь ее на «зажатый правый Alt» или «зажатая педаль» и проблемы как рукой снимет.
В смысле? Ну вот ты набирал комментарий в коде на русском языке. У тебя раскладка русская. Нажимаешь Escape чтобы перейти в Normal mode. И она по-прежнему русская.
На CapsLock у меня Ctrl, раскладки не переключаются, а включаются: En — левый win, Ru — правый (menu). Esc и Tab поменяны местами.
набирал комментарий в коде на русском языке. донабрал. перед или после нажатия Escape отпустил Alt, ибо уже не набираешь комментарий в коде на русском языке.
основной плюс: русскость твоей раскладки в таком способе «переключения» становится stateless и равной зажатости Altа. это довольно быстро прошивается в подкорку и проблемы подобной сабжевой исчезают на корню
основной минус: риск развития болезни де Кервена или аналогичного RSI, если хреново выбрал кнопку для зажатия
способ с langmap самый быстрый и простой, используй его и не парься.
для переключения в vim 8 добавили event для cmd
au CmdLineEnter * :call job_start(‘xkb-switch -s us’)
и CmdLineLeave соответсвенно.
Ну я понял, нет, мне это точно не подходит.
Ну хз. Как по мне — каша из букв, которая на некоторых юзкейсах еще и не работает.
Способ 4 — не работать в normal mode с русской раскладкой
Я считаю, ты ошибаешься, это способ №1.
не работать в normal mode с русской раскладкой
translating these special characters to the original meaning of the key (:help langmap)
ошибочно считаешь, че.
Не может быть. langmap я пробовал, не пошло, убрал. Гораздо проще оказалось «не работать в normal mode с русской раскладкой», так что этот способ №1, а не 4.
Третий способ (xkbswitch) — наилучший вариант для кириллицы, первые два имеют свои камни и бока, нет времени объяснять.
vim-xkbswitch если кто на Ubuntu 18.04 использует, напишите, как ставили. А то у меня не работает, пользуюсь keymap
Первый и второй способ пробовал по удобству сравнивать?
Если нужен только линукс, то наверное лучший способ. Я использую для переключения kbdd и для этого у меня свой велосипед, меняющий раскладку по d-bus.
Второй способ хорош тем, что работает на любой платформе.
Я придумал такой, достаточно универсальный способ решения проблем переключения, который годится на случай, если кириллица в тексте преобладает. Он состоит в том, что можно вводить латиницу в кириллической раскладке, удерживая нажатым пробел. Чтобы ввести пробел, нужно, соответственно, нажать пробел и отпустить его.
Правда, реализовать его удалось только для частного случае моего debian-а и моего lxde. И только для иксов, локально (не пробовал всякие удалённые подключения).
ваши замечания приветствуются. Надо сразу сказать, что раскладка не была заточена на вим, который я знаю на уровне i что-то напечатать / что-то поискать Esc :wq! .
Конкретно для ввода этих команд пришлось помучаться, потому что двоеточие находится на цифре 6 (как в русской раскладке), и её нельзя ввести в английской с пробелом. Прямой слеш также вводится с шифтом. Т.е. всё равно неудобно. Может быть, можно сделать какой-то аналог, более заточенный под Вим.
Источник
Vim и переключение раскладок: о наболевшем
Всем привет. Я достаточно давно пользуюсь редактором Vim для редактирования очень разных текстов: правки конфигов, написания кода, в качестве внешнего редактора в браузере и почтовом клиенте…
Редактор почти идеален, но было одно маленькое «но». В частности, бесило переключение раскладки. Недавно в личной беседе зашла речь о лежащих на пути использования Vim граблях, и решил я набросать эдакие «заметки на полях».
Казалось бы, ну что там такого: нажал сочетание, вводишь латиницу, нажал еще раз — кириллицу. Однако, в нормальном режиме, пребывание в котором занимает как минимум 80% времени, накладываются свои отпечатки. Ладно, про langmap, думаю, знают все.
И можем выполнять команды в нормальном режиме с кириллической раскладкой. Правда, для ввода команд через по-прежнему требуется переключить раскладку, что бесило.
Тогда я вспомнил, что редактор имеет собственную переключалку.
Более детально прием описывался, например, здесь.
Вроде бы, проблема решилась: раскладка переключается только в режиме вставки, а команды вводятся латиницей. Но вновь проблема: встроенная переключалка ну очень сильно конфликтует с иксовой. Да и дефолтное сочетание не особо эргономично.
Отключать иксовую и полностью полагаться на Vim? В принципе, на это можно было пойти, но очень не хотелось. Вызывать редактор, для набора кириллических названий в терминале показалось мне некоторым перебором. Какое-то время пользовался, путался и матерился.
Так дело не пойдет, снова в гугл. Нашел интересную статью Храброва Дмитрия DeXPeriX о написанном им и Алексеем Радковым плагине vim-xkbswitch.
Вкратце, плагин делает следующее: при переходе в нормальный режим, переключает общесистемную раскладку (через xkb-switch, который должен быть установлен в системе) на латиницу, запомнив текущую раскладку, а при переходе в режим вставки, переключает на запомненную. Сказать, что я был рад — не сказать ничего. Огромная благодарность авторам за то, чего так не хватало все эти годы.
Однако, в процессе эксплуатации, столкнулся-таки с некоторыми трудностями. Зашел как-то на свой компьютер по ssh:
Сразу на плагин не подумал, были мысли о посыпавшемся жестком диске, сбойнувшей файловой системе и тому подобных «приятных» вещах… В общем, xkb-switch при неустановленной переменной DISPLAY выпадает в segfault, а следом за ним и плагин, унося за собой и vim.
В качестве решения, можно проверить задана ли переменная и, только в случае успеха, активировать плагин. Выглядит это примерно так:
После этого вылеты прекратились. Если хочется иметь функционал плагина при редактировании по ssh, то нужно подключаться с поддержкой X-forwarding’a, с ключами -X или -Y.
Надеюсь, статья поможет сохранить немного нервных клеток.
Источник