我觉得,还是 Enter
方便, 比若说在 敲 Enter
的时候,确认当前光标 是否在 刚创建的 surround 内部,
如果是,就跳出这个surround ,如果不是 就直接换行。
这应该没有语言相关性吧,就比如你写文档的时候,用了双引号,然后输入完了想跳出继续写,只要Enter
一下就好
我觉得,还是 Enter
方便, 比若说在 敲 Enter
的时候,确认当前光标 是否在 刚创建的 surround 内部,
如果是,就跳出这个surround ,如果不是 就直接换行。
这应该没有语言相关性吧,就比如你写文档的时候,用了双引号,然后输入完了想跳出继续写,只要Enter
一下就好
如果是这样
func("xxx")
需要两个括号(一个括号 一个引号) 要怎么处理呢?
这个是个好问题 我觉得autopair能解决
比如写到第三个x
按Enter
光标走到又引号后面,再按Enter
光标走到右括号后面,再按Enter
换行
几年前刚转emacs时,我也有这样的需求,因为vim里的auto-pair插件有跳出最近surround功能。经过不断的探寻,我最后用了这个,语义上成对的都能跳,而且实现非常简单
最后一项做不到,因为常常在函数里,再按就跳出函数了
如果用回车跳出括号后 再次进入括号里 回车的行为是什么?
没人给弄 那就我来吧
跳出之后就不管了吧,那就是正常的 回车换行了
我不会写 lisp,只是用
这样行不行
(defun myh-tab ()
(when (looking-at "[])\">`'}]")
(forward-char)))
(advice-add #'indent-for-tab-command :after #'myh-tab)
(advice-add #'c-indent-line-or-region :after #'myh-tab)
我也有一样的需求,目前是用C-f,感觉还行,因为Ctrl改到了空格旁边,拇指按起来方便。
楼上的方法,看起来可行。明天试试!
可能是语言问题,OP没有“真的在括号里换行”这种场景吗
...(
)
...{
}
这种。
关于自动补全括号造成的问题,我发现的是,留在括号里面会使补上末尾的;
,
很麻烦。于是有了这个帖子: