Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Mi configuración de Emacs

Algo de mi configuración de Emacs, por orden alfabético

Babel

Se puede ejecutar directamente el código en org-mode si configuramos http://orgmode.org/worg/org-contrib/babel/

;;(acons 'sh 't org-babel-load-languages)

;; Babel

;; http://stackoverflow.com/questions/15773354/indent-code-in-org-babel-src-blocks
(setq org-src-tab-acts-natively t)

;; http://stackoverflow.com/questions/10642888/syntax-highlighting-within-begin-src-block-in-emacs-orgmode-not-working
(setq org-src-fontify-natively t)

;; esto lo tenía de antes
;;(require 'calfw)
(org-babel-do-load-languages
      'org-babel-load-languages
      '((emacs-lisp . t)
        (R . t)
        (sh . t)
        (python . t)
        (ruby . t)
        (sparql . t)
        ))

;; http://stackoverflow.com/questions/4711179/auto-expanding-blocks-of-comments-in-emacs

(defun refill-when-in-comment ()
  (interactive)
  (let ((curr-face (get-char-property (point) 'face)))
    (if (member "comment" (split-string (prin1-to-string curr-face) "-"))
        (fill-paragraph t)
      )
    )
  )

(defun smart-space (arg)
  (interactive "P")
  (refill-when-in-comment)
  (self-insert-command (prefix-numeric-value arg))
  )

(global-set-key " " 'smart-space)


elpy

Elpy es el entorno Python en Emacs Lisp:

Primero añadimos a Emacs el paquete en GitHub:

;; elpy

;
(require 'package)
(add-to-list 'package-archives
             '("elpy" . "http://jorgenschaefer.github.io/packages/"))

Luego corremos en Emacas M-x package-refresh-contents para cargar los contenidos del repositorio. Entonces ya podemos añadir elpy con M-x package-install RET elpy RET.

A continuación añadimos esto al archivo de configuración de Emacs, .emacs:

(package-initialize)
(elpy-enable)

En el lado de Python, debemos instalar:

pip install flake8

Y luego tendrás que elegir entre rope o jedi:

pip install rope
pip install jedi

erc

ERC es un cliente este cliente de IRC.

(require 'erc)

Latex

Soporte para LaTeX en Emacs. Fundamental.

;; LaTeX

(require 'ox-latex)
(add-to-list 'load-path "~/.emacs.d/elisp")
(load-library "latex-templates")
;; wrap código fuente
;(add-to-list 'org-latex-packages-alist '("" "minted"))
;(setq org-latex-listings 'minted)
;
;(setq org-latex-pdf-process
;     '("pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"
;        "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"
;        "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f")

(setq org-export-latex-listings t)
(add-to-list 'org-latex-packages-alist '("" "listings"))
(add-to-list 'org-latex-packages-alist '("" "color"))

org-html5presentation

Presentaciones HTML5 con org-mode, una alternativa a Reveal.

;; org-html5presentation
(add-to-list 'load-path "~/ruta/org-html5presentation.el/")
(require 'ox-html5presentation)

Markdown

Aunque org-mode es maravilloso, hay que prestar atencióna Markdown.

;; Markdown
(eval-after-load "org"
  '(require 'ox-md nil t))

RefTex

Gestión de bibliografía en Emacs

;; reftex

(defun org-mode-reftex-setup ()
(load-library "reftex")
(and (buffer-file-name)
(file-exists-p (buffer-file-name))
(reftex-parse-all))
(define-key org-mode-map (kbd "C-c )") 'reftex-citation)
)
(add-hook 'org-mode-hook 'org-mode-reftex-setup)
(setq org-latex-to-pdf-process (list "latexmk -pdf -bibtex %f"))
(setq org-latex-pdf-process '("latexmk -pdflatex='pdflatex -interaction nonstopmode' -pdf -bibtex -f %f"))
(setq reftex-default-bibliography
      (quote
       ("~/Documentos/doctorado/tesis/bibliografia.bib")
))
(setq reftex-use-external-file-finders t)
(setq reftex-external-file-finders
      '(("tex" . "kpsewhich -format=.tex %f")
        ("bib" . "kpsewhich -format=.bib %f")))

Melpa

Melpa responde a Milkypostman’s Emacs Lisp Package Archive, un gestor de paquetes para Emacs Lisp con las siguientes características:

  • Paquetes actualizados en sus propios servidores.
  • Se instalan con el paquete package.el, no se necesitan herramientas de control de versiones locales.
  • Verificados, no los encontrarás obsoletos ni con otro nombre ni distintos.
  • Permite actualizaciones automáticas.
  • Una forma estándar de acceso
  • Extensible, puedes crear tu propia receta en github y Melpa creará el paquete.
;; melpa

(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.milkbox.net/packages/")))


Reveal

La maravillosa herramienta para creación de presentaciones en Reveal en org-mode:

;; Reveal
(require 'ox-reveal)

(setq org-reveal-root "~/emacs.d/elisp/org-reveal")

Sesión

Configuración que mejora tu sesión.

Debug de errores

(setq max-specpdl-size 1000)  ; default is 1000, reduce the backtrace level
(setq max-specpdl-size 32000) ; http://stackoverflow.com/questions/30736631/ess-produces-variable-binding-depth-exceeds-max-specpdl-size
(setq debug-on-error t)    ; now you should get a backtrace

Cómo guardar la sesión de Emacs

Leído en Stackoverflow, cómo guardar la sesión con Emacs, por si te da por cerrar de repente:

You can save the desktop manually with the command M-x desktop-save. You can also enable automatic saving of the desktop when you exit Emacs, and automatic restoration of the last saved desktop when Emacs starts: use the Customization buffer (see Easy Customization) to set desktop-save-mode to t for future sessions, or add this line in your ~/.emacs file:

(desktop-save-mode 1)

Sparql

Quién no ha querido hacer un poco de SPARQL en Emacs? Puedes empezar en Emacswiki o GitHub y si no lo has hecho antes, configurar Babel:

;; sparql
;;
(add-to-list 'load-path "~/.emacs.d/elisp/sparql-mode/")
(autoload 'sparql-mode "sparql-mode.el"
    "Major mode for editing SPARQL files" t)
(add-to-list 'auto-mode-alist '("\\.sparql$" . sparql-mode))
(add-to-list 'auto-mode-alist '("\\.rq$" . sparql-mode))

Web-mode

Web-mode es un modo para editar contenido web. Tienes tantas posibilidades que mejor que lo pruebes

;; web-mode
(require 'web-mode)
(add-to-list 'auto-mode-alist '("\\.phtml\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.tpl\\.php\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.[agj]sp\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.as[cp]x\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.mustache\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.djhtml\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode))

Xetex

Motor de tipografías TeX que utiliza Unicode.

;; xetex

(setq-default TeX-engine 'xetex)

Zotelo

Zotelo gestiona tus colecciones de Zotero en Emacs

;; Zotelo

(require 'zotelo)
(add-hook 'TeX-mode-hook 'zotelo-minor-mode)

About

Mi configuración de Emacs, dotemacs

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages