Как запустить команду без отмены визуального выбора в vim - PullRequest
3 голосов
/ 31 октября 2019

В vim, скажем, я делаю: viw (запускаю визуальный режим и выбираю текущее слово)

Затем я делаю :echo "abc" (возможно, мне придется стереть спецификацию диапазона, которая добавляется автоматическипри наборе : в визуальном режиме)

Выполнение команды echo отменяет визуальный выбор.
Как сохранить визуальный выбор даже после выполнения команды echo?

1 Ответ

3 голосов
/ 31 октября 2019

Визуальный выбор неизбежно теряется, когда вы входите в режим командной строки (для :echo), но Vim запоминает режим выбора, начальную и конечную позиции в '< и '> оценок. Команда gv позволяет быстро повторно выбрать предыдущий выбор;ср. :help reselect-Visual.

Некоторые люди предпочитают, чтобы выбор сохранялся (например, для сдвига строк с помощью < и >), и настраивал его с помощью пользовательских сопоставлений, добавляющих gvк исходным командам.

Для вашего заявленного варианта использования общих команд Ex, я не думаю, что это имеет смысл. Если вы просто ненадолго выходите из визуального режима в отображении (как вы пояснили в комментарии), gv совершенно верно. В качестве альтернативы, вы можете избежать выхода из визуального режима через :help :map-expression, сделать все как побочный эффект, а затем вернуть пустую строку, чтобы ничего не выполнялось. Однако, поскольку вам необходимо сохранить конечный визуальный столбец, необходимо обновить визуальный режим для обновления метки '>, чтобы это не сработало;вам действительно нужно временно выйти из визуального режима.

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