Añade mejoras al script de instalacion
This commit is contained in:
parent
0370bdcff1
commit
9dcb89afea
|
@ -102,48 +102,48 @@
|
|||
- [[Añadir soporte para editar archivos en docker][Añadir soporte para editar archivos en docker]]
|
||||
- [[Insertar fecha de hoy][Insertar fecha de hoy]]
|
||||
- [[Abrir eshell aquí][Abrir eshell aquí]]
|
||||
- [[Devolver enlaces][Devolver enlaces]]
|
||||
|
||||
* Acerca de este documento
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Acerca de este documento
|
||||
:END:
|
||||
Este documento está hecho en org-mode y es a la vez la explicación de todo lo que hay en mi configuración de emacs y la propia configuración de emacs. Esto se logra mediante la programación literaria, un concepto bastante molón de programación.
|
||||
Este documento está hecho en org-mode y es tanto mi configuración de emacs como la explicación de esta. Más información sobre esto aquí.
|
||||
|
||||
Mi idea es que termine siendo más o menos un tutorial de emacs, extendido con los articulos del blog. A ver como sale. El documento estará en este git.
|
||||
Mi idea es que termine siendo más o menos un tutorial de emacs, tal vez extendido con los articulos del blog. A ver como sale. Se puede instalar mi configuración de emacs del siguiente modo:
|
||||
|
||||
#+BEGIN_SRC sh :results code
|
||||
cat ~/.emacs.d/init.el
|
||||
#+BEGIN_SRC bash :tangle no :eval no
|
||||
git clone https://daemons.cf/cgit/dotfiles
|
||||
cd dotfiles
|
||||
./instala.sh emacs
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS:
|
||||
#+BEGIN_SRC emacs-lisp :tangle no
|
||||
;; Antes que nada, quitamos del path el org-mode que viene con emacs, por que es viejo
|
||||
(dolist (val load-path)
|
||||
(if (string-match "lisp\/org" val)
|
||||
(progn
|
||||
(setq org-viejo val)
|
||||
(delete val load-path)
|
||||
)
|
||||
)
|
||||
)
|
||||
Que hace esto exactamente? Básicamente, instalar todos los paquetes y scripts mencionados en este documento. De un modo más extendido, lo que hace el script de =instala.sh= es esto (la explicación en los comentarios):
|
||||
|
||||
;; Se añade la ruta del org-mode nuevo
|
||||
(add-to-list 'load-path (concat user-emacs-directory "el-get/org-mode-maint/lisp/"))
|
||||
#+BEGIN_SRC bash :tangle no :eval no
|
||||
# Establece el directorio de las configuraciones, lo crea y las copia ahí
|
||||
EMACSDIR="$HOME/.emacs.d"
|
||||
mkdir -p $EMACSDIR
|
||||
ln -sf $(pwd)/emacs.d/{init.el,init-literate.org} $EMACSDIR
|
||||
|
||||
;; Se intenta cargar el org-mode más nuevo. Si falla, vuelve a añadir al path la versión vieja para poder cargar el fichero de configuración
|
||||
(unless (require 'org nil 'noerror)
|
||||
(add-to-list 'load-path org-viejo)
|
||||
)
|
||||
# crear private-literate.org si no existe para que no se queje init.el
|
||||
if [[ ! -e $EMACSDIR/private-literate.org ]]
|
||||
then
|
||||
echo -e "* Vacio\n#+BEGIN_SRC emacs-lisp\n#+END_SRC" > $EMACSDIR/private-literate.org
|
||||
fi
|
||||
|
||||
;; Se carga la configuración pública y la privada
|
||||
(org-babel-load-file (concat user-emacs-directory "init-literate.org"))
|
||||
(org-babel-load-file (concat user-emacs-directory "private-literate.org"))
|
||||
# Instalar todos los paquetes de emacs
|
||||
emacs -Q --batch --eval "(ignore-errors (load-file \""$EMACSDIR/"init.el\"))"
|
||||
emacs -Q --batch --eval "(ignore-errors (load-file \""$EMACSDIR/"init-literate.el\"))"
|
||||
emacs -Q --batch --eval '(ignore-errors (load-file "/tmp/powerline.el"))'
|
||||
|
||||
# Por algún motivo al compilar desde el-get mete una ruta incorrecta en org-loaddefs.el
|
||||
find $EMACSDIR -name 'org-loaddefs.el' | xargs sed -i "s,org-mode-maint/lisp/,,g"
|
||||
|
||||
# Necesito permiso de superusuario para copiar los scripts capture y demacs en /usr/local/bin/
|
||||
sudo ln -sf $(pwd)/emacs.d/{capture,demacs} /usr/local/bin/
|
||||
#+END_SRC
|
||||
|
||||
Estas lineas cargan =org-mode= y mediante =org-babel= coge todos los bloques de lisp que hay en =init-literate.org= y los junta todos en =init-literate.el=, que luego carga cómo la configuración cómo tal. El archivo =private-literate.org= es, como su nombre indica, privado. Tengo mi contraseña de GNU Social y la de mi nextcloud.
|
||||
|
||||
PD: =init-literate.org= está [[http://daemons.cf/wp-content/init-literate.org][aquí]].
|
||||
Este archivo en formato org-mode está [[https://daemons.cf/cgit/dotfiles/plain/emacs.d/init-literate.org][aquí]]. Este archivo en formato HTML está [[https://daemons.cf/stories/mi-configuracin-de-emacs/][aquí]].
|
||||
* Configuración Genérica
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Configuración Genérica
|
||||
|
@ -163,7 +163,7 @@ cat `which demacs`
|
|||
USERID=`id -u`
|
||||
if [[ ! -e /tmp/emacs$USERID/server ]]
|
||||
then
|
||||
emacs-24.5 --daemon
|
||||
emacs --daemon
|
||||
emacsclient -c -n -e '(load-file "/tmp/powerline.el")' -e "(org-agenda-list)"
|
||||
else
|
||||
emacsclient -c -n -e "(org-agenda-list)"
|
||||
|
@ -2111,11 +2111,3 @@ directory to make multiple eshell windows easier."
|
|||
(insert (concat "ls"))
|
||||
(eshell-send-input)))
|
||||
#+END_SRC
|
||||
** Devolver enlaces
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Devolver enlaces
|
||||
:END:
|
||||
No le servirá de mucho a nadie, lo uso para copiar en el portapapeles las direcciones de un articulo de mi web.
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
#+END_SRC
|
||||
|
|
11
instala.sh
11
instala.sh
|
@ -56,23 +56,26 @@ then
|
|||
|
||||
elif [[ $1 = "emacs" ]]
|
||||
then
|
||||
# Establece el directorio de las configuraciones, lo crea y las copia ahí
|
||||
EMACSDIR="$HOME/.emacs.d"
|
||||
mkdir -p $EMACSDIR
|
||||
cp $(pwd)/emacs.d/{init.el,init-literate.org} $EMACSDIR
|
||||
ln -sf $(pwd)/emacs.d/{init.el,init-literate.org} $EMACSDIR
|
||||
|
||||
# crear private-literate.org si no existe para que no se queje init.el
|
||||
if [[ ! -e $EMACSDIR/private-literate.org ]]
|
||||
then
|
||||
echo -e "* Vacio\n#+BEGIN_SRC emacs-lisp\n#+END_SRC" > $EMACSDIR/private-literate.org
|
||||
fi
|
||||
|
||||
echo "Instalando paquetes de emacs."
|
||||
# Instalar todos los paquetes de emacs
|
||||
emacs -Q --batch --eval "(ignore-errors (load-file \""$EMACSDIR/"init.el\"))"
|
||||
emacs -Q --batch --eval "(ignore-errors (load-file \""$EMACSDIR/"init-literate.el\"))"
|
||||
emacs -Q --batch --eval '(ignore-errors (load-file "/tmp/powerline.el"))'
|
||||
|
||||
# Por algun motivo al compilar desde el-get mete una ruta incorrecta en org-loaddefs.el
|
||||
# Por algún motivo al compilar desde el-get mete una ruta incorrecta en org-loaddefs.el
|
||||
find $EMACSDIR -name 'org-loaddefs.el' | xargs sed -i "s,org-mode-maint/lisp/,,g"
|
||||
echo "Necesito permiso de superusuario para copiar los scripts capture y demacs en /usr/local/bin/."
|
||||
|
||||
# Necesito permiso de superusuario para copiar los scripts capture y demacs en /usr/local/bin/
|
||||
sudo ln -sf $(pwd)/emacs.d/{capture,demacs} /usr/local/bin/
|
||||
elif [[ $1 = "" ]]
|
||||
then
|
||||
|
|
Loading…
Reference in New Issue