elpy, flycheck, irony, company-modeなどなどのインストール

emacsのpackage-installから。 パッケージ名は[elpy, flycheck, irony, company, company-irony, company-irony-c-hedears, smartrep, py-yapf]

exec-path-from-shell, cmake-mode, yaml-mode, yatex, use-package, ivy, counselなどもインストール。

dumb-jumpは少なくともFortranを読むのに必要。

dumb-jump

GitHub - jacktasia/dumb-jump: an Emacs "jump to definition" package for 40+ languages rgはbrew install ripgrepで入る。

elpyの導入

IDE Features — Elpy 1.33.0 documentation

個人的な Python 用の Emacs の設定 | org-技術

Emacs: The Best Python Editor? – Real Python

elpyの設定メモ - ししちにじゅうはち 4x7=28

pip install flake8 importmagic yapf jedi

M-x elpy-configでインストールしたパッケージが正しくelpyに読み込まれているか確認する必要がある。Macのアイコンから起動するemacsでは、shellの設定が読み込まれない。これはexec-path-from-shellパッケージをインストールして.emacs内でinitializeすることで詠みこまれるようになる。

M-x package-refresh-contents
M-x package-install exec-path-from-shell
(exec-path-from-shell-initialize)

company-ironyの導入

M-x irony-install-server RET

を忘れずに。

rtags

Update 2018/07/26. rtagsの設定やドキュメントがずいぶんアップデートされた。

インストールや設定はここに書いているように行う。

rtagsをmakeする環境としてcmakeとllvmが必要。ない場合は次のようにインストールする。

% brew install llvm cmake

emacsでrtagsとflycheck-rtagsをpackage-installする。

flycheck c++ 11の設定

(require 'rtags)
(add-hook 'c-mode-hook 'rtags-start-process-unless-running)
(add-hook 'c++-mode-hook 'rtags-start-process-unless-running)
(add-hook 'objc-mode-hook 'rtags-start-process-unless-running)
(setq rtags-completions-enabled t)
(require 'company)
(global-company-mode)
(push 'company-rtags company-backends)
(define-key c-mode-base-map (kbd "<C-tab>") (function company-complete))
(require 'flycheck-rtags)
(setq rtags-autostart-diagnostics t)
(defun my-flycheck-rtags-setup ()
  (flycheck-select-checker 'rtags)
  (setq-local flycheck-highlighting-mode nil) ;; RTags creates more accurate overlays.
  (setq-local flycheck-check-syntax-automatically nil))
(add-hook 'c-mode-hook #'my-flycheck-rtags-setup)
(add-hook 'c++-mode-hook #'my-flycheck-rtags-setup)
(add-hook 'objc-mode-hook #'my-flycheck-rtags-setup)

その他 emacs 設定

Emacsの設定 - nobUnagaの日記

自動改行をする/しない

(c-toggle-auto-newline 1)