Чи є спосіб вставити один символ, а потім вийти з режиму вставки?


10

Коли я переглядаю текст і, наприклад, додаю зворотні позначки навколо певних слів чи лапок чи будь-чого іншого, це дратує те, що мені потрібно натискати Esc або Ctrl- [після кожної вставки. Вставки (і додатки) різні, тому .не дуже допомагають.

Чи є щось подібне до того, rщо повертається в звичайний режим після одного символу, але використовує режим вставки замість режиму заміни?


3
Вам, можливо, варто розглянути можливість використання (або розширення) плагіна vim-surround для того, щоб працювати над текстом більш змістовно .
VanLaser

Відповіді:


11

Якщо немає (я не дивився), ви можете використовувати це відображення у вашому .vimrc:

nnoremap <C-I> i <ESC>r

Він iвводить місця, розміщує простір, ESCмавпи і починає місце з однієї літери r. Це відображається на CtrlI.

Це злом, і залишить місце для підвішування, якщо ви натиснете на втечу, перш ніж набрати лист - але це краще, ніж нічого!


1
Непогано ... Я, мабуть, використаю це, якщо ніхто не придумає нічого кращого. :)
Wildcard

2
@Wildcard Я не усвідомлював, скільки я насправді зіткнувся з цим випадком використання, не усвідомлюючи цього. Добре запитання :) Я також додав його до власного vimrc.
Qix - МОНІКА ПОМИЛИЛА

2
Я витратив більшу частину дня, виправляючи купу відміток. Курсиви, вбудований код, відступи заголовка, гіперпосилання ... всі вони вставляють один символ. :) Насправді ваше рішення ідеальне; Я зараз почну його використовувати.
Wildcard

2
Недолік: Це не повторюється за допомогою .команди. :(
Wildcard

1
@Wildcard, на жаль, після невеликого дослідження, не існує способу створити гілку для повторення вручну, .якщо ви не використовуєте repeat.vim.
Qix - МОНІКА ПОМИЛИЛА

0

Щоб вставити знак у кінці слова (замість місця курсору), використовуйте

nnoremap <C-a> a <ESC>r

Це карти на Ctrl + a, ви можете відобразити його на будь-що інше, звичайно.

У мене є два в моїх, .vimrcтак що я не поспішаю сильно :)

" Insert char at cursor position
nnoremap <C-i> i <ESC>r
" Append char after cursor position
nnoremap <C-a> a <ESC>r
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.