如何将选中的单词用引号或者括号包含起来?

谢谢你的回复,我是用 spacemacs 的, evil-surround 这个怎么使用啊?

能说说如何使用吗?

参考 GitHub - emacs-evil/evil-surround: you will be surrounded (surround.vim for evil, the extensible vi layer) 注意 Spacemacs 将 visual-state 中 S<textobject> 改成了 s<textobject>

不好意思,再问一句,这个命令是在evil 的 visual-state 中 S 命令不就直接删除整行了吗?不知道如何操作 :sweat_smile:

Spacemacs 改成小写 s 了,我刚刚提了呀,其他和上面的 usage 应该一样了

小写 s 在visual-mode Evil 下也是 删除单个字符, 你说的 visual-state 是emacs visual-state 是吗?

You can surround in visual-state with S<textobject> or gS<textobject> . Or in normal-state with ys<textobject> or yS<textobject> .

你要么选中一段,按 s 加符号来添加;要么 ys<textobject> 再加符号

1 个赞

我试过了,就是直接操作就好了,Evil visual mode , 选中 s + "符号” 非常感谢。 谢谢你!

懒猫的 awesome-pair 挺好用的。

2 个赞
1 个赞

这功能原生electric-pair-mode不就支持吗?

1 个赞

多谢各位的建议!!!

是的,原生的 electric-pair-mode 特别好用。直接选中,然后输入符号即可。而且支持自定义。尤其还能支持中文的一些特殊括号。比如「」,【】,〔〕,[]等等。

awesome-pair-wrap-double-quote 是你想要的功能

Emacs 默认的选中是 C-SPACE 这个与mac os 的 spotlight 冲突,如何改比较方便啊?我一直使用evil mode 的

还可以按 Ctrl-Shift-@ 我一直是按这个,因为 Ctrl-Space 以前和Fcitx 启动键冲突。(虽然现在不用这个按键了,但是习惯保留下来了。)

多谢,有点复杂 :grinning:

我一直用 M-m

刚才使用了一下 evil-surroundcs<old-char><new-char> 效果不错

但是如果停在当前要被替换的字符上,能不能自动获取这个字符,就只用输入新字符了 像cs<new-char>

或者在Surround里面 自动替换最近一层的 surround 符号?