我想做一些类似填充区域的事情,除了我想选择一个矩形区域并只将文本包装在其中,并让它保持在矩形范围内。有没有办法做到这一点?
问问题
362 次
1 回答
7
编辑:啊,我知道我以前遇到过这种能力。
中的矩形编辑功能cua
提供了此功能。
所以首先启用cua-selection-mode
. 这是 CUA 中的好东西,无需更改复制/剪切/粘贴键,因此您可能希望它永久启用:
(cua-selection-mode 1)
然后C-RET标记一个角,将点移动到对角,并C-q照常进行填充。C-RET再次退出矩形模式。
CUA 的矩形编辑非常棒。在 的评论中阅读它M-x find-library
RET cua-base
RET。查找“CUA 矩形支持”标题。
原答案:
(defun my-fill-rectangle (start end)
"`fill-region' within the confines of a rectangle."
(interactive "*r")
(let* ((indent-tabs-mode nil)
(content (delete-extract-rectangle start end)))
(goto-char start)
(insert-rectangle
(with-temp-buffer
(setq indent-tabs-mode nil
fill-column (length (car content)))
(insert-rectangle content)
(fill-region (point-min) (point-max))
(goto-char (point-max))
(move-to-column fill-column t)
(extract-rectangle (point-min) (point))))))
于 2012-06-13T06:51:56.443 回答