Emacs,在React尖括号中前进和后退

时间:2019-07-11 13:28:33

标签: reactjs emacs

假设你有

<Foo>
  <Bar>
    hello
  </Bar>
</Foo>

当我在<Foo>附近时,我想去</Foo>,反之亦然。

简单的请求,但是对我来说却很难实现。

forward-sexp(不确定它来自何处)可以正常转发,但向后backward-sexp不能很好地工作

1 个答案:

答案 0 :(得分:0)

C-c C-f(绑定到sgml-skip-tag-forward)和C-c C-b(绑定到sgml-skip-tag-backward)在mhtml-mode中似乎可以正常工作。您在编辑React.js代码时可能正处于js3-mode中,因此您可以切换到mhtml-mode(可能不希望如此),也可以将以上命令绑定到{{1}中的便捷键}键图:

js3-mode

因为(define-key js3-mode-map (kbd "C-c C-c C-f") 'sgml-skip-tag-forward) (define-key js3-mode-map (kbd "C-c C-c C-b") 'sgml-skip-tag-backward) C-c C-c中的前缀。

编辑:OP表示他正在使用js3-mode-map,而不是rjsx-mode,这需要对上述内容进行细微更改。主要区别在于需要修改js3-mode而不是rjsx-mode-map。另一个区别是js3-mode-map并未将rjsx-mode-map定义为前缀键,因此必须将键绑定更改为其他名称,或者在此映射中也将C-c C-c设为前缀键-这是后者的一种方法:

C-C C-c

如果要永久更改,则创建一个执行这三件事的函数,并将其添加到init文件的(let ((foo (make-sparse-keymap))) (define-key rjsx-mode-map (kbd "C-c C-c") foo)) (define-key rjsx-mode-map (kbd "C-c C-c C-f") 'sgml-skip-tag-forward) (define-key rjsx-mode-map (kbd "C-c C-c C-b") 'sgml-skip-tag-backward) 中。