Emacsã®ä¸ã«ã3å¹´
ã¯ããã«
ç 究室ã«é å±ããã¦ä»¥æ¥Emacsã使ãç¶ãã¦ï¼ãããã3å¹´ã«ãªãï¼ç 究室ã®PCãããããè¿å´ããªãã¨ãããªãã®ã§ï¼èªå® ã®PCã«Emacsãã¤ã³ã¹ãã¼ã«ãã¤ã¤ï¼ä»ãã£ã¦ãè¨å®ãã¾ã¨ãã¦ã¿ããã¨æãï¼3年使ã£ã¦ããããã©ï¼lispã¯ãã£ã±ããªã®ã§ï¼è²ã ãªæ¹ã®ããã°çãé ¼ãã«ï¼ã ãããã¯ã³ãããã¦ããã ããªã®ã§ï¼åèå ã®ãã¼ã¸ãåç §ãã¦ã»ããï¼ä½¿ã£ã¦ããè¨èªã¯pythonï¼C++ï¼TeXã主ãªã®ã§ï¼ãã®ãããã®è¨å®ã ããããã¦ããªãï¼
ç°å¢
Emacs24.4ã¯æ®éã«ããã¨å ¥ããªãã£ãè¦ããããï¼ç¹ã«Macã¯ï¼ãã¡ããã¿ã¦ããããå½ã¦ããªã©ããï¼
[追è¨]
1å¹´ãã£ã¦ãhelmãå°å ¥ãããè²ã å¤ãã£ãã ç¹ã«pythonã®è¨å®ã«ã¤ãã¦ããã£ã¡ã«æ¸ããªãããã ksknw.hatenablog.com
init-loader
æè¿ã¾ã§ï¼init.elã«å ¨é¨æ¸ãã¦ï¼é©å½ã«ç®¡çãã¦ããã®ã§ï¼è¨å®ããã£ã¡ããã¡ãã«ãªã£ã¦ããï¼init-loaderã¯ç¹å®ã®ãã£ã¬ã¯ããªä»¥ä¸ã®ãã¹ã¦ã®ãã¡ã¤ã«ãèªåçã«èªã¿è¾¼ãã§ãããï¼è¨å®ãã¡ã¤ã«ãç°¡åã«åå²ã§ããã®ã§ä¾¿å©ï¼
ãã¡ãã®ãµã¤ãããè¨å®ï¼ãã®ä»ããããããã³ããããã¦ããã ããï¼
;;init-loaderã§æ®ãã®è¨å®ãèªã¿è¾¼ã (require 'init-loader) ;;initãã¡ã¤ã«ãèªã¿è¾¼ãã¨ãã®ã¨ã©ã¼ã表示 (defun init-loader-re-load (re dir &optional sort) (let ((load-path (cons dir load-path))) (dolist (el (init-loader--re-load-files re dir sort)) (condition-case e (let ((time (car (benchmark-run (load (file-name-sans-extension el)))))) (init-loader-log (format "loaded %s. %s" (locate-library el) time))) (error (init-loader-error-log (format "%s. %s" (locate-library el) (error-message-string e))) ;追å ))))) ;;~/.emacs.d/inits/ 以ä¸ãèªã¿è¾¼ã¿ (init-loader-load "~/.emacs.d/inits")
åå²ã¯ä»ã®ã¨ãããããªæãï¼
- 01-default.el
- 10-migemo.el
- 20-anything.el
- 21-auto-complete.el
- 22-yasnippet.el
- 23-whitespace.el
- 70-python-mode.el
- 71-yatex-mode.el
- 72-c++-mode.el
- 73-org-mode.el
- 80-design.el
- 90-global-keybinds.el
anything
ç 究室ã«ãã£ãinit.elãæ¨ã¦ã¦ï¼èªåã§æåã«å ¥ããæ¡å¼µãããã ã£ãï¼ãã¹ã¦ã®ãã¡ã¤ã«ï¼ã³ãã³ãï¼ã¯ãªãããã¼ããªãããçµ±åçã«æ±ã£ã¦ãããã¤ã³ã¿ã¼ãã§ã¤ã¹ã¨ããã°ããã®ãï¼ã¨ã«ãã便å©ã ã£ãï¼ä»ã§ã¯ä¾åããã£ã¦ãã¦ï¼anythingããªãã¨ï¼ã¡ãã£ã¨åã«ä½ã£ããã¡ã¤ã«ã¯éããªãã ãããï¼ã³ãã³ããã»ã¼æã¦ãªãã ããã¨æãï¼
ãã¡ãã¯ãã³ãã¡ããã®ãµã¤ããåèã«ï¼
(require 'anything-startup) (setq anything-c-filelist-file-name "~/.emacs.d/all.filelist") (setq anything-grep-candidates-fast-directory-regexp "^~/.emacs.d/") ;;anythingã§ãã¡ã¤ã«ãªã¹ããæ¤ç´¢ (define-key global-map (kbd "C-:") 'anything-filelist+) ;;ã¯ãªãããã¼ãã®å±¥æ´ãanythingã§æ¤ç´¢ (global-set-key "\M-y" 'anything-show-kill-ring) (global-set-key (kbd "C-.") 'anything-do-grep)
ãã¡ã¤ã«ã¨ã³ãã³ãã ãã§ãªãï¼ã¯ãªãããã¼ãã«æºãè¾¼ãã ãã®ãæ±ããï¼anything-kill-ringã便å©ï¼anything-grepã¯æªã ã«ä½¿ãæ¹ãããããã£ã¦ãªãã¦ï¼ãã¾ã«ãã¾ãæ¤ç´¢ã§ããªãï¼
undo histã使ã£ã¦ãã®ã§ï¼filelistãä½ãã¹ã¯ãªããã«ãã®ãã£ã¬ã¯ããªãè¦ãªãããã«è¨å®ãã以å¤ã¯ï¼ã»ã¼ããã©ã«ãï¼æè¿ã¯helmã®ã»ãããã(?)ããããã©ï¼åãã«å ¥ããã®ãanythingã ã£ãã®ã§ï¼ãªãã¨ãªã使ã£ã¦ããï¼
migemo
migemoã¯æ¥æ¬èªããã¼ãåã®ã¾ã¾æ¤ç´¢ãã¦ãããæ©è½ï¼ã³ã¼ãæ¸ãã¦ã¦ï¼ã³ã¡ã³ããæ¤ç´¢ãããã¨ãã«ï¼ãã¡ãã¡å¤æããå¿ è¦ããªããªãï¼
ãã®ããããåèã«ããã¦ããã ãã¦ï¼ã¤ã³ã¹ãã¼ã«ãã¦
sudo apt-get install cmigemo
é©å½ã«è¨å®ãæ¸ãï¼
(setq migemo-dictionary "~/cmigemo/dict/utf-8.d/migemo-dict") (setq migemo-command "cmigemo") (setq migemo-options '("-q" "--emacs")) (setq migemo-user-dictionary nil) (setq migemo-coding-system 'utf-8) (setq migemo-regex-dictionary nil) (load-library "migemo") (migemo-init)
ãããªã«è³¢ãã¯ãªãã®ã§ï¼å¤§éã®æ¥æ¬èªããè±åèªãè¦ã¤ããã¨ãã«ã¯ãããéªéãããããªãï¼ç¹ã«TeXæ¸ãã¦ãã¨ãã¨ãï¼
white space
white spaceã¯ã¹ãã¼ã¹ãã¿ããªã©ãå¯è¦åãã¦ãããæ©è½ï¼ã¤ãã§ã«è¡æ«ã®ã¹ãã¼ã¹ã¨ãææ«ã®æ¹è¡ã¨ãæ¶ããã¨ãã§ããï¼
åã¯è«¸æªã®æ ¹æºããå ¨è§ã¹ãã¼ã¹ãå¯è¦åãã¦ããï¼ã¤ãã§ã«ï¼è¡æ«ã®ã¹ãã¼ã¹ã¨ããä¸è¦ãªã®ã§æ¶ãããã«ããï¼
ãã¡ã㨠ãã¡ããåèã«ããï¼
;;ä¿åæã«è¡æ«ã®ã¹ãã¼ã¹ãåé¤ï¼ææ«ã®æ¹è¡ã¯åé¤ããªã (require 'whitespace) (set-face-foreground 'whitespace-space "DarkGoldenrod1") (set-face-background 'whitespace-space nil) (set-face-bold-p 'whitespace-space t) (setq whitespace-style '(tabs ; ã¿ã trailing ; è¡æ« spaces ; ã¹ãã¼ã¹ space-mark ; 表示ã®ãããã³ã° ;; tab-mark )) (setq whitespace-action '(auto-cleanup)) (global-whitespace-mode 1) ;;å ¨è§ã®ã¹ãã¼ã¹ãç®ç«ããã ãã<-ãããªæã (setq whitespace-space-regexp "\\(\x3000+\\)") (setq whitespace-display-mappings '((space-mark ?\x3000 [?\â¡]) (tab-mark ?\t [?\xBB ?\t]) ))
undo tree and hist
undo histã¯ãã¡ã¤ã«ãéãã¦ãundoã®å±¥æ´ãä¿åãã¦ãããæ©è½ï¼undo tree ã¯ä»ã¾ã§ã®undoã®å±¥æ´ã樹形å³ã¿ããã«è¡¨ç¤ºãã¦ãããæ©è½ï¼
ãã¡ã㨠ãã¡ããåèã«ããï¼
;; undoã®å±¥æ´ãã¦ã£ã³ãã¦ãéãã¦ãä¿æãã (when (require 'undohist nil t) (undohist-initialize)) ;; undoã®æ¨¹å½¢å³ã表示ãã C-x u (when (require 'undo-tree nil t) (global-undo-tree-mode))
é¢ä¿ãªããã©ï¼Emacsã®undoã¯Windowsã¨ãã®å ´åã¨æåãéã£ã¦ãã¦ï¼æåã«èºããè¨æ¶ãããï¼
ãã®ä»ã®ç´°ããè¨å®
åºæ¬ã¯ç 究室ã«ãã¨ãããã£ããã®ãåèï¼
èªåã§å ¥ããã®ã¯popwinã¨ieditã¨flycheckï¼ããããï¼ã³ã³ãã¤ã«ã¨ãanythingã¨ãã§ã¦ã£ã³ãã¦æ§æãå¤ããªãããã«ããæ©è½ï¼è¤æ°ç®æã®åæç·¨éï¼ææ³ãã§ãã¯ï¼
- popwinã¯ãã¡ãï¼
- ieditã¯è±èªã®åç»
- flycheckã¯ãã¡ã
ãåèã«ããï¼
;;æ¹è¡æã«èªåã§ã¤ã³ãã³ããã ;;C-mã¨Enterã¯åçãªã®ã§ï¼ããã§OK (global-set-key "\C-m" 'newline-and-indent) ;;ãã¡ã¤ã«ãéãã¨ãã«å¤§æåå°æåã®éããç¡è¦ (setq read-buffer-completion-ignore-case t) ;; ãããã¡å (setq read-file-name-completion-ignore-case t) ;; ãã¡ã¤ã«å ;; åãåãããç°¡ç¥å yes/no ã y/n (fset 'yes-or-no-p 'y-or-n-p) ;; C-k ã§è¡æ«ã®æ¹è¡ãæ¶å» (setq kill-whole-line t) ;;ãããã¡èªåèªã¿è¾¼ã¿ (global-auto-revert-mode 1) ;;ååã®ãã¡ã¤ã«ã®ãããã¡åãå¤æ´ (require 'uniquify) (setq uniquify-buffer-name-style 'post-forward-angle-brackets) ;;compileã¨ãã§ã¦ã£ã³ãã¦æ§æãããããªãããã«ãã (require 'popwin) (setq display-buffer-function 'popwin:display-buffer) ;;ã³ã³ãã¤ã«ç»é¢ã§ã¹ã¯ãã¼ã«ãã (setq compilation-scroll-output t) ;; è¡çªå·ã表示ãã (require 'linum) (global-linum-mode t) ; ããã©ã«ã㧠linum-mode ãæå¹ã«ãã (setq linum-format "%5d ") ; 5 æ¡åã®é åã確ä¿ãã¦è¡çªå·ã®ãã¨ã«ã¹ãã¼ã¹ãå ¥ãã ;; ã¹ã¿ã¼ãã¢ãããã¼ã¸ã表示ããªã (setq inhibit-startup-message t) (server-start) ;ã¿ã¤ãã«ãã¼ã«ãã¡ã¤ã«åã表示 (setq frame-title-format (format "%%f - Emacs@%s" (system-name))) ;; ãã¼ã«ãã¼ãæ¶ã (tool-bar-mode 0) ;; ããã¯ã¢ãããã¡ã¤ã«ãä½ããªã (setq backup-inhibited t) (setq make-backup-files nil) ;; çµäºæã«ãªã¼ãã»ã¼ããã¡ã¤ã«ãæ¶ã (setq delete-auto-save-files t) ;;é³ãé³´ãããªã (setq visible-bell t) (setq ring-bell-function 'ignore) ;;対å¿ããæ¬å¼§ãæ¿å ¥ (defun electric-pair () "Insert character pair without sournding spaces" (interactive) (let (parens-require-spaces) (insert-pair))) ;;è¤æ°ç®æã®åæç·¨é sublime textçãªã㤠(require 'iedit) ;; syntaxãã§ã㯠(require 'flycheck)
python-mode
追è¨ï¼çµå±jediãæå¼·ã ã£ãã®ã§ã以ä¸ã®pythonè¨å®ã¯ãã使ã£ã¦ããªãã
æè¿ã¯ä»¥ä¸ã PythonをEmacsで書く+α - やったことの説明
elpy
åã®Pythonã®è¨å®ã¯ã»ã¼ããã§çµããã¨ãã£ã¦ããããããããªãï¼ã©ãã¾ã§ãelpyãªã®ãããããããªããï¼package-list-packagesã§å ¥ããã¨ï¼è²ã ãã£ã¤ãã¦ã¤ã³ã¹ãã¼ã«ãããï¼å¤æ°åã®è£å®ããï¼ææ³ãã§ãã¯ã¾ã§ãããããã¦ãããï¼"."ãæã¤ã ãã§ï¼ã¡ã½ããåãè£å®ãã¦ãããã®ãå¬ããï¼
è±èªã§èª¬æãã¦ããããããªãåèã«ãã¦å ¥ããï¼ãã®åç»ã®ã·ãªã¼ãºãçµæ§ãããããããªãï¼
è¨å®ã¯1è¡ï¼
(elpy-enable)
elpyãã¤ã³ã¹ãã¼ã«ããåã«å ¥ãã¦ããï¼yasnippetã¨ãauto-completeã¨ãflycheckã¨ãã¨å¹²æ¸ãã¦ããããããªããã¨ã«ãªã£ããã¨ããã£ãï¼çµå±Pythonæã«ACãåã£ã¦ï¼snippetã®ãã©ã«ãããpython-modeãåé¤ãã¦ï¼flycheckãè¨èªãã¨ã«è¨å®ããããã«ãã¦ï¼ãªãã¨ããªã£ãï¼
ãã®ä»
è²ã æ¸ãã¦ãããã©ï¼ãªãã¦ãelpyã§åãã¨ããããããï¼
(add-hook 'python-mode-hook '(lambda () (setq indent-tabs-mode nil);;tabã®å¹ ãå¤ãã (setq indent-level 4) (setq python-indent 4) (setq tab-width 4) (define-key python-mode-map "\"" 'electric-pair) ;;æ¬å¼§ã®è£å® (define-key python-mode-map "\'" 'electric-pair) (define-key python-mode-map "(" 'electric-pair) (define-key python-mode-map "[" 'electric-pair) (define-key python-mode-map "{" 'electric-pair) (define-key company-active-map (kbd "\C-n") 'company-select-next) (define-key company-active-map (kbd "\C-p") 'company-select-previous) (define-key company-active-map (kbd "\C-d") 'company-show-doc-buffer) (define-key company-active-map (kbd "<tab>") 'company-complete) (auto-complete-mode -1) )) ;;elpy è²ã®è¨å® ããã©ã«ãã¯é»è²ã§ã ãã (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(company-minimum-prefix-length 1) '(company-selection-wrap-around t)) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(default ((t (:background "#131313" :foreground "white")))) '(company-scrollbar-bg ((t (:inherit company-tooltip :background "dim gray")))) '(company-scrollbar-fg ((t (:background "blue")))) '(company-tooltip ((t (:background "dim gray" :foreground "white")))) '(company-tooltip-annotation ((t (:inherit company-tooltip :foreground "white")))) '(company-tooltip-common ((t (:inherit company-tooltip :foreground "white")))) '(company-tooltip-common-selection ((t (:inherit company-tooltip-selection :foreground "white")))) '(company-tooltip-selection ((t (:inherit company-tooltip :background "blue")))) '(mode-line ((t (:foreground "#F8F8F2" :background "#303030" :box (:line-width 1 :color "#000000" :style released-button))))) '(mode-line-buffer-id ((t (:foreground nil :background nil)))) '(mode-line-inactive ((t (:foreground "#BCBCBC" :background "#101010" :box (:line-width 1 :color "#333333"))))))
ãããã§è¦ã¦ããã¨ï¼ã©ããEmacsã¯pythonæ¸ãã«ã¯å¾®å¦ã¨ããè¨è¿°ãã¡ããã¡ããè¦ãããï¼ã©ããªãã§ããããï¼
YaTex-mode
修士è«ææ¸ãã®ã«ã大活èºä¸ã®YaTeXï¼æ°å¼ã®ã·ã§ã¼ãã«ããè¦ãã¦ããï¼æ°å¼ãæã¤ã®ããããªã«è¦ã§ã¯ãªããªã£ãï¼
auto-completeå ¥ã£ã¦ããã©ï¼ä½¿ãã³ãã³ãã¯ã ãããã·ã§ã¼ãã«ãããsnippetãããã®ã§ï¼ãã¾ãå¿ è¦ãªããããããªãï¼RefTeXã®ä½¿ãæ¹ãå ¨ãç¥ããªãã®ã§ï¼è¨å®ãç 究室ã«ãã£ããã®ããã®ã¾ã¾ï¼
;; YaTeX (autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t) (setq auto-mode-alist (append '(("\\.tex$" . yatex-mode) ("\\.ltx$" . yatex-mode) ("\\.cls$" . yatex-mode) ("\\.sty$" . yatex-mode) ("\\.clo$" . yatex-mode) ("\\.bbl$" . yatex-mode)) auto-mode-alist)) ;;èªåæ¹è¡ãæå¶ ããããªãã¨é·ãæç« ã®ããããããªãã¨ããã§æ¹è¡ããã (add-hook ' yatex-mode-hook '(lambda () (auto-fill-mode -1))) ;; RefTexã¨ããåèæç®ã¨ããè£å®ããã¢ã¼ããONã«ãã 使ãæ¹ãããããã£ã¦ãªãã®ã§èª¿ã¹ã (add-hook 'yatex-mode-hook #'(lambda () (reftex-mode 1) (define-key reftex-mode-map (concat YaTeX-prefix ">") 'YaTeX-comment-region) (define-key reftex-mode-map (concat YaTeX-prefix "<") 'YaTeX-uncomment-region) )) ;;YaTeXã®ãããããAutoCompleteã®è£å®ãªã¹ãã«è¿½å ãã ;;snippetsã¯"\"ãããªããã©ï¼ACã¯"\" ãæããªãã¨è£å®ãããªã å¤ããã»ããããï¼ ;; for YaTeX (require 'auto-complete-latex) (setq ac-l-dict-directory "~/.emacs.d/ac-l-dict/") (add-to-list 'ac-modes 'yatex-mode) (add-hook 'yatex-mode-hook 'ac-l-setup) (add-to-list 'ac-modes 'foo-mode) (add-hook 'foo-mode-hook 'ac-l-setup) (add-hook 'yatex-mode-hook #'(lambda () (define-key YaTeX-mode-map (kbd "C-c c") 'compile) ;;C-c c ã§make ã§ããããã«ãã (auto-complete-mode t) ))
c++-mode
auto-completeï¼yasnippetï¼gtagsï¼flycheckããããã使ã£ã¦ããªãï¼æã¯auto-complete-clangã¨ã使ã£ã¦ãããããªæ°ãããï¼
ãããã以ä¸ã®ãµã¤ããåèã«ããï¼
- auto-complete http://dev.ariel-networks.com/wp/documents/aritcles/emacs/part9
- gtags ã¸ã£ã³ã http://qiita.com/yewton@github/items/d9e686d2f2a092321e34
- flycheck http://d.hatena.ne.jp/syohex/20130123/1358950322
cc-mode ãããªãã®ã§ã¯ãªããã¨ããæ°ã¯ãã¦ããï¼
(setq auto-mode-alist (append '(("\\.cpp$" . c++-mode) ("\\.hpp$" . c++-mode) ("\\.h$" . c++-mode) )auto-mode-alist)) (setq gtags-prefix-key "\C-c") (require 'gtags) (require 'anything-gtags) ;; ãã¼ãã¤ã³ã (setq gtags-mode-hook '(lambda () (define-key gtags-mode-map "\C-cs" 'gtags-find-symbol) (define-key gtags-mode-map "\C-cr" 'gtags-find-rtag) (define-key gtags-mode-map "\C-ct" 'gtags-find-tag) (define-key gtags-mode-map "\C-cf" 'gtags-parse-file))) (defvar c++-ac-sources '(ac-source-yasnippet ac-source-abbrev ac-source-dictionary ac-source-words-in-same-mode-buffers ;;ac-source-clang-async )) ;; cc-modeã®èªåã¹ã¿ã¤ã«è¨å® (add-hook 'c-mode-common-hook (lambda() (setq completion-mode t) (setq compilation-window-height 10) (setq c-basic-offset 2) ;; cc-modeå ã§å®ç¾©ããããã¼ãã¤ã³ã (define-key c-mode-base-map "\C-cc" 'compile) (define-key c-mode-base-map "\C-cg" 'gdb) (define-key c-mode-base-map "\C-ck" 'kill-compilation);ããã (define-key c-mode-base-map "\C-ce" 'next-error) ;ã¨ã©ã¼æ¤ç´¢ (define-key c-mode-base-map "\"" 'electric-pair) (define-key c-mode-base-map "\'" 'electric-pair) (define-key c-mode-base-map "(" 'electric-pair) (define-key c-mode-base-map "[" 'electric-pair) (define-key c-mode-base-map "{" 'electric-pair) ;; æ¬å¼§ã;ãå ¥åããã¨èªåã§æ¹è¡ ;(setq c-auto-newline t) ;; TAB ã¯ã¹ãã¼ã¹ 2 åã¶ã㧠(setq-default tab-width 2) (setq indent-tabs-mode nil) ;; # ãã¤ã³ãã³ãããªã ;;(setq c-electric-pound-behavior '(alignleft)) (c-set-offset 'cpp-macro 0) (c-set-offset 'cpp-macro-cont '+) (setq-default ac-sources c++-ac-sources) (flycheck-mode t) (gtags-mode 1) )) (add-hook 'c++-mode-common-hook (lambda() (setq completion-mode t) (setq compilation-window-height 10) (setq c-basic-offset 2) ;; cc-modeå ã§å®ç¾©ããããã¼ãã¤ã³ã (define-key c++-mode-base-map "\C-cc" 'compile) (define-key c++-mode-base-map "\C-cg" 'gdb) (define-key c++-mode-base-map "\C-ck" 'kill-compilation);ããã (define-key c++-mode-base-map "\C-ce" 'next-error) ;ã¨ã©ã¼æ¤ç´¢ (define-key c++-mode-base-map "\"" 'electric-pair) (define-key c++-mode-base-map "\'" 'electric-pair) (define-key c++-mode-base-map "(" 'electric-pair) (define-key c++-mode-base-map "[" 'electric-pair) (define-key c++-mode-base-map "{" 'electric-pair) ;; TAB ã¯ã¹ãã¼ã¹ 2 åã¶ã㧠(setq-default tab-width 2) (setq indent-tabs-mode nil) ;; # ãã¤ã³ãã³ãããªã (setq c-electric-pound-behavior '(alignleft)) (c-set-offset 'cpp-macro 0) (c-set-offset 'cpp-macro-cont '+) (setq-default ac-sources c++-ac-sources) (flycheck-mode t) (gtags-mode 1) )) ;; update GTAGS (defun update-gtags (&optional prefix) (interactive "P") (let ((rootdir (gtags-get-rootpath)) (args (if prefix "-v" "-iv"))) (when rootdir (let* ((default-directory rootdir) (buffer (get-buffer-create "*update GTAGS*"))) (save-excursion (set-buffer buffer) (erase-buffer) (let ((result (process-file "gtags" nil buffer nil args))) (if (= 0 result) (message "GTAGS successfully updated.") (message "update GTAGS error with exit status %d" result)))))))) (add-hook 'after-save-hook 'update-gtags)
org-mode
TODOãªã¹ãã¨ãã¡ã¢ã¨ãã管çã§ããã¢ã¼ãï¼æè¿å ¥ããã®ã§ï¼ã¾ã 使ãæ¹ã¯ããããã£ã¦ããªãï¼ãã®è¨äºããã®ã¢ã¼ãã§æ¸ãã¦ï¼Markdownã§åºåãã¦ããï¼ãã®ã¢ã¼ãããªããã°ï¼ãã®è¨äºã®é·ãã¯10åã®1以ä¸ã«ãªã£ã¦ããã§ãããã¨æãï¼
ãã¡ããåèã«ããï¼
ç»é¢ã®åãæ¿ããC-Tabã«è¨å®ãã¦ããã®ã§ï¼ããã ãåãããã«ããï¼
(require 'ox-qmd) ;; capture templates (setq org-capture-templates '(("p" "Project Task" entry (file+headline (expand-file-name "~/project/project.org") "Inbox") "** TODO %?\n %i\n %a\n %T") ("m" "memo" entry (file (expand-file-name "~/memo.org")) "* %?\n %i\n %a\n %T"))) ;; agenda (setq org-agenda-files (list (expand-file-name "~/project"))) ;; C-tab ã¯ã¦ã¤ã³ãã¦ã®ç§»åã«ä½¿ãããã®ã§ã¯ãã (add-hook 'org-mode-hook '(lambda () (define-key org-mode-map [(control tab)] nil)))
è¦ãç®
åºæ¬çã«ç 究室ã«ãã£ãinit.elãããã®ã¾ã¾ï¼mode-lineã®è²ã¨ãã¯ããã£ãæ°ãããï¼
;;æåãµã¤ãº (set-face-attribute 'default nil :height 110) ;; font siez ;; æ¥æ¬èª (set-fontset-font nil 'japanese-jisx0208 ;; (font-spec :family "Hiragino Mincho Pro")) ;; font (font-spec :family "Hiragino Kaku Gothic ProN")) ;; font ;; åè§ã¨å ¨è§ã®æ¯ã1:2ã« (setq face-font-rescale-alist '((".*Hiragino_Mincho_pro.*" . 1.2))) ;;æãè¿ãè¨å·ã®è² (set-face-foreground 'fringe "#7f7f7f") ;;æãè¿ãè¨å·ã®ã¨ãã®èæ¯è² (set-face-background 'fringe "gray12") ;; region ã®è² (custom-set-faces '(default ((t (:background "#131313" :foreground "white") ))) '(mode-line ((t (:foreground "#F8F8F2" :background "#303030" :box (:line-width 1 :color "#000000" :style released-button))))) '(mode-line-inactive ((t (:foreground "#BCBCBC" :background "#101010" :box (:line-width 1 :color "#333333"))))) '(mode-line-buffer-id ((t (:foreground nil :background nil)))) ) ;;ã«ã¼ã½ã«è¡ã®ãã¤ã©ã¤ã (defface hlline-face '((((class color) (background dark)) (:background "gray13" :underline nil)) (((class color) (background light)) (:background "#00AA00":underline nil)) (t ())) "*Face used by hl-line.") (setq hl-line-face 'hlline-face) (global-hl-line-mode) ;;; ã«ã¼ã½ã«ã®ç¹æ» ãæ¢ãã (blink-cursor-mode 0) ;;ééã®è¨å® (when window-system (progn (setq default-frame-alist (append (list '(vertical-scroll-bars . nil) ;;ã¹ã¯ãã¼ã«ãã¼ã¯ãããªã '(alpha . 93)) default-frame-alist)))) ;;èµ·åæã«ã¦ã£ã³ãã¦ãæ大åãã (set-frame-parameter nil 'fullscreen 'maximized) ;; ãªã¼ã¸ã§ã³æå®ï¼æ¬å¼§å¯¾å¿ã«è²ãã¤ãã (setq transient-mark-mode t) (show-paren-mode) (setq show-paren-style 'parenthesis) (setq show-paren-delay 0.05) ;; default: 0.125 ;;è¡ï¼æ¡çªå·,ãããã¡ãµã¤ãºã®è¡¨ç¤º (line-number-mode t) (column-number-mode t) ;; è¡æ«ã®ã¹ãã¼ã¹ã表示 (setq-default show-trailing-whitespace t)
ãã®ãã¡å ¥ãããã¨æã£ã¦ãããã®
helm
anythingã¨ãªã«ãéãã®ãï¼ã¡ããã¨èª¿ã¹ã¦ãªãã®ã§ä¿çï¼
jedi
pythonã®ãªã ãè£å®ï¼æåå ¥ãã¦ããã©ï¼elpyãè¨å®ããªãããã¨ãã«æ¶ãã¦ãã¾ã£ãï¼elpyã®è¨å®ï¼ãã°ããã¯è§¦ããããªãï¼
stan-mode
pythonã¨ãRããã触ãã¦ï¼ç°¡åã«MCMCã§ããstanã¨ããè¨èªã®ã¢ã¼ãï¼stanã«ã¤ãã¦ã»ã¼ç¥ããªãã®ã§ä¿çï¼
gité¢é£
ãã¼ã¸ã§ã³ç®¡çã®å¤§äºãã¯æè¿ã¨ã¦ãæããï¼git-gutterã¨ããã®è¾ºãããããã¤ããï¼
ãããã«
å ¥ããã»ãããããã®ããã£ããæãã¦ãã ããï¼
åèã«ããã¦ããã ãããµã¤ã
Yosemite 㧠Emacs-24.4 ããã«ããã¦åãã
anythingå°å ¥ã®everything ï½3åã§ä½¿ããanything.elï½
migemoã使ã£ã¦Emacsã©ã¤ããå¿«é©ã«
emacsã§å ¨è§ã¹ãã¼ã¹ãè¦ãããããã - ããã°ã©ãã³ã°ã®ã¡ã¢
Emacs24.3ã®å°å ¥ã¨undo-tree.elã®ç´¹ä»
Emacs as a C/C++ Editor/IDE (Part I): auto-complete, yasnippet, and auto-complete-c-headers
flymakeã®è¨å®ããåã« flycheckã確èªããã - Life is very short
Emacs as a Python editor and IDE (Part 1): Installing elpy mode