Vim заменяет несколько пустых строк одной пустой строкой - PullRequest
3 голосов
/ 15 мая 2019

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

:g/^$/,/./-j

Я понимаю следующее:

g/   replace each occurrences
^$   start to end is an empty, basically empty line
,    replace empty line by comma
.    maybe repeat last command
-j   minus is go up and j is go down

Но я не понимаю, как точка и минус j работает в приведенном выше коде. Vim - довольно мощный инструмент, и я надеюсь, что понимание его синтаксиса поможет в дальнейшем.

Где можно найти документацию по минус j?

Как работает точка и минус j?

1 Ответ

6 голосов
/ 15 мая 2019
g    Run the command globally, for the entire file
/^$/ Start executing at an empty line…
,    …and continue executing to…
/./  …the first non-empty line (a line that contains
     regexp '.', i.e. any character)
-j   go up and join all selected lines

То есть команда объединяет все пустые строки от пустой строки до следующей непустой строки.

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