终端下的spacemacs大家是怎么处理C-i的evil-jump-forwar的?

spacemacs在终端下如果C-i默认是tab,这样就不能evil-jump-forward了

默认就没问题呀,在终端下面 ctrl-i 和TAB是等价的,我看evil 默认的normal模式下面 TAB就是jump-forward,而Ctrl-o是jump back。你是怎么使用的?

1 个赞
  1. 是怎么个不能用?

  2. 用最小配置试试:

    $ emacsq.sh -P evil -M evil-mode -nw
    

我配置成了tab弹出company的补全框,所以想知道有没有办法让c-i和tab分开

就是tab和c-i是相同的,能不能把这两个分开

终端不能分辨 <tab>C-i

我的做法是用 xkeysnail 把特定的键(Ctrl-I)映射到一个平时用不上的按键序列(F2-1-0-0),再在 emacs 里面把这个按键序列映射到想要的功能。

xkeysnail:

emacs:

QVDwSKlI

这个方法应该可以

这个方法要在终端下生效,就得终端支持把c-i映射成自定义的序列吧?

终端的处理是 xkeysnail 之后完成的,

键盘 --> xkeysnail --> 终端 --> emacs

键盘按下 ctrl-I 之后,终端看来用户按下的是 f2-1-0-0;这个转换过程对终端是透明的。

在windows下就只能靠终端来映射了吧

如果终端是 iTerm2 可以更改按键映射:

$ emacs -Q -nw --eval "(progn
                         ;; this is C-i
                         (global-set-key (kbd \"\e[emacs-C-i\") (lambda () (interactive) (message \"C-i\")))
                         ;; this is TAB 
                         (global-set-key (kbd \"TAB\") (lambda () (interactive) (message \"TAB\"))))"
1 个赞

公司的只能用win,真是难办

我之前用 windows 弄按键映射的时候用的是 autohotkey,它可以调一些 windows 的 api,理论上是可以只在特定应用下启用映射的。刚刚查了下似乎也可以:automation - AutoHotKey: How to make my script run only within a specific program? - Super User

这个确实可以 我弄过

这个better-jump比起原来的jump改进了哪里?

不知道 :joy:,都是 doom 自带的。

装个虚拟机跑 linux 能省很多事

网都没有~~

学到了,原来可以 [xxx 这样