论坛里肯定很多人早就知道了,这个帖子就算是普及一下吧。。
最近才发现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