★ 问题
github中README.md的换行是需要将两行之间加一个空行, 参考Paragraphs and line breaks。
如果两行之间没有空行,则这两行会显示在一行里。例如:markdown内容如下:
### **♦ 2.1 编译相关的**
* **make (makefile)**
GNU Make Manual: https://www.gnu.org/software/make/manual/
GNU make中文手册: http://vdisk.weibo.com/s/uCRMpDBUxfXHq
阮一峰老师的 [Make 命令教程](http://www.ruanyifeng.com/blog/2015/02/make.html)
显示效果为:
我期望的效果是:(换行效果)
★ 解决方法
我的解决方法是,在需要换行的末尾加上<br>
。
需要加<br>
的行的特点是,都是缩进的行。
所以,使用正则表达式来给这些有缩进的行的行尾加上<br>
.
在VIM中,利用替换命令,加上正则表达式, 如下:
:81,$s/\(^\s.*\)$/\1 <br>/gc
拆解 | 解释 |
---|---|
: | VIM中,执行命令,以冒号开始 |
81,$ | 表示从81行开始,一直到最后一行。 |
s/<pattern>/<replacement>/ | 表示用<replacement> 替换掉<pattern> 。 |
gc | 表示global和confirm,global即全局替换,替换所有情况。confirm表示需要用户确认。 |
\(^\s.*\)$ | 这是替换命令s 中的<pattern> ,其中^ 表示一行的开头,\s 表示空白,.* 表示任意字符。$ 表示一行的结尾,\( 和\) 表示括号里的内容在后面要引用到。 |
\1 <br> | 这是替换命令s 中的<replacement> ,\1 表示引用前面括号中的内容。即把这一行的内容都保留,行尾加上<br> 。 |
整体的含义是,将81行到最后一行中的“以空白开头,之后带有任意字符的行”的末尾加上<br>
。
替换过程中的显示效果:
这样也会多出来一些行, 如下图中的黄色高亮的<br>
:
通过命令:%s/ <br>\(\n\n\)/\1/gc
,将多余的<br>
删除。
拆解 | 解释 |
---|---|
: | VIM中,执行命令,以冒号开始 |
% | 表示文件中所有的行,所有的位置 |
s/<pattern>/<replacement>/ | 表示用<replacement> 替换掉<pattern> 。 |
gc | 表示global和confirm,global即全局替换,替换所有情况。confirm表示需要用户确认。 |
<br>\(\n\n\) | 这是替换命令s 中的<pattern> ,其中<br> 就是字面意思,一个字符串而已。\n\n 表示2个换行。\( 和\) 表示括号里的内容在后面要引用到。 |
\1 | 这是替换命令s 中的<replacement> ,\1 表示引用前面括号中的内容,即两个换行符。 |
整体含义是,把<br>
后面连续跟着两个换行符的内容替换为两个换行符,即把多余<br>
去掉。
最终显示效果,请参考: https://github.com/galian123/MyCheatSheet/blob/master/README.md