fancy-narrow + symbol-overlay 替换局部字符,大家都怎么替换局部字符呢?

流程:narrow => symbol-overlay-put => symbol-overlay-rename => widen

string_replace

配合fancy-narrow-to-defun 和 fancy-narrow-to-region 使用效率更高,fancy-narrow没有对paragraph进行支持,加了一个函数

(defvar my-fancy-narrow-hook nil
  "my fancy narrow hook")

(defun my-fancy-narrow-to-paragraph ()
  "fancy narrow to paragraph"
  (interactive)
  (run-hooks 'my-fancy-narrow-hook)
  (save-excursion
    (fancy-narrow-to-region (progn (backward-paragraph) (point)) (progn (forward-paragraph) (point)))))
2 个赞

evil 选中一些行,然后执行 :s/regex/str/g 替换

1 个赞

multiple cusor有个dwim命令可以先选中defun范围内光标下的symbol,再按一下就是buffer内所有,然后替换即可,这个dwim命令也支持region里选中替换。还有个narrow方式是consult line或者consult ripgrep配合embark的export,在新开的临时buffer用ocurr edit或者wgrep来替换。 此外还有iedit包可以哟没用过,mc够我用了

1 个赞

built-in 的方式: mark region => query-replace-regexp

2 个赞

symbol-overlay 高亮选中后可以用 t 切换 scope,然后r 重命名。

2 个赞

:+1: 后面都试一下

query replace 要手动填写被替换的字符,如果字符较长感觉就比较麻烦了

感谢感谢,这个太好用了

效率提高了太多 :+1: string_replace1

这个可以通过 expand 补全,我平常也用 multiple cusor 多一点,query-replace-regexp 只用做补充。

狗哥的meow做这个也非常舒服,比如:case 3, case 4,相当优雅。