Vim用一条空行替换多条空行

时间:2019-05-15 19:00:50

标签: vim

我正在寻找一种方法,用一条空行替换多条空行,并遇到以下一种解决方案:

: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 个答案:

答案 0 :(得分:6)

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

也就是说,命令joins将从空行到下一个非空之前的行之间的所有空行。