Подтвердить что ты не робот

Как перейти к началу/концу визуального выбора?

Есть ли движение для перехода к началу или концу визуального выделения? Я знаю o, в то время как в визуальном режиме чередуются между ними, но мне нужно уметь точно выбирать старт. Общая цель состоит в том, чтобы окружить визуально выбранную область круглыми скобками.


Основываясь на комментарии, я смог реализовать это, используя следующий макрос. Идея состоит в следующем:

  • <ESC> для выхода из визуального режима
  • `<, чтобы перейти к концу предыдущего визуального выделения
  • a) добавить закрывающие круглые скобки
  • <ESC> для выхода из режима вставки
  • `<, чтобы перейти к началу предыдущего визуального выделения
  • i(, чтобы вставить открывающиеся круглые скобки
  • <ESC>, чтобы снова выйти из режима вставки.

например:

map \q <ESC>`>a)<ESC>`<i(<ESC>

Основываясь на другом комментарии, у нас есть еще более сжатое решение,

map \q c()<ESC>P
4b9b3361

Ответ 1

Самый простой способ "окружить визуально выбранную область круглыми скобками" - это d elete it, i nsert () и P вернуть его в середине.

di()<ESC>P

Я предлагаю определить новую команду визуального режима .vimrc(например, "\ q" ) с этим:

:vmap \q di()<ESC>P

Обновить. Как было указано в @duckworthd, предыдущий сбой, когда последний char выбранной области является последним char в строке.

Новая версия: c помещает визуально выбранную область на () и P обратно в середину.

:vmap \q c()<ESC>P

Этот подход также работает с визуальными прямоугольными областями (<C-V>): it помещает "(" ") вокруг каждой строки блока

Ответ 2

Существуют две соответствующие встроенные метки, сохраняющие позиции первого и последние символы последнего визуального выделения в текущем буфере. Чтобы переместить курсор туда, куда указывают эти метки, используйте команд `< и `>, соответственно. (См. :help `>, :help `<.)

Ответ 3

Пока вы находитесь в Visual Selection нажмите o. Он изменит положение курсора на другой конец выделения. Затем o, чтобы вернуться назад.

Ответ 4

если вы просто хотите окружить визуальный отбор, уже проделана работа, а именно: tim pope, который написал этот плагин под названием surround. Он окружает слова или визуальный выбор разделителями по своему вкусу.

выберите свой визуальный выбор, скажем i like vim нажмите S), чтобы получить (i like vim) или S(, чтобы получить ( i like vim ), чтобы изменить это на [i like vim] type cs] (изменить окружение) и удалить ds], чтобы наконец получить i like vim.

Ответ 5

Если вы не можете использовать Surrond.vim, вот один из способов сделать это:

  • Сделайте свой визуальный выбор с помощью v или v.
  • Выйдите из него с помощью <Esc>.
  • Введите `>a)<Esc>, чтобы вставить закрывающую скобку после последнего символа выделения.
  • Введите `<i(<Esc>, чтобы вставить открытую круглую скобку перед первым символом выделения.