写了一段elisp,如下,
(save-excursion
(goto-line 2)
(let ((found nil))
(while (and (not found) (<= (line-number-at-pos) 90) (not (eobp)))
(if (looking-at "^[[:space:]]*if(0){")
(progn (kill-line)(insert "if(1){")
(indent-for-tab-command)(setq found t) )
(if (looking-at "^[[:space:]]*if(1){")
(progn (kill-line)(insert "if(0){")
(indent-for-tab-command)(setq found t) ) )
)
(forward-line 1))
))
功能是在emacs中运行脚本后,检查脚本中的 if(0){ 修改成if(1){或者反过来。这样脚本运行数据就直接放脚本里了,不用另外找地方。
然而elisp没学好,为了简单方便,我直接kill-line,删除整行后在插入。结果我用了hs-hide-all代码折叠,运行后直接把代码给删了。
正确办法之一是用(replace-match "if(1){" nil nil nil 0)修改当前匹配,这样就安全了