Emacs以所见即所得的方式插入换行符
最近碰到一个很小众的需求, 就是在Emacs中以所见即所得的方式给一个段落填充换行符, 查阅了Emacs自带的各种填充换行符的方式都找不到符合这个要求的. 我需要的是把在某个frame宽度下形成的auto wrap格局变成对应的hard wrap格局.
例如之前是这样
格式化之后的效果是
如果我们希望将这个很长的行黏贴到网页中, 但是又不希望被浏览器自动换行, 想要保持一个整齐和一致的外观, 就可以用这个格式.
如果Emacs和浏览器都使用等宽字体, 而且在网页中以pre标签的方式来显示的话, 就可以做到所见即所得.
下面是ELISP代码.
(defun insert-new-line-wysiwyg () (interactive) (beginning-of-line) ; if condition is met we do the following two actions ; condition: the cursor pos less than the end of current line (let ((i 0)) (while (< (+ i (point)) (line-end-position)) (next-line) (newline-and-indent) (setq i (+ i 1)) ) ) )
将光标至于长行内部的任意位置, 然后M-x执行这个函数即可格式化.