在Spacemacs/Emacs中如何将单行长字符串拆分为等宽多行字符串?
Emacs/Spacemacs 单行长字符串固定长度拆分操作方法
单次临时使用方法(无需修改配置)
适合偶尔需要拆分的场景,通过正则替换实现,仅处理选中的目标行,不会影响文档其他内容:
- 第一步:选中目标单行内容
- 原生Emacs:光标移到行首按
C-SPC,再按C-e跳到行尾即可选中整行 - Spacemacs Evil模式:普通模式下按
V即可快速选中整行
- 原生Emacs:光标移到行首按
- 第二步:按下
M-%启动查询替换功能,依次输入以下内容:- 匹配规则输入
.\{64\}(表示匹配连续64个任意字符,可按需修改数字调整拆分长度),回车确认 - 替换内容输入
\& C-q C-j(\&代表匹配到的64个字符,C-q C-j是插入换行符的快捷键),回车确认
- 匹配规则输入
- 第三步:按下
!批量执行选中区域内的所有替换,即可得到你要的拆分效果。
高频使用场景(自定义函数)
如果经常需要做这类拆分操作,可以把以下代码添加到Emacs配置文件(或Spacemacs的user-config代码块)中:
(defun split-current-line-by-length (len) "将当前行拆分为每行最多LEN个字符的多行" (interactive "n输入最大行长度: ") (save-excursion (move-beginning-of-line nil) (while (< (+ (point) len) (line-end-position)) (forward-char len) (insert "\n"))))
配置生效后,只需把光标移动到目标行,执行M-x split-current-line-by-length,输入拆分长度(示例场景输入64),回车即可自动完成拆分。
内容的提问来源于stack exchange,提问作者flow99
相关产品推荐
相关产品推荐

