最近我放弃了行号,然后发现 evil 的 substitute 指令不再好用了。因为行号不再如之前般直观,所以输入诸如 :12,23s/just/example/gc
之类的指令时,我需要先通过 avy-goto-line 到达目标行(进行两次),获得行号后再执行以上命令。有点繁琐。
请问各位使用 avy 换行的是如何进行文本替换的?
最近我放弃了行号,然后发现 evil 的 substitute 指令不再好用了。因为行号不再如之前般直观,所以输入诸如 :12,23s/just/example/gc
之类的指令时,我需要先通过 avy-goto-line 到达目标行(进行两次),获得行号后再执行以上命令。有点繁琐。
请问各位使用 avy 换行的是如何进行文本替换的?
M-%
(query-replace
) 之类的 Emacs 内置功能,Emacs 手册里有专门介绍如何搜索和替换。
—— 来自一个不用 Vim/Evil/Avy/行号 的 Emacs 用户。
我的
(global-set-key (kbd "C-x f")
#'(lambda (from to)
(interactive "squery, then replace, from: \nsto: ")
(goto-char (point-min))
(query-replace-regexp from to)))
projectile-replace is an interactive autoloaded compiled Lisp function in ‘projectile.el’.
It is bound to M-m p R, C-c p r, SPC p R, .
(projectile-replace &optional ARG)
Replace literal string in project using non-regexp ‘tags-query-replace’.
With a prefix argument ARG prompts you for a directory on which to run the replacement.
Vim/Evil/Avy/行号 都不用,那么你进行buffer内跳转靠的是什么?
M-x swiper
swiper能限定在一块区域内吗?
(defun my-swiper (&optional p)
(interactive "P")
(if (not p)
(swiper (concat (thing-at-point 'symbol)))
(narrow-to-defun)
(swiper (concat "\\b"(thing-at-point 'symbol)"\\b"))
(widen)
)
)
你可以更改 narrow-to-defun 换成你想要的区域
我再次尝试了几遍,发现进入 visual 选好区域后,再进入ex模式,它自动帮你填充好了位置 :'<,‘>
,
直接继续输入 subtitute 的命令就可以了 :'<,'>s/just/example/gc
.
╮(╯▽╰)╭
这给了我灵感,也许我可以先在 visual 中选择好区域,然后通过 :
进行 narrow 并退出 visual 模式,以及进入 ex 模式,自动填充 :%
, 最后输入想要的命令 。
你可以尝试不用evil
如果你喜欢evil的按键 可以用hydra模拟
那样你可以有好几个模式
安装了很多包后,最后发现,单个文档里面文本替换查找等功能,还是原装的好用。
原来用得不多可能还是和按键绑定相关。原来我用的evil。切了xah-fly-key后,它默认把isearch-forward,query-replace等常用功能绑到好按的按键了。我发现原来原生的操作使用起来是这么爽。哈哈哈。
我现在常用的: