怎么使括号内输入完内容后直接按TAB键将光标跳到括号外?

请问怎么设置在括号内输入完成后直接按TAB键可以将光标跳到括号外,不然按右方向键移动光标的话感觉右手移动幅度大耽误时间,如果用左手按TAB会快很多。。不知道在emacs 中怎么设置达到这种效果??

emacs 中的 tab 按键功能太多了,你可以用 C-f (ctrl+f) 来移动光标

1 个赞

感觉还是没有按个tab方便,在sublime text 中可以设置成在输入括号之后按tab跳出括号的。emacs 感觉也应该行啊。不过我不会🌞。 Btw,请教一下,在emacs 里面写R代码的时候sfift±(减号键)出来赋值符号<-。。可是发现下划线没法输了?怎么输下划线呢?

可以先按 C-q 再输入下划线

最好不要按照其它编辑器的习惯来用 emacs,而是习惯 emacs 的用法。习惯以后你会发现, 和你使用 emacs 的收益相比,别的编辑器的那些 feature 反而没有那么重要了。

如果是输入 ( 补全 ) 之后,立即 tab, 这时候还比较好判断:

(|)
 ^
  \—————— 光标在这里,按 tab 跳出,没有歧义

当你在括号里继续输入:

(foo|)
    ^
     \—————— 光标在这里,按 tab 有歧义:1-补全,2-跳出

如果在这种情况下选择的是tab补全, 不得不使用其它不方便的方式跳出了(我也认为tab比较方便)。

这样一来tab跳出的使用场景就少了一半。

如果正在编辑一个 snippet 展开的片段,情况变得更复杂了:

  • 补全
  • 跳出
  • 跳到下一个 snippet field

tab 按起来是方便,但是恐怕没有那么智能。 不知道其它编辑器是怎么处理这些问题的。

1 个赞

你的第二种情况在Elisp里面太多了,其他编辑器的配置文件并没有这么多括号,所以并不需要考虑歧义

1 个赞

多谢分析,好详细,学习了👍

话说,C-q怎么不行啊🌞。

你怎样使用 C-q 的?注意 C-q 本身并不是输入下划线,而是告诉 emacs 下面的输入要按原样输入,而不是调用绑定的命令。

我把跳出括号 绑定在 C-'