Articles

Dotfiles

Muchos programas se configuran utilizando archivos de texto sin formato conocidos como «dotfiles»(porque los nombres de archivo comienzan con un ., por ejemplo, ~/.gitconfig, para que estén ocultos en la lista de directorios ls por defecto).

Muchas de las herramientas que utiliza probablemente tengan una gran cantidad de configuraciones que se pueden ajustar con precisión. A menudo,las herramientas se personalizan con lenguajes especializados, por ejemplo, Vimscript para Vim o el lenguaje propio del shell para un shell.

Personalizar y adaptar sus herramientas a su flujo de trabajo preferido lo hará más productivo. Le recomendamos que invierta tiempo en personalizar su herramienta en lugar de clonar los archivos de puntos de otra persona desde GitHub.

Probablemente ya tengas configurados algunos archivos de puntos. Algunos lugares para buscar:

  • ~/.bashrc
  • ~/.emacs
  • ~/.vim
  • ~/.gitconfig

Algunos programas no poner los archivos en tu carpeta de inicio directamente y en lugar de ponerlos en una carpeta debajo de ~/.config.

Los archivos de puntos no son exclusivos de las aplicaciones de línea de comandos, por ejemplo, el reproductor de video MPV se puede configurar para editar archivos en ~/.config/mpv

Puede obtener información sobre la configuración de su herramienta leyendo las páginas de documentación en línea demanan. Otra gran manera es buscar en Internet publicaciones de blog sobre programas específicos, donde los autores le informarán sobre sus personalizaciones preferidas. Otra forma de aprender sobre las personalizaciones es mirar a través de los archivos de puntos de otras personas: puedes encontrar toneladas de ubicaciones de archivos de puntos en GitHub, mira el más popular aquí (sin embargo, te aconsejamos que no copies a ciegas las configuraciones).

Organización

¿Cómo debe organizar sus archivos de puntos? Deben estar en su propia carpeta, bajo control de versiones, y enlazados simbólicamente en su lugar usando un script. Esto tiene los beneficios de:

  • Fácil instalación: si inicia sesión en una máquina nueva, la aplicación de sus personalizaciones solo tomará un minuto
  • Portabilidad: sus herramientas funcionarán de la misma manera en todas partes
  • Sincronización: puede actualizar sus archivos de puntos en cualquier lugar y mantenerlos sincronizados
  • Seguimiento de cambios: probablemente mantendrá sus archivos de puntos durante toda su carrera de programación, y es bueno tener un historial de versiones para proyectos de larga duración
cd ~/srcmkdir dotfilescd dotfilesgit inittouch bashrc# create a bashrc with some settings, e.g.:# PS1='\w > 'touch installchmod +x install# insert the following into the install script:# #!/usr/bin/env bash# BASEDIR=$(dirname $0)# cd $BASEDIR## ln -s ${PWD}/bashrc ~/.bashrcgit add bashrc installgit commit -m 'Initial commit'

Personalizaciones específicas de máquinas

La mayoría de las veces, querrá la misma configuración en todas las máquinas, pero a veces, querrá un pequeño delta en un máquina. Aquí hay un par de caminos que puede manejar esta situación:

Rama por máquina

Use control de versiones para mantener una rama por máquina. Este enfoque es lógicamente sencillo, pero puede ser bastante pesado.

instrucciones If

Si el archivo de configuración lo admite, utilice el equivalente a las instrucciones if para aplicar personalizaciones específicas de la máquina. Por ejemplo, su shell podría tener algo como:

if ]; then {do_something else}; fi# Darwin is the architecture name for macOS systemsif ]; then {do_something}; fi# You can also make it machine specificif ]; then {do_something}; fi

Includes

Si el archivo de configuración lo admite, use includes. Por ejemplo,un ~/.gitconfig puede tener una configuración:

 path = ~/.gitconfig_local

Y, a continuación, en cada máquina, ~/.gitconfig_local puede contener máquina-specificsettings. Incluso podría rastrearlos en un repositorio separado para configuraciones específicas de la máquina.

Esta idea también es útil si desea que diferentes programas compartan algunas configuraciones. Por ejemplo, si usted quiere bash y zsh compartir el mismo conjunto de alias puede escribir debajo de .aliases y el siguiente bloque en ambos.

# Test if ~/.aliases exists and source itif ; then source ~/.aliasesfi

Recursos

  • Su instructores dotfiles:Anish,Jon,Jose
  • GitHub hace dotfiles: dotfile marcos,utilidades, ejemplos y tutoriales
  • Shell startupscripts: anexplanation de los diferentes archivos de configuración utilizados para el shell

Ejercicios

  1. Crear una carpeta para su dotfiles y configurar versioncontrol.

  2. Añadir una configuración para al menos un programa, por ejemplo, su shell, con alguna personalización (para empezar, puede ser algo tan simple como personalizar su mensaje de shell configurando $PS1).

  3. Configure un método para instalar sus archivos de puntos rápidamente (y sin esfuerzo manual) en una máquina nueva. Esto puede ser tan simple como un script de shell que llama a ln -spara cada archivo, o puede usar una utilidad especializada.

  4. Pruebe su script de instalación en una máquina virtual nueva.

  5. Migre todas las configuraciones de herramientas actuales a su repositorio dotfiles.

  6. Publica tus archivos de puntos en GitHub.

Editar esta página.

Con licencia CC BY-NC-SA.