init.el
;;; rtags.el の設定
(when (require 'rtags nil 'noerror)
(when (executable-find "rtags-rc")
(setq rtags-rc-binary-name "rtags-rc")) ; debian では rc -> rtags-rc に変更されている
(when (executable-find "rtags-rdm")
(setq rtags-rdm-binary-name "rtags-rdm")) ; debian では rdm -> rtags-rdm に変更さている
(defun rtags-local-conf ()
(rtags-mode)
(rtags-start-process-unless-running)
(setq rtags-autostart-diagnostics t)
(rtags-diagnostics)
(setq rtags-completions-enabled t)
;;; キーバインド:ネットでよく見掛ける設定から
(local-set-key (kbd "M-.") 'rtags-find-symbol-at-point)
(local-set-key (kbd "M-;") 'rtags-find-symbol)
(local-set-key (kbd "M-@") 'rtags-find-references)
(local-set-key (kbd "M-,") 'rtags-location-stack-back)
;;; キーバインド:実際にはこちらを使う
(local-set-key (kbd "C-c d d") 'rtags-find-symbol-at-point)
(local-set-key (kbd "C-c d s") 'rtags-find-all-references-at-point)
(local-set-key (kbd "C-c d c") 'rtags-find-all-functions-called-this-function)
(local-set-key (kbd "C-c d f") 'rtags-find-file)
(local-set-key (kbd "C-c d <") 'rtags-location-stack-back)
(local-set-key (kbd "C-c d >") 'rtags-location-stack-forward)
(define-key rtags-mode-map "p" 'rtags-previous-match)
(define-key rtags-mode-map "n" 'rtags-next-match)
)
(add-hook 'c-mode-common-hook 'rtags-local-conf)
(add-hook 'c++-mode-common-hook 'rtags-local-conf)
(add-hook 'objc-mode-hook 'rtags-local-conf)
)
- 上記では、Debian / Ubuntu のパッケージで rc, rdm のコマンド名が変更されているのにも対応している。