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

比如说,写代码的时候,写了一行log,这时候忘了加引号,如何去选中log信息,然后用双引号把他们包含起来?

又或者,先写了一部分逻辑,然后如何将他们选中然后用 小括号,或者 大括号 包裹起来?

否则就要手动在开始和结尾的地方加上左括号,和右括号,这个非常麻烦。

不知道大家有什么好办法吗?

evil 的话有个 evil-surround 的包,emacs 不太清楚

smartparens 应该是可以做到的

谢谢你的回复,我是用 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 启动键冲突。(虽然现在不用这个按键了,但是习惯保留下来了。)