最近golangをやり始めたので、編集環境を再整備した。
基本設定
昔自分で書いた以下の二つを再度やったら、これだけでかなり快適な環境になった...昔の自分のブログ便利...残しておくものだな...
ハードタブの表示の設定
あと、Emacsでwhitespace-modeを利用してハードタブなどを可視化するようにしているのだけど、これがgoだとうざく見えてしまうので、上の設定に引き続き、その部分だけ調整した。
以下がwhitespace-modeの設定。whitespace-modeの設定 - syohex’s diaryやEmacs の whitespace-mode でタブと行末スペースと全角スペースに色付けするメモ - 牌語備忘録 -pygoあたりを参考にした。
(require 'whitespace) (setq whitespace-style '(face ;; faceで可視化 trailing ;; 行末 tabs ;; タブ spaces ;; スペース space-mark ;; 表示のマッピング tab-mark)) (setq whitespace-display-mappings '((space-mark ?\u3000 [?\u25a1]) ;; WARNING: the mapping below has a problem. ;; When a TAB occupies exactly one column, it will display the ;; character ?\xBB at that column followed by a TAB which goes to ;; the next TAB column. ;; If this is a problem for you, please, comment the line below. (tab-mark ?\t [?\u00BB ?\t] [?\\ ?\t]))) ;; スペースは全角のみを可視化 (setq whitespace-space-regexp "\\(\u3000+\\)") (set-face-attribute 'whitespace-trailing nil :foreground "DeepPink" :background nil :underline t) (set-face-attribute 'whitespace-tab nil :foreground "LightSkyBlue" :background nil :underline t) (set-face-attribute 'whitespace-space nil :foreground "GreenYellow" :background nil :weight 'bold) (global-whitespace-mode 1)
で、あとはこのwhitespace-styleのtabsの設定が、go-modeのときだけなくなるようにすればよい。次のように書いたら良い。
(defun shibayu36/go-mode-hook () ;; golangではハードタブを可視化しない (setq whitespace-style '(face trailing spaces space-mark))) (add-hook 'go-mode-hook 'shibayu36/go-mode-hook)