В Vim (7.2) есть команда нормального режима r
для замены одного символа другим. Например, набор текста rX
заменит один символ под курсором X
и вернет вас в обычный режим.
Есть ли команда нормального режима, чтобы вставить один символ и затем вернуться в нормальный режим?
Ответы:
MelBurslan прав, что эта функция изначально не существует, но создание пользовательской команды на самом деле не способ ее создания. Я возился несколько минут и придумал это:
Который использует некоторую хитрость Vim, включающую «помещение» текста из регистра, в данном случае регистр «выражения». Выражение, подключаемое к регистру, - это «
nr2char(getchar())
», которое возвращает строку из одного символа.Причина, по которой я построил сопоставление таким образом, заключается в том, что получение пользовательского ввода "на полпути" сопоставления является сложным и может вести себя непредсказуемо; даже это отображение опустит курсор вниз в область состояния, ожидая, пока пользователь введет символ.
источник
Спасибо Джонни за этот потрясающий ответ в комментариях ниже:
Это сопоставляет Control + i для вставки одного символа, и делает это очень лаконично.
В вашем файле vimrc это будет выглядеть так:
Я изменил свое отображение, чтобы использовать пробел, и вы можете изменить свой на предпочитаемые ключи:
источник
Насколько я знаю, такой функции нет ни в одном широко распространенном воплощении редактора vi, но в vim есть возможность создавать собственные команды. Ранее это обсуждалось здесь: в этой теме
Вы можете создать собственную команду, выполняя то, что вы хотите.
источник
Простой способ сделать это - использовать команды Cut xи Put p. Скажите, что
*
это символ, который вы хотите вставить. Вставьте его, используя i * Esc. Затем нажмите x. Это сократит характер. Теперь вы можете нажать, pчтобы поставить одного персонажа. Если вам нужно вставить этот символ в 300 раз, вы можете набрать:300p
.источник