Я использую vim в течение некоторого времени, и знаю, что выбор блоков текста в визуальном режиме так же прост, как SHIFT + V и перемещение клавиши со стрелкой вверх или вниз по очереди, пока я не достиг конец блока текста, который я хочу выбрать.
Мой вопрос: есть ли более быстрый способ в визуальном режиме выбрать блок текста, например, с помощью SHIFT + V, за которым следует указать номер строки, в которой я хочу, чтобы выбор остановился? (например, через :35
, где 35 - номер строки, которую я хочу выбрать до - это, очевидно, не работает, поэтому мой вопрос состоит в том, чтобы найти, как можно сделать что-то похожее на это...)
Ответ 1
В дополнение к тому, что говорили другие, вы также можете расширить свой выбор с помощью поиска шаблонов.
Например, v / f o o будет выбирать из вашей текущей позиции в следующий экземпляр "foo". Если вы действительно хотели перейти к следующему экземпляру "foo" в строке 35, например, просто нажмите n, чтобы развернуть выделение до следующего экземпляра и т.д.
Обновление
Я не часто это делаю, но знаю, что некоторые люди широко используют метки для визуального выбора. Например, если я на линии 5, и я хочу выбрать строку 35, я могу нажать m a, чтобы поместить отметку a
в строке 5, затем : 3 5, чтобы переместить к строке 35. Shift + v, чтобы ввести визуальный режим линии, и, наконец, ` a, чтобы выбрать обратно, чтобы отметить a
.
Ответ 2
G Goto line [count], default last line, on the first
non-blank character linewise. If 'startofline' not
set, keep the same column.
G is a one of jump-motions.
V35G обеспечивает то, что вы хотите
Ответ 3
Vim - это язык. Чтобы действительно понять Вима, вы должны знать язык. Многие команды - это глаголы, а у vim также есть объекты и предлоги.
V100G
V100gg
Это означает, что "выберите текущую строку до и включая строку 100".
Текстовые объекты находятся там, где есть большая часть мощности. Они вводят больше объектов с предлогами.
Vap
Это означает "выбрать вокруг текущего абзаца", который выбирает текущий абзац и пустую строку после него.
V2ap
Это означает "выбрать вокруг текущего абзаца и следующего абзаца".
}V-2ap
Это означает "перейти к концу текущего абзаца, а затем визуально выбрать его и предыдущий абзац".
Понимание Vim как языка поможет вам получить лучший пробег.
После того, как вы выбрали вниз, вы можете комбинировать с другими командами:
Vapd
С помощью приведенной выше команды вы можете выбрать вокруг абзаца и удалить его. Измените d
на a y
для копирования или для c
для изменения или для p
для вставки.
Как только вы узнаете, как все эти команды работают вместе, вам в конечном итоге не понадобится визуально выбирать что-либо. Вместо визуального выбора и удаления абзаца вы можете просто удалить абзац командой dap
.
Ответ 4
v35G
выберет все из курсора до строки 35.
v
помещает вас в режим выбора, 35
указывает номер строки, к которой вы хотите перейти G
.
Вы также можете использовать v}
, который выберет все до начала следующего абзаца.
Ответ 5
Для выбора количества строк:
shift + v 9j - выберите 10 строк
Ответ 6
Shift+V n j
или Shift+V n k
Это выбирает текущую строку и следующие/предыдущие строки n
. Мне это очень полезно.
Ответ 7
v 35 j
текст добавлен для минимум 30 символов
Ответ 8
Текстовые объекты: http://vim.wikia.com/wiki/Creating_new_text_objects
http://vimdoc.sourceforge.net/htmldoc/motion.html#text-objects
Ответ 9
v%
выберет весь блок.
Играйте также:
v}
, vp
, vs
и т.д.
См. справку:
:help text-objects
в котором перечислены различные способы выбора букв, слов, предложений, абзацев, блоков и т.д.
Ответ 10
Вы всегда можете использовать антецедентные числа для повторения действий:
- В визуальном режиме введите 3 5 ↓, и курсор сдвинется вниз 35 раз, выбрав следующие 35 строк
- В обычном режиме:
- удалить 35 строк 3 5 d d
- вставить 35 раз 3 5 p
- отменить 35 изменений 3 5 u
- и др.
Ответ 11
Вы можете нажать vi}
, чтобы выбрать блок, окруженный скобками {}
, где находится ваш курсор.
Неважно, где вы находитесь внутри этого блока (просто убедитесь, что вы находитесь в самом дальнем). Также вы можете изменить {
на все, что имеет пару типа )
или ]
.
Ответ 12
} означает перемещение курсора в следующий абзац. поэтому используйте v}
для выбора всего абзаца.
Ответ 13
Для выбора всего в визуальном:
Тип Esc, чтобы быть уверенным, что он находится в нормальном режиме
:0
введите ENTER, чтобы перейти к началу файла
vG
Ответ 14
Это может пригодиться, чтобы знать:
Чтобы выбрать один и тот же набор строк, например, используйте 1v
Вы должны были сделать некоторые изменения, чтобы иметь возможность использовать 1v
, по-блочному или линейному.
Сегодня я увидел этот замечательный отзыв от здесь:
:5mark < | 10mark > | normal gvV
:5mark < | 10mark > | normal gv
Вы также можете использовать reset границы визуальных блоков:
m< .......... sets the visual mode start point
m> .......... sets the visual mode end point
Ответ 15
просто нажмите Shift v line number gg
пример: ваша текущая строка в строку 41
Просто нажмите Shift v 41 gg