- Как отправить сигнал ESC в vim, когда мой ключ esc не работает?
- 5 ответов
- Vim застряла в режиме вставки
- Сочетания клавиш Alt не работают на терминале gnome с Vim
- Эта проблема
- Решение
- Как выйти из Vim если Esc не срабатывает? Не включается режим ввода команды [дубликат]
- 1 ответ 1
- How do I exit the Vim editor?
- 11 Answers 11
Как отправить сигнал 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 застряла в режиме вставки
Я использую Vim уже несколько месяцев через мой веб-хостинг (они разрешают доступ к замазке). Внезапно escape ключ стал не реагировать. Я не могу существовать вставки или любой другой режим, просто нажав escape. Я должен нажать, F1 который вызывает помощь в Vim и пинает меня в командном режиме.
Я уверен, что моя клавиша ESC на клавиатуре работает нормально, так как все мои сочетания клавиш Windows, которые используют клавишу ESC, работают нормально.
Я знаю, что это нелепый вопрос, и я уверен, что есть еще много вопросов, касающихся решения. Что мне действительно нужно, так это твердое руководство относительно того, с чего начать.
Вещи, которые могут помочь:
- Я использую vim через шпаклевку
- Я вхожу в систему с помощью Jailshell
- Я не root
Попробуйте использовать Ctrl-[ вместо Esc .
Что является результатом:
когда вы нажимаете Esc и Enter ? Должно быть «27». Каков результат нажатия Ctrl-V тогда Esc ?
Вы проверили все настройки в PuTTY, чтобы убедиться, что они разумны?
Вы используете Bash в удаленной системе? Посмотрите на вывод
и посмотрим, увидишь ли ты что-нибудь необычное. У вас есть файл с именем
/.inputrc ? Посмотрите на его содержимое, чтобы увидеть, если что-то необычное.
Посмотрите на себя
/.vimrc и посмотрите, все ли в порядке, тоже.
Я по ошибке нажал Ctrl + s и застрял в режиме вставки. Чтобы выйти из этого используйте Ctrl + q .
/.bashrc ). Тогда это нажатие клавиши будет доступно, чтобы быть связанным с чем-то еще. По умолчанию в Bash он привязан к forward-search-history (противоположность Ctrl-r). Ctrl-q (Bash quoted-insert ) также будет доступен.
/ .bashrc, если этот файл существует». .bash_profile выполняется только тогда, когда Bash является оболочкой входа в систему. «Как правило, ваш
/ .bash_profile содержит строку if [ -f
‘insertmode’ ‘im’ ‘noinsertmode’ ‘noim’
boolean (по умолчанию отключено)
Обеспечивает работу Vim таким образом, что режим вставки является режимом по умолчанию. Полезно, если вы хотите использовать Vim в качестве немодального редактора. Используется для | evim |.
[. ]
— Используйте CTRL-O для выполнения одной команды нормального режима | i_CTRL-O |). Когда это отображение, оно выполняется так, как будто «insertmode» отключен. Нормальный режим остается активным до тех пор, пока отображение не будет завершено. — Используйте CTRL-L для выполнения ряда команд в обычном режиме, затем используйте Esc для возврата в режим вставки. Обратите внимание, что CTRL-L курсор перемещается влево, как, например, когда «insertmode» не установлен. | i_CTRL-L |
Я предлагаю редактирование
/.vimrc добавить следующую строку:
У меня была эта проблема, но я понял, что это случайное изменение режима ввода SCIM на «Other — RAW CODE». Я изменил его обратно на английский / клавиатура и больше не было проблем.
Источник
Сочетания клавиш Alt не работают на терминале gnome с Vim
Я запускаю Vim на терминале гномов. Но сопоставления клавиш Alt не работают.
Например (это всего лишь пример):
Он отлично работает в GVim. Но когда я запускаю ту же команду с Vim в терминале gnome, она просто не работает.
Так что я думаю, что проблема с терминалом, верно?
Как я могу это исправить?
Правка: У меня установлена Windows 7 на той же машине, и с терминалом Windows она тоже отлично работает.
Эта проблема
Для эмулятора терминала есть два способа отправки Alt ключ (обычно называется мета-ключом, так как на реальных терминалах не было Alt). Он может либо отправлять 8-битные символы и устанавливать старший бит при использовании Alt, либо он может использовать escape-последовательности, отправляя Alt-a как a . Vim ожидает увидеть 8-битную кодировку, а не escape-последовательность.
Некоторые эмуляторы терминала, такие как xterm, могут быть настроены на использование любого режима, но терминал Gnome не предлагает никаких таких настроек. Честно говоря, в наши дни редактирования Unicode 8-битная кодировка не очень хорошая идея. Но escape-последовательности также не свободны от проблем; они не предлагают никакого способа различения значения j Alt-j против нажатия Esc с последующим j ,.
В более раннем использовании терминала, набрав Esc j был еще один способ отправить мета на клавиатуре без Meta ключ, но это не очень хорошо с использованием vi, чтобы выйти из режима вставить.
Решение
Это можно обойти, настроив vim для сопоставления escape-последовательностей с их комбинациями Alt.
Добавьте это к вашему .vimrc:
Alt-письмо теперь будет распознаваться как в терминале, так и в gvim. Настройки timeout используются для обхода неоднозначности с escape-последовательностями. Esc а также j отправленные в течение 50 мс будут сопоставлены с , более 50 мс будут считаться отдельными ключами. Этого должно быть достаточно, чтобы разграничить мета-кодирование и нажатие двух клавиш.
Если вам не нравится установка тайм-аута, который истекает для других назначенных последовательностей клавиш (по умолчанию через секунду), вы можете вместо этого использовать ttimeout . Время ожидания применяется только к кодам клавиш, а не к другим сопоставлениям.
Источник
Как выйти из 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 («сохранить текущий буфер и закрыть его»)
Источник
How do I exit the Vim editor?
I’m stuck and cannot escape. It says:
But when I type that it simply appears in the object body.
11 Answers 11
Hit the Esc key to enter «Normal mode». Then you can type : to enter «Command-line mode». A colon ( : ) will appear at the bottom of the screen and you can type in one of the following commands. To execute a command, press the Enter key.
- :q to quit (short for :quit )
- :q! to quit without saving (short for :quit! )
- :wq to write and quit
- :wq! to write and quit even if file has only read permission (if file does not have write permission: force write)
- 😡 to write and quit (similar to :wq , but only write if there are changes)
- :exit to write and exit (same as 😡 )
- :qa to quit all (short for :quitall )
- :cq to quit without saving and make Vim return non-zero error (i.e. exit with error)
You can also exit Vim directly from «Normal mode» by typing ZZ to save and quit (same as 😡 ) or ZQ to just quit (same as :q! ). (Note that case is important here. ZZ and zz do not mean the same thing.)
Vim has extensive help — that you can access with the :help command — where you can find answers to all your questions and a tutorial for beginners.
Pictures are worth a thousand Unix commands and options:
I draw this to my students each semester and they seem to grasp vi afterwards.
Vi is a finite state machine with only three states.
Upon starting, vi goes into COMMAND mode, where you can type short, few character commands, blindly. You know what you are doing; this isn’t for amateurs.
When you want to actually edit text, you should go to INSERT mode with some one-character command:
- i: go to INSERT in the place of the cursor
- I: go to INSERT mode at the beginning of the line
- a: append after the cursor
- A: append at the end of line
- o: open a new line below the current line
- O: open a new line in the place of the current line
Now, answering the question: exiting.
You can exit vi from EX mode:
- q: if you haven’t made any modifications, or saved them beforehand
- q!: ignores any modifications and quit
- wq: save and quit
- x: this is equal to wq
w and x accept a file name parameter. If you started vi with a filename, you need not give it here again.
At last, the most important: how can you reach EX mode?
EX mode is for long commands that you can see typing at the bottom line of the screen. From COMMAND mode, you push colon, : , and a colon will appear at the bottom line, where you can type the above commands.
From INSERT mode, you need to push ESC, i.e. the Escape button, going to COMMAND mode, and then: to go to EX mode.
If you are unsure, push ESC and that will bring you to command mode.
The robust method is ESC-:-x-Enter which saves your file and quits.
Before you enter a command, hit the Esc key. After you enter it, hit the Return to confirm.
Esc finishes the current command and switches Vim to normal mode. Now if you press : , the : will appear at the bottom of the screen. This confirms that you’re actually typing a command and not editing the file.
Most commands have abbreviations, with optional part enclosed in brackets: c[ommand] .
Commands marked with ‘*’ are Vim-only (not implemented in Vi).
Safe-quit (fails if there are unsaved changes):
- :q[uit] Quit the current window. Quit Vim if this is the last window. This fails when changes have been made in current buffer.
- :qa[ll] * Quit all windows and Vim, unless there are some buffers which have been changed.
Prompt-quit (prompts if there are unsaved changes)
- :conf[irm] q[uit] * Quit, but give prompt when there are some buffers which have been changed.
- :conf[irm] xa[ll] * Write all changed buffers and exit Vim. Bring up a prompt when some buffers cannot be written.
Write (save) changes and quit:
- :wq Write the current file (even if it was not changed) and quit. Writing fails when the file is read-only or the buffer does not have a name. :wqa[ll] * for all windows.
- :wq! The same, but writes even read-only files. :wqa[ll]! * for all windows.
- :x[it] , ZZ (with details). Write the file only if it was changed and quit, :xa[ll] * for all windows.
Discard changes and quit:
- :q[uit]! ZQ * Quit without writing, also when visible buffers have changes. Does not exit when there are changed hidden buffers.
- :qa[ll]! *, :quita[ll][!] * Quit Vim, all changes to the buffers (including hidden) are lost.
Press Return to confirm the command.
This answer doesn’t reference all Vim write and quit commands and arguments. Indeed, they are referenced in the Vim documentation.
Vim has extensive built-in help, type Esc :help Return to open it.
This answer was inspired by the other one, originally authored by @dirvine and edited by other SO users. I’ve included more information from Vim reference, SO comments and some other sources. Differences for Vi and Vim are reflected too.
Источник