С курсором на N
о NAME
, я бы просто сделать следующее без особого ухода за игрой в гольф:
<C-v>}hhhhhhhh
Но плагин textobj-column делает именно то, что вы хотите. Волшебно.
Учитывая, что у нас есть текущие данные:
ID NAME AGE 1 Joan 29 2 Peterson 16 3 Hunt 47 4 Wenche 12 5 Kennedy 29 6 Lottie 31
И курсор является на N
ин NAME
, как я хотел бы идти о выборе текста, так что, если |
есть разделители визуального блока, выбор должен быть такой
ID |NAME | AGE 1 |Joan | 29 2 |Peterson| 16 3 |Hunt | 47 4 |Wenche | 12 5 |Kennedy | 29 6 |Lottie | 31
Конечный пробел после каждого элемента, чтобы соответствовать ширине, Peterson
не является необходимым, но мне нужен быстрый способ выделить текущий блок, если он существует.
С курсором на N
о NAME
, я бы просто сделать следующее без особого ухода за игрой в гольф:
<C-v>}hhhhhhhh
Но плагин textobj-column делает именно то, что вы хотите. Волшебно.
Вот один из способов сделать это:
control-v
для входа в режим визуального блока2j
чтобы перейти на две строки вниз к Peterson
записиe
чтобы переместить выделение блока в конец словаPeterson
4j
для перемещения выделения вниз по последним четырем строкамИзменить: Если вы действительно настаиваете на том, чтобы избежать «магических чисел», вы можете сделать что-то, как описано здесь: https://stackoverflow.com/questions/3736678/how-do-you-select-a-whole-column-in-visual- блок-режим
:set nosol
(чтобы G
команда не возвращалась к первой строке при выборе визуального блока)control-v
/P
(вы сказали, что нет магических чисел, но не запретили поиск букв - если пробел не имеет решающего значения, вы можете проигнорировать это)e
(перейти к концу слова)G
(переместить выделение блока вниз)Другие советы:
gv
v
используется для посимвольного визуального режима и V
для построчной, в то время control-v
как выше указано для блочного визуального режимаПолезные ссылки (кроме интернета):
Practical Vim
Дрю Нейла действительно хорошо написанаСуществуют сценарии, облегчающие эту задачу, но при условии, что вы хотите использовать raw vim, вот мой самый известный способ сделать это:
а. Убедитесь, что ваша последняя строка файла заполнена пробелами, что-то вроде этого:
"______________________________________"
,
затем перейдите к первой букве N в «Имя». Хит ctrl-v, w, 999999j
и колонка будет выбрана.
Последняя строка должна быть заполнена пробелами, если ваш файл заканчивается новой строкой, поскольку в визуальном режиме нельзя выбрать части файла, которые не были созданы. если последняя строка является жизнеспособным контентом, вам это не нужно. ctrl-v+w
выбирает слово, затем 999999j
просто берет курсор «вниз» на 99999 строк (или меньше, если файл меньше).
Примечание. Вы увидите, что это выделение всего столбца, и пробелы немного отличаются от того, что вы указали (но вы сказали, что это неважно). Насколько мне известно, если вы хотите, чтобы столбец был выровнен по концу самого большого слова, а не по началу следующего, вам нужно будет вручную найти самый большой размер слова, выбрать визуальную длину и затем выполнить что - то вроде 99999j
.
То же, что и ответ игончо, но без «магических чисел»
Ctrl-V, W, G
G идет прямо к последней строке файла, не разбивая '9' несколько раз