Vim: вставити порожній рядок над поточним рядком (не відкривати, тобто без входу в режим Вставка)


21

чи є спосіб вставити новий рядок над поточним, не відкриваючи рядок (так, не входячи в режим вставки)? Тобто, як «О», але без відкриття.


2
Що означає "відкриття рядка"?
Маттео Ріва

"відкриття рядка" означає перехід у звичайний режим для вставки режиму, що відбувається, коли ви натискаєте "O" (о).
tmadsen

Відповіді:


9

Я використовую плагін Тіма Попа безперешкодно, який має команду спеціально для цієї мети:

[<space>

І якщо ви хочете додати пробіл після рядка, на якому ви перебуваєте:

]<space>


29

Визначення Вашого запиту O.

Логічно при вставці нового рядка вище O.

Щоб вставити перед курсором: i
Після: a
Перед рядком (додому): I
Додайте в кінці рядка:A

Найближчим, я думаю, ти прийдеш, Iякий поставить курсор на початок рядка.


Можливо, мені було не ясно. Сценарій такий: я перебуваю в звичайному режимі і хочу вставити порожній рядок вище того, на якому я зараз перебуваю, залишаючись у звичайному режимі. Натискання "O" переводить мене в режим вставки. Можливо, немає ніякого способу це зробити, і це нормально, я просто подумав, що запитаю :)
tmadsen

3
Просто нанесіть на карту,m`O+Esc`
Josh K

1
Гарна ідея, не вважала цього. Зробив: noremap <leader> O O <ESC>
tmadsen

2tmadsen: Ви можете відобразити цю карту <yourkey> O <ESC>
Dzung Nguyen

9
:h append()

Він не перемістить курсор, він дозволить вставити скільки завгодно рядків (порожніх чи ні), і він не змінить попередню позначку позиції.

call append(line('.')-1, '')

Так, це +1 акуратно! / Мені зраджує свою vimrc
Акіра

Що ж, це мало кілька переваг, коли справа доходить до сценаріїв. Вводити інакше трохи зайвого.
Люк Ермітт

+1 за рішення, яке працює незалежно від того, як було встановленоformatoptions
Міхея Сміт

5

Ви можете картографувати будь-який ключ або послідовність клавіш

m`O<ESC>``

це вставляє порожній рядок над поточним, що підтримує вас у звичайному режимі та без зміни положення курсору.


тож командою для відображення цього в Alt-O було б: map <Mo> m`O <ESC> ``
K Robinson

Це правильно.
Маттео Ріва

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.