vim отменить (удалить) символы, написанные imap! - PullRequest
5 голосов
/ 29 марта 2011

в vim, есть ли способ удалить блок текста, написанный ai (no) remap или iab?например, скажем, у меня есть

inoremap xx \ hat {x}

в моем файле .vimrc, я хочу иметь возможность удалить \ hat {x} с помощьюодно-два нажатия клавиш (но не ^ w или dB. У меня может быть два последовательных iab-элемента, состоящих только из текста, поэтому мне нужно иметь возможность вырезать abababcdcdcd в середине, если cdcdcd является iab, скажем, «cc»)

есть идеи?

Ответы [ 2 ]

2 голосов
/ 29 марта 2011

Наконец-то чистый раствор

inoremap xx ^Gu\hat{x}^Gu

(там Cg )

Больше никаких странных эффектов.Вы даже можете выбрать, хотите ли вы изолировать элемент отмены на обоих концах или просто в начале (оставьте завершающий ^Gu, если вы не возражаете против того, чтобы хет-х был отменен вместе с тем, что последовало за ним)

Теперь использованная мной информация об утилизации была, наконец, тривиальной:

:he undo|/break/;+3p

Вывод:

Чтобы сделать обратное, разбейте изменение на два блока отмены в режиме вставкииспользуйте CTRL-G u.Это полезно, если вы хотите, чтобы команда вставки была отменяемой по частям.Например, для каждого предложения.| i_CTRL-G_u |

1 голос
/ 29 марта 2011

Когда отмена отменяет последнюю вставку, я часто помещаю <Esc>a в начало моих отображений.

Например:

inoremap xx <Esc>a\hat{x}

Заставляет вас уйти и вернуться в режим вставки, чтобы отмена работала правильно. Если вы ошиблись, вы можете отменить правильно.

Я знаю, что это может быть безобразно и бессмысленно, но работает. Я хотел бы знать, есть ли лучшее решение "очистить" отмену.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...