tab键不够用?来瞧瞧

论坛里肯定很多人早就知道了,这个帖子就算是普及一下吧。。

最近才发现emacs是将C-i和tab绑定在一起的。。然后大家会发现一个tab键根本不够用的情况,比方说又想要indent又想要在org mode里展开折叠。解决的方法很简单。

Spacemacs用户:

dotspacemacs-distinguish-gui-tab t

然后绑定C-i请使用,像这样 (local-set-key (kbd "<C-i>") 'ztlevi/tab-region)

因为大多数package好像是绑定的Tab,所以我就把C-i用来indent了。

代码如下:

(defun insert-4-spaces ()
  (interactive)
  (insert "    "))

;; redefine C-i and S-tab
(global-set-key (kbd "<C-i>") 'insert-4-spaces)
(global-set-key (kbd "<S-tab>") 'evil-shift-left-line)

当然ivy mode中区分两者也是很棒的:

(define-key ivy-minibuffer-map (kbd "<C-i>") 'ivy-call)
(define-key ivy-minibuffer-map (kbd "TAB") 'ivy-partial-or-done)

原生 emacs党可移步: emacs - How do I bind a command to C-i without changing TAB? - Stack Overflow

2 个赞

大家绑定按键的时候注意下是(kbd "<C-i>")而不是(kbd "C-i")C-m作为Enter一样。

dotspacemacs-distinguish-gui-tab好像只能搞定<C-i>C-h k <C-m>出来的直接就是RET,不像C-h k <C-i>出来的是<C-i> (translated from TAB)

我之前好像是可以的,应该是更新的影响