- smart-tab 20150703.917(in MELPA)
- Intelligent tab completion and indentation.
概要
smart-tab.el は、空気読むTAB(C-i)を実現します。
これを導入すると、TABで補完すべきか
インデントすべきかを自動判別してくれます。
これまでM-TABで補完していたのがTABで済むようになります。
以下の働きをします。
- regionが指定してある場合はインデントする
- C-u C-iでインデントする
- シンボルの直後なら補完を試みる
Emacsにはいろいろな補完方法がありますが、
うまく判断してくれます。
- auto-complete-mode(レビュー) が有効ならばそれを使う
- モード独特の補完方法が設定してある場合はそれを使う
- emacs-lisp-mode ならば lisp-complete-symbol
- text-mode ならば dabbrev-completion
- emacs-lisp-mode ならば lisp-complete-symbol
- それ以外ならば hippie-expand か dabbrev-expand (選択可)
M-x global-smart-tab-mode は全体で有効になりますが、
org-mode や magit-mode や w3m-mode など
TABに独自の意味を持たせているモードでは対象外になります。
とはいえ除外すべきモード は eww-mode など他にもあるので
僕としてはモードフックに smart-tab-mode を
設定することを推奨します。
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてsmart-tabを使う方は
以下のコマンドを実行します。
M-x package-install smart-tab
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name smart-tab
追記
yasnippet.el とかぶってしまう難点があります。
これについては少し考えるべきでしょう。
設定 150401063719.smart-tab.el(以下のコードと同一)
;;; nilならばdabbrev-expand, tならばhippie-expandで補完する (setq smart-tab-using-hippie-expand t) ;;; モードごとの補完コマンドの設定 (setq smart-tab-completion-functions-alist '((emacs-lisp-mode . lisp-complete-symbol) (text-mode . dabbrev-completion))) ;;; プログラミング言語のモードのみ有効にする (add-hook 'prog-mode-hook 'smart-tab-mode)
実行方法
$ wget http://rubikitch.com/f/150401063719.smart-tab.el $ emacs -Q -f package-initialize -l 150401063719.smart-tab.el
本サイト内の関連パッケージ
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。