Выбор визуального блока в середине предложения по нескольким строкам в Vim - PullRequest
1 голос
/ 25 сентября 2019

Итак, давайте представим, что у меня есть этот код:

print $this_one   = "1";
print $this_tu    = "2";
print $this_three = "3";

, и я хочу выбрать среднюю часть, используя режим визуального блока:

$this_one   
$this_tu    
$this_three 

и, возможно, добавить кое-что и т. Д.но это не важно сейчас.

Проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как выбрать это.

Если бы это было что-то вроде:

print $this_one;
print $this_tu;
print $this_three;

Я бы просто нажал Ctrl + v, затем jj и $, и это было бы сделано.

Но что, если он будет посередине и слова окажутся в разных столбцах?

1 Ответ

1 голос
/ 26 сентября 2019

Блочное выделение с неровным правым краем действительно работает только в конце строк. В «середине» вы застряли с выбором прямоугольного блока, который затем включает конечные пробелы.

Если вы не переключитесь на совершенно другой подход (комментарии уже упоминают vim-multiple-cursors , который позволяет вам выбрать несколько мест, а затем вы можете интерактивно редактировать все из них параллельно), вы должны жить с этим.

В зависимости от команды, которая применяется к blockwiseвыделение, завершающие пробелы (или даже любые другие символы, которые вы случайно захватили) не обязательно наносят вред.

Чтобы добавить символ (скажем, $) ко всем средним словам в вашем примере, я бы использовал vis.vim plugin ':B команда для работы только с выделением, перемещение к концу слова движением E, затем добавление символа с помощью a$:

:'<,'>B normal! Ea$

При этом пробел сохраняется, и все справа от выделения перемещается на один символ вправо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...