Как выбрать целую строку для движения в Vim?

Недавно я начал использовать плагин "surround". Я понял, что не знаю, как окружить текущую строку. Я имею в виду, что ysap<p> окружает абзац, а ysaw<p> окружает слово. Очевидно, dw удаляет слово, а das удаляет предложение. dd удаляет строку, однако, вторая d не является выделением, я боюсь. Итак, ys??<p> для строки?


person huoenter    schedule 18.12.2017    source источник
comment
Примечание: этот вопрос, похоже, касается плагина surround.vim.   -  person Amadan    schedule 18.12.2017


Ответы (2)


То, что вы ищете, это движение _.

Ответ Райана также правильный, dd - это более простая для ввода версия d_, и многие команды имеют эту оптимизацию.

Как оказалось, у surround.vim он тоже есть (спасибо, Райан!) и немного жульничает.

Как вы можете видеть, :h _ на самом деле ссылается не на текущую строку, а на первый непустой символ в строке [count] -1 вниз. Это поведение, которое использует dd и т. д. Но это не совсем то, что мы хотим в вашем случае использования, ys_ на самом деле даст вам это:

"
line
"

Вместо этого:

"line"

Таким образом, плагин surround.vim немного «обманывает», реализуя команду yss, которая не работает как dd, cc или yy, но работает для своего варианта использования.

Итак, чтобы ответить на вопрос, как в заголовке: _ - это общее решение.

Если вы просто ищете surround.vim, используйте ответ Райана

person Doktor OSwaldo    schedule 18.12.2017

Повторите s (yss), например cc, dd, yy.

person Ry-♦    schedule 18.12.2017