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

Как вы выбираете целый столбец в режиме визуального блока?

Скажем, что у меня есть этот простой текст в (g) Vim:

a  b  c
a  b  c
a  b  c
a  b  c
a  b  c

после перехода в режим выбора визуального блока, как я могу выбрать весь третий столбец? Ctrl + V G выбирает весь текст. Я ищу ярлык для выбора целого выбора столбца, если таковой существует.

Спасибо.

4b9b3361

Ответ 1

G переходит к последней строке, но перемещает курсор в первую непустую позицию, если startofline или compatible (который включает опции startofline). Если вы хотите сохранить один и тот же столбец, установите nosol перед тем, как перейти в режим визуальных блоков, а затем нажмите G.

Из ручного ввода для startofline:

Когда "on" перечисленные ниже команды переместите курсор на первую незаполненную строку. При выключении курсор сохраняется в том же столбце (если это возможно). Это относится к командам: CTRL-D, CTRL-U, CTRL-B, CTRL-F, "G", "H", "M", "L", gg и к командам "d", "<; <" и " → " с оператором linewise, с "%" со счетчиком и с буфером изменений команд (CTRL- ^,: bnext,: bNext и т.д.).

Ответ 2

CTRL-V переходит в режим выбора блока (позволяет выбирать прямоугольные блоки текста). В gvim это конфликтует с ярлыком вставки Windows, поэтому вы можете использовать CTRL-Q.

К сожалению, CTRL-Q [G] не делает то, что вы хотите, поскольку движение [G] движется линейно по файлу, поэтому вам все равно нужно полагаться на использование подсчитанного движения [j]. Вы можете не знать, насколько велика величина файла, используя неприлично большое количество, например 9999. Таким образом, полная команда CTRL-Q [9999j].

Увы, я не знаю, как это избежать, чтобы избежать уродливого графа взломать.

EDIT: О, я быстро прочитал ваш вопрос и пропустил, что вы уже упоминали, что вы новичок в режиме визуального блока. Я думаю, это довольно бесполезный ответ, тогда, извините!

Ответ 3

Самый простой способ выбора колонки вы можете использовать плагин vis.vim

перейдите в визуальный режим, выберите столбец ctrl+v, затем вы можете делать с ним все, что вы хотите

Используйте V, v или Ctrl+V для визуальной маркировки некоторого региона. Затем введите :B cmd (эта команда будет выглядеть так :'<,'>B cmd)

Команда будет применена только к визуально выбранному региону.

Например:

Используйте ctrl-v чтобы выбрать столбец, а затем выполните замену только для этого столбца.

Ctrl-V..move.. :B s/pattern/becomes/

Используйте Ctrl-V, чтобы выбрать столбец, затем примените внешний фильтр только к этому столбцу:

Ctrl-V..move.. :B !sort

Ответ 4

Я уверен, что я не единственный, кто пришел сюда в поисках решения более общей проблемы. Скажи, что у меня есть:

Some text.

one two three
one two three
one two three
one two three
one two three
one two three

Some more text.

Следующий макрос выберет например. весь столбец 'two', когда курсор находится внутри него:

<C-v>iWmw{joO'woOmwoO}koO'w

Как это устроено

  • <Cv>iW визуальный блок, выбранный в Word (может, конечно, иметь разные макросы для iw, a" и т.д.)
  • mw установить отметку на правой границе
  • {j Перейти к началу абзаца

Предполагая, что вы начали где-то посередине, в этот момент ваш выбор будет выглядеть следующим образом, где верхний регистр представляет выбранные символы, а $ представляет курсор:

Some text.

$NE Two three
ONE Two three
ONE Two three
one two three
one two three
one two three

Some more text.

oO перемещает курсор в угол на той же стороне (слева), но на другом конце (внизу):

Some text.

ONE Two three
ONE Two three
$NE Two three
one two three
one two three
one two three

Some more text.

'w теперь вы получите обратно к правой границе:

Some text.

one TWO three
one TWO three
one TW$ three
one two three
one two three
one two three

Some more text.

oOmwoO}koO'w повторяет процесс перехода к нижней части абзаца.

Результат:

Some text.

one TWO three
one TWO three
one TWo three
one TWO three
one TWO three
one $WO three

Some more text.

Ответ 5

Если вы находитесь в начале первой строки, вы можете сделать:

ww ............... jump to the third column
Ctrl-v } ......... jump to the end of paragraph

Если после просто введите пустую строку:

gE ............... goes back to the end of third column