User:Timothee Flutre/Notebook/Postdoc/2012/07/25: Difference between revisions
From OpenWetWare
(→About Emacs: add emacs -nw) |
(→About Emacs: add mirror) |
||
(8 intermediate revisions by the same user not shown) | |||
Line 8: | Line 8: | ||
==About Emacs== | ==About Emacs== | ||
* '''Motivation''': when analyzing data for any research project, it's essential to know well a good text editor. Indeed, it's very efficient to be able to program in several languages (eg. Python, C/C++, R), interact with the shell like in a terminal, manipulate data and plot exploratory analyzes in R, ''all this within the same editor''! One such editor is [http://en.wikipedia.org/wiki/Emacs Emacs], and is available on Linux, Mac OS and Windows. | * '''Motivation''': when analyzing data for any research project, it's essential to know well a good text editor. Indeed, it's very efficient to be able to program in several languages (eg. Python, C/C++, R), interact with the shell like in a terminal, manipulate data and plot exploratory analyzes in R, ''all this within the same editor''! One such editor is [http://en.wikipedia.org/wiki/Emacs Emacs], and is available on Linux, Mac OS and Windows. For Mac OS X users, I recommend [http://vgoulet.act.ulaval.ca/en/emacs/mac/ this distribution]. | ||
* '''Configuration''': my own file <nowiki>.emacs</nowiki> | * '''Documentation''': | ||
** official [https://www.gnu.org/software/emacs/manual/html_node/emacs/index.html manual] | |||
** I haven't found yet any good tutorial, outside of the official [https://www.gnu.org/software/emacs/tour/ tour] | |||
** [http://www.emacswiki.org/ wiki] (with many tips) | |||
** [https://github.com/emacsmirror/p code] (mirrors packages) | |||
* '''Important packages''': | |||
** [http://orgmode.org/) org-mode] (already included in recent versions of emacs) | |||
** [http://cx4a.org/software/auto-complete/ Auto-Complete] | |||
** [http://ess.r-project.org/ ESS] | |||
** [http://www.gnu.org/software/auctex/ AUCTeX] | |||
* '''Configuration''': my own file <nowiki>~/.emacs</nowiki> (I try to avoid customizing it too much) | |||
<nowiki> | <nowiki> | ||
Line 53: | Line 65: | ||
;; START config Auto-Complete | ;; START config Auto-Complete | ||
(require 'auto-complete-config) | (require 'auto-complete-config) | ||
(add-to-list 'ac-dictionary-directories "~/.emacs.d | (add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict") | ||
(ac-config-default) | (ac-config-default) | ||
;; END config Auto-Complete | ;; END config Auto-Complete | ||
Line 60: | Line 72: | ||
;; START config ESS | ;; START config ESS | ||
(load "~/src_ext_nb/ESS/ess-12. | (require 'ess-site) | ||
;;(load "~/src_ext_nb/ESS/ess-12.09-2/lisp/ess-site") | |||
;; tips from http://emacswiki.org/emacs/EmacsSpeaksStatistics | ;; tips from http://emacswiki.org/emacs/EmacsSpeaksStatistics | ||
(setq ess-eval-visibly-p nil) ;otherwise C-c C-r (eval region) takes forever | (setq ess-eval-visibly-p nil) ;otherwise C-c C-r (eval region) takes forever | ||
(setq ess-ask-for-ess-directory nil) ;otherwise you are prompted each time you start an interactive R session | (setq ess-ask-for-ess-directory nil) ;otherwise you are prompted each time you start an interactive R session | ||
;; tips source: http://www.emacswiki.org/emacs/ESSAuto-complete | |||
(setq ess-use-auto-complete t) | |||
;; END config ESS | ;; END config ESS | ||
;; clear R console (http://stackoverflow.com/a/3450038/597069) | |||
(defun clear-shell () | |||
(interactive) | |||
(let ((old-max comint-buffer-maximum-size)) | |||
(setq comint-buffer-maximum-size 0) | |||
(comint-truncate-buffer) | |||
(setq comint-buffer-maximum-size old-max))) | |||
;;-------------------------------------------------------------------- | ;;-------------------------------------------------------------------- | ||
;; START config AUCTeX | ;; START config AUCTeX | ||
(load "/home/tflutre/src/LATEX_PKGS/AUCTEX/auctex.el" nil t t) | ;;(load "/home/tflutre/src/LATEX_PKGS/AUCTEX/auctex.el" nil t t) | ||
(load "/home/tflutre/src/LATEX_PKGS/AUCTEX/preview-latex.el" nil t t) | ;;(load "/home/tflutre/src/LATEX_PKGS/AUCTEX/preview-latex.el" nil t t) | ||
(add-to-list 'load-path "/home/tflutre/src/LATEX_PKGS/AUCTEX") | ;;(add-to-list 'load-path "/home/tflutre/src/LATEX_PKGS/AUCTEX") | ||
(setq TeX-auto-save t) | (setq TeX-auto-save t) | ||
(setq TeX-parse-self t) | (setq TeX-parse-self t) | ||
Line 83: | Line 107: | ||
;; START config org-mode | ;; START config org-mode | ||
(global-set-key "\C-cl" 'org-store-link) | (global-set-key "\C-cl" 'org-store-link) | ||
(global-set-key "\C-cc" 'org-capture) | (global-set-key "\C-cc" 'org-capture) | ||
Line 104: | Line 124: | ||
'(("breaklines"))) | '(("breaklines"))) | ||
(setq org-log-done 'time) | (setq org-log-done 'time) | ||
(setq org-startup-truncated nil) ;so that lines longer than the screen are not truncated | |||
;; END config org-mode | ;; END config org-mode | ||
;;-------------------------------------------------------------------- | |||
;; START config python-mode | |||
(setq | |||
python-shell-interpreter "ipython" | |||
python-shell-interpreter-args "" | |||
python-shell-prompt-regexp "In \\[[0-9]+\\]: " | |||
python-shell-prompt-output-regexp "Out\\[[0-9]+\\]: " | |||
python-shell-completion-setup-code | |||
"from IPython.core.completerlib import module_completion" | |||
python-shell-completion-module-string-code | |||
"';'.join(module_completion('''%s'''))\n" | |||
python-shell-completion-string-code | |||
"';'.join(get_ipython().Completer.all_completions('''%s'''))\n") | |||
;; END config python-mode | |||
</nowiki> | </nowiki> | ||
* '''Tips''': | * '''Tips''': | ||
** from the office computer, log interactively to a cluster node, launch <code>emacs --daemon</code> and keep the terminal open indefinitely; then access this session from any computer, e.g. a laptop, with <code>emacsclient -t</code> | ** from the office computer (desktop), log interactively to a cluster node, launch <code>emacs --daemon</code> and keep the terminal open indefinitely; then access this session from any computer, e.g. a laptop, with <code>emacsclient -t</code> | ||
** especially useful with [http://en.wikipedia.org/wiki/PuTTY PuTTY] on Windows, launch emacs so that its window is the terminal itself, via <code>emacs -nw</code> | ** especially useful with [http://en.wikipedia.org/wiki/PuTTY PuTTY] on Windows, launch emacs so that its window is the terminal itself, via <code>emacs -nw</code> | ||
Revision as of 08:59, 13 January 2014
Project name | <html><img src="/images/9/94/Report.png" border="0" /></html> Main project page <html><img src="/images/c/c3/Resultset_previous.png" border="0" /></html>Previous entry<html> </html>Next entry<html><img src="/images/5/5c/Resultset_next.png" border="0" /></html> |
About Emacs
;; .emacs (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. '(column-number-mode t) ;; in the mode line '(size-indication-mode t) ;; in the mode line '(display-time-mode 1) ;; in the mode line '(display-time-day-and-date t) ;; in the mode line '(display-time-24hr-format t) ;; in the mode line '(case-fold-search t) '(current-language-environment "UTF-8") '(default-input-method "rfc1345") '(global-font-lock-mode t nil (font-lock)) '(show-paren-mode 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. ) (setq inhibit-startup-message t) (add-to-list 'load-path "~/.emacs.d/") (setq latex-run-command "pdflatex") ;; config for C/C++ code (setq c-default-style "bsd" c-basic-offset 2 tab-width 2 indent-tabs-mode t) ;;-------------------------------------------------------------------- ;; START config Auto-Complete (require 'auto-complete-config) (add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict") (ac-config-default) ;; END config Auto-Complete ;;-------------------------------------------------------------------- ;; START config ESS (require 'ess-site) ;;(load "~/src_ext_nb/ESS/ess-12.09-2/lisp/ess-site") ;; tips from http://emacswiki.org/emacs/EmacsSpeaksStatistics (setq ess-eval-visibly-p nil) ;otherwise C-c C-r (eval region) takes forever (setq ess-ask-for-ess-directory nil) ;otherwise you are prompted each time you start an interactive R session ;; tips source: http://www.emacswiki.org/emacs/ESSAuto-complete (setq ess-use-auto-complete t) ;; END config ESS ;; clear R console (http://stackoverflow.com/a/3450038/597069) (defun clear-shell () (interactive) (let ((old-max comint-buffer-maximum-size)) (setq comint-buffer-maximum-size 0) (comint-truncate-buffer) (setq comint-buffer-maximum-size old-max))) ;;-------------------------------------------------------------------- ;; START config AUCTeX ;;(load "/home/tflutre/src/LATEX_PKGS/AUCTEX/auctex.el" nil t t) ;;(load "/home/tflutre/src/LATEX_PKGS/AUCTEX/preview-latex.el" nil t t) ;;(add-to-list 'load-path "/home/tflutre/src/LATEX_PKGS/AUCTEX") (setq TeX-auto-save t) (setq TeX-parse-self t) (setq-default TeX-master nil) (setq TeX-save-query nil) (setq TeX-PDF-mode t) ;; to have a pdf output for all LaTeX documents ;; END config AUCTeX ;;-------------------------------------------------------------------- ;; START config org-mode (global-set-key "\C-cl" 'org-store-link) (global-set-key "\C-cc" 'org-capture) (global-set-key "\C-ca" 'org-agenda) (global-set-key "\C-cb" 'org-iswitchb) (org-babel-do-load-languages 'org-babel-load-languages '((R . t) (sh . t) (python . t) )) (setq org-confirm-babel-evaluate nil) (require 'org-latex) (add-to-list 'org-export-latex-packages-alist '("" "listings")) (setq org-export-latex-listings t) (setq org-export-latex-listings-options '(("breaklines"))) (setq org-log-done 'time) (setq org-startup-truncated nil) ;so that lines longer than the screen are not truncated ;; END config org-mode ;;-------------------------------------------------------------------- ;; START config python-mode (setq python-shell-interpreter "ipython" python-shell-interpreter-args "" python-shell-prompt-regexp "In \\[[0-9]+\\]: " python-shell-prompt-output-regexp "Out\\[[0-9]+\\]: " python-shell-completion-setup-code "from IPython.core.completerlib import module_completion" python-shell-completion-module-string-code "';'.join(module_completion('''%s'''))\n" python-shell-completion-string-code "';'.join(get_ipython().Completer.all_completions('''%s'''))\n") ;; END config python-mode
|