Я уже давно использую vim и знаю, что выделять блоки текста в визуальном режиме так же просто, как SHIFT+V и перемещать клавишу со стрелкой вверх или вниз построчно, пока не достигну конца блока текста, который я хочу выбран.
У меня вопрос - есть ли более быстрый способ в визуальном режиме выделить блок текста, например, с помощью SHIFT+ Vс указанием номера строки, в которой я хочу остановить выделение? ( :35
например, где 35 - номер строки, которую я хочу выбрать до - это, очевидно, не работает, поэтому мой вопрос заключается в том, чтобы найти способ сделать что-то похожее на это ...)
v%
илиv/pattern
или что - то еще?V35G
будет визуально выбирать из текущей строки в строку 35, а такжеV10j
илиV10k
будет визуально выбирать следующие или предыдущие 10 строкnnoremap <Space> V
. В режиме визуальной линии просто щелкните правой кнопкой мыши, чтобы определить выделение (по крайней мере, в Linux это так). Во всяком случае, более эффективно, чем с помощью только клавиатуры.Ответы:
В дополнение к тому, что сказали другие, вы также можете расширить свой выбор, используя поиск по шаблону.
Например, v/fooвыберете из вашей текущей позиции следующий экземпляр «foo». Если вы действительно хотите перейти к следующему экземпляру «foo», например, в строке 35, просто нажмитеn чтобы расширить выделение до следующего экземпляра, и так далее.
Обновить
Я не часто это делаю, но я знаю, что некоторые люди широко используют метки для визуального выбора. Например, если я нахожусь в строке 5 и хочу выбрать строку 35, я мог бы нажать, maчтобы поместить метку
a
в строку 5, затем :35перейти в строку 35. Shift+, vчтобы перейти в визуальный режим, и, наконец, `aвыбрать обратно, чтобы отметитьa
,источник
v/foo/e
.e
Означает «конец» подходящий шаблон.v
i
w
. Если вы хотите выбрать текущий непрерывный не пробел, используйтеv
i
Shift
+w
. Разница будет в том, что когда здесь будет курсорMyCla|ss.Method
, первое комбо выберет,MyClass
а второе выберет все.v i w s
позволяет эффективно выполнять операцию «замены».V35G достигает того, что вы хотите
источник
Vim это язык. Чтобы по-настоящему понять Vim, вы должны знать язык. Многие команды являются глаголами, и у vim также есть объекты и предлоги.
Это означает «выбрать текущую строку до 100 включительно».
Текстовые объекты - это то, в чем заключается сила. Они вводят больше объектов с предлогами.
Это означает «выбрать вокруг текущего абзаца», то есть выбрать текущий абзац и пустую строку после него.
Это означает «выбрать вокруг текущего абзаца и следующего абзаца».
Это означает «перейти к концу текущего абзаца, а затем визуально выбрать его и предыдущий абзац».
Понимание Vim как языка поможет вам получить максимальную отдачу от него.
После выбора вниз вы можете комбинировать с другими командами:
С помощью приведенной выше команды вы можете выделить вокруг абзаца и удалить его. Замените на
d
a,y
чтобы скопировать или a,c
чтобы изменить или на,p
чтобы вставить.Как только вы поймете, как все эти команды работают вместе, вам в конечном итоге не нужно будет ничего визуально выбирать. Вместо того, чтобы визуально выбирать, а затем удалять абзац, вы можете просто удалить абзац с помощью
dap
команды.источник
v35G
выберет все от курсора до строки 35.v
переводит вас в режим выбора,35
указывает номер строки, которую вы хотитеG
перейти.Вы также можете использовать,
v}
который будет выбирать все до начала следующего абзаца.источник
Для выбора количества строк:
shift + v 9j - выберите 10 строк
источник
:set rnu
Shift+V n j
илиShift+V n k
Это выбирает текущую строку и следующие / предыдущие
n
строки. Я нахожу это очень полезным.источник
V 35 J
текст добавлен не менее 30 символов
источник
v%
выберет весь блок.
Играть также с:
v}
,vp
,vs
И т.д.Смотрите помощь:
:help text-objects
в котором перечислены различные способы выбора букв, слов, предложений, абзацев, блоков и т. д.
источник
Текстовые объекты: http://vim.wikia.com/wiki/Creating_new_text_objects
http://vimdoc.sourceforge.net/htmldoc/motion.html#text-objects
источник
Вы можете нажать,
vi}
чтобы выбрать блок, заключенный в{}
квадратные скобки, где находится курсор в данный момент.На самом деле не имеет значения, где вы находитесь внутри этого блока (просто убедитесь, что вы находитесь во внешнем блоке). Также вы можете изменить
{
на все, что имеет пару, как)
или]
.источник
Вы всегда можете просто использовать номера предшествующих для повторения действий:
источник
просто нажмите Shift v line number gg
пример: ваша текущая строка на строку 41 Просто нажмите Shift v 41 gg
источник
} означает переместить курсор к следующему абзацу. Итак, используйте,
v}
чтобы выбрать весь абзац.источник
Для выбора всех в визуальном: введите Esc, чтобы убедиться, что вы находитесь в нормальном режиме
введите ENTER, чтобы перейти к началу файла
источник
gg
в обычном режиме, чтобы перейти к первой строке также.Это может пригодиться, чтобы знать:
Например, чтобы выбрать одинаковое количество строк, используйте
1v
Вы должны были внести некоторые изменения, чтобы иметь возможность использовать их по1v
блокам или по линиям.Сегодня я увидел этот удивительный совет отсюда :
Вы также можете сбросить границы визуального блока следующим образом:
источник
Я использую это со сгибом в режиме отступа:
v открыть визуальный режим в любом месте блока
zaza включить его дважды
источник