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

Выбор визуального выделения в VIM

Во многих графических интерфейсах, когда я выбираю раздел текста и затем нажимаю кнопку Tab или Shift + Tab, выбранный раздел будет отступать или выходить.

В VIM я могу выбрать визуальный раздел, а затем нажать клавишу < или >, чтобы изменить отступ, однако, как только я нажму кнопку <, мой выбор будет очищен, поэтому я застрял, выбрав раздел снова и нажав < снова. Это становится очень раздражающим, когда я пытаюсь отступить что-то несколько остановок и хочу визуальной обратной связи.

Есть ли какие-либо входы и выходы в vim, сохраняя выбранный выделенный текст?

Есть ли трюк, чтобы повторно отобразить Tab и Shift + Tab, чтобы они действовали таким образом в визуальном режиме?

4b9b3361

Ответ 1

vmap <Tab> >gv
vmap <S-Tab> <gv

Ответ 2

Вы можете префикс числа, т.е. "2 > ", чтобы отступать две вкладки. Или вы можете использовать " > " для отступов один раз, затем "." снова отступать (это работает, хотя блок больше не выделяется). Если вы заходите слишком далеко, "u" отменит один шаг за раз.

Еще одна полезная команда - "gv" для восстановления последнего визуального блока, если вам нужно применить другую команду.

Ответ 3

Другой способ - выбрать блок и вставить отступ в начале строки, используя следующую последовательность:

  • ctrl+V + клавиши со стрелками для выбора блока.
  • I, чтобы переключиться в режим вставки так, чтобы вставленный текст был вставлен в начале выбора в каждой строке в выбранном блоке.
  • ctrl+T, чтобы увеличить отступ или ctrl+D, чтобы уменьшить отступ. Вы можете добавить любое количество таких отступов. Примечание: Отступ будет отображаться только в первой строке блока, но когда режим вставки завершен, отступ будет реплицирован на всех строках блока.

Ответ 4

Попробуйте использовать "." для повторения команды. Он запоминает диапазон, и вы можете использовать "u", чтобы отменить один уровень, если зайти слишком далеко. Конфигурация не требуется.

Ответ 5

Или вы можете перейти к ближайшей скобке и набрать =% в нормальном режиме - отступы от блока, покрытого скобой и соответствующей ей. Но я не уверен, как это полезно на языке, таком как Python.

Ответ 6

Следующая карта ключей работает как решение Брайана, Но также сохраняйте позицию курсора, связанную со словом.

" tap indent movement (use mark `m' for cursor position)
vmap <S-Tab>  mm<`m:<C-U>exec "normal ".&shiftwidth."h"<CR>mmgv`m
vmap <Tab>    mm>`m:<C-U>exec "normal ".&shiftwidth."l"<CR>mmgv`m

Ответ 7

Попробуйте } для 'отступ следующего уровня абзаца 1.

Ответ 8

Поскольку я отказался от vi до vim, я никогда не использовал > nor < еще раз. Я использую автоматическое отступы vim, которые могут быть явно вызваны с помощью =

Он отлично работает с движениями, такими как = a {, что даже более эффективно, чем =%

В противном случае, если one > недостаточно, просто переделайте его с помощью. или отмените изменение с помощью u.

Ответ 9

С визуальным выбором блока

Шаги:
Выберите блок (Ctrl + v)
тип c (изменить)
тип необходимого пространства
тип esc

введите описание изображения здесь