2017-09-27 21:36:42 -05:00
|
|
|
Los dotfiles de thoughtbot
|
|
|
|
==========================
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
Requerimientos
|
|
|
|
--------------
|
|
|
|
|
|
|
|
Establece zsh como tu shell de inicio de sesión:
|
|
|
|
|
|
|
|
chsh -s $(which zsh)
|
|
|
|
|
|
|
|
Instalar
|
|
|
|
--------
|
|
|
|
|
|
|
|
Clona en tu laptop:
|
|
|
|
|
|
|
|
git clone git://github.com/thoughtbot/dotfiles.git ~/dotfiles
|
|
|
|
|
|
|
|
(o [haz un fork y mantenlo actualizado](http://robots.thoughtbot.com/keeping-a-github-fork-updated)).
|
|
|
|
|
|
|
|
Instala [rcm](https://github.com/thoughtbot/rcm):
|
|
|
|
|
|
|
|
brew tap thoughtbot/formulae
|
|
|
|
brew install rcm
|
|
|
|
|
|
|
|
Instala los dotfiles:
|
|
|
|
|
|
|
|
env RCRC=$HOME/dotfiles/rcrc rcup
|
|
|
|
|
|
|
|
Después de la instalación inicial, puedes ejecutarlo sin establecer la variable `RCRC`
|
|
|
|
(`rcup` establecerá un enlace simbólico (symlink) del repo `rcrc` hacia `~/.rcrc` para futuras
|
|
|
|
ejecuciones de `rcup`). [Ve el ejemplo](https://github.com/thoughtbot/dotfiles/blob/master/rcrc).
|
|
|
|
|
|
|
|
Este comando creará enlaces simbólicos (symlinks) para los archivos de configuración en tu
|
|
|
|
directorio principal.
|
|
|
|
|
|
|
|
Establecer la variable de entorno le dice a `rcup` que use las opciones de
|
|
|
|
configuración preestablecidas:
|
|
|
|
|
|
|
|
* Excluye los archivos `README.md`, `README-ES.md` y `LICENSE`, que son parte
|
|
|
|
del repositorio `dotfiles`, pero no necesitan enlazarse simbólicamente.
|
|
|
|
* Le da precedencia a las modificaciones personales que por defecto están en
|
|
|
|
`~/dotfiles-local`
|
|
|
|
* Por favor configura el archivo `rcrc` en caso de que quieras hacer
|
|
|
|
modificaciones personales en un directorio distinto.
|
|
|
|
|
|
|
|
|
|
|
|
Actualizar
|
|
|
|
----------
|
|
|
|
|
|
|
|
De vez en cuando deberías descargar las actualizaciones de estos dotfiles, y ejectuar
|
|
|
|
|
|
|
|
rcup
|
|
|
|
|
|
|
|
para ligar cualquier nuevo archivo e instalar los nuevos plugins de vim. **Nota** _Debes_ ejecutar
|
|
|
|
`rcup` después de descargar para asegurarte que todos los archivos de los plugins
|
|
|
|
estén instalados adecuadamente. Puedes ejecutar `rcup` con seguridad muchas veces
|
|
|
|
para actualizar pronto y muy seguido!
|
|
|
|
|
|
|
|
|
|
|
|
Haz tus propias modificaciones
|
|
|
|
------------------------------
|
|
|
|
|
|
|
|
Crea un directorio para tus modificaciones personales:
|
|
|
|
|
|
|
|
mkdir ~/dotfiles-local
|
|
|
|
|
|
|
|
Pon tus modificaciones en `~/dotfiles-local` anexado con `.local`:
|
|
|
|
|
|
|
|
* `~/dotfiles-local/aliases.local`
|
|
|
|
* `~/dotfiles-local/git_template.local/*`
|
|
|
|
* `~/dotfiles-local/gitconfig.local`
|
|
|
|
* `~/dotfiles-local/psqlrc.local` (proveemos `.psqlrc.local` en blanco para prevenir que `psql`
|
|
|
|
arroje un error, pero debes sobreescribir el archivo con tu propia copia)
|
|
|
|
* `~/dotfiles-local/tmux.conf.local`
|
|
|
|
* `~/dotfiles-local/vimrc.local`
|
|
|
|
* `~/dotfiles-local/vimrc.bundles.local`
|
|
|
|
* `~/dotfiles-local/zshrc.local`
|
|
|
|
* `~/dotfiles-local/zsh/configs/*`
|
|
|
|
|
|
|
|
Por ejemplo, tu `~/dotfiles-local/aliases.local` tal vez se vea así:
|
|
|
|
|
|
|
|
# Productivity
|
|
|
|
alias todo='$EDITOR ~/.todo'
|
|
|
|
|
|
|
|
Tu `~/dotfiles-local/gitconfig.local` tal vez se vea así:
|
|
|
|
|
|
|
|
[alias]
|
|
|
|
l = log --pretty=colored
|
|
|
|
[pretty]
|
|
|
|
colored = format:%Cred%h%Creset %s %Cgreen(%cr) %C(bold blue)%an%Creset
|
|
|
|
[user]
|
|
|
|
name = Dan Croak
|
|
|
|
email = dan@thoughtbot.com
|
|
|
|
|
|
|
|
Tu `~/dotfiles-local/vimrc.local` tal vez se vea así:
|
|
|
|
|
|
|
|
" Color scheme
|
|
|
|
colorscheme github
|
|
|
|
highlight NonText guibg=#060606
|
|
|
|
highlight Folded guibg=#0A0A0A guifg=#9090D0
|
|
|
|
|
|
|
|
Si prefieres prevenir la instalación de un plugin predeterminado de vim en `.vimrc.bundles`,
|
|
|
|
puedes ignorarlo sacándolo con `UnPlug` en tu `~/.vimrc.bundles.local`.
|
|
|
|
|
|
|
|
" Don't install vim-scripts/tComment
|
|
|
|
UnPlug 'tComment'
|
|
|
|
|
|
|
|
`UnPlug` puede ser usado para instalar tu propio fork de un plugin o para instalar
|
|
|
|
un plugin compartido con opciones personalizadas distintas.
|
|
|
|
|
|
|
|
" Only load vim-coffee-script if a Coffeescript buffer is created
|
|
|
|
UnPlug 'vim-coffee-script'
|
|
|
|
Plug 'kchmck/vim-coffee-script', { 'for': 'coffee' }
|
|
|
|
|
|
|
|
" Use a personal fork of vim-run-interactive
|
|
|
|
UnPlug 'vim-run-interactive'
|
|
|
|
Plug '$HOME/plugins/vim-run-interactive'
|
|
|
|
|
|
|
|
Para extender tus `git` hooks, crea scripts ejecutables en
|
|
|
|
`~/dotfiles-local/git_template.local/hooks/*` files.
|
|
|
|
|
|
|
|
Tu `~/dotfiles-local/zshrc.local` tal vez se vea así:
|
|
|
|
|
|
|
|
# load pyenv if available
|
2018-11-30 10:32:39 -05:00
|
|
|
if command -v pyenv &>/dev/null ; then
|
2017-09-27 21:36:42 -05:00
|
|
|
eval "$(pyenv init -)"
|
|
|
|
fi
|
|
|
|
|
|
|
|
Tu `~/dotfiles-local/vimrc.bundles.local` tal vez se vea así:
|
|
|
|
|
|
|
|
Plug 'Lokaltog/vim-powerline'
|
|
|
|
Plug 'stephenmckinney/vim-solarized-powerline'
|
|
|
|
|
|
|
|
Configuraciones de zsh
|
|
|
|
----------------------
|
|
|
|
|
|
|
|
Configuraciones adicionales para zsh pueden ir en el directorio `~/dotfiles-local/zsh/configs`. Este
|
|
|
|
tiene dos subdirectorios especiales: `pre` para archivos que deben ser cargados primero y `post`
|
|
|
|
para archivos que deben cargarse al final.
|
|
|
|
|
|
|
|
Por ejemplo, `~/dotfiles-local/zsh/configs/pre/virtualenv` hace uso de varias características
|
|
|
|
de shell que tal vez se vean afectadas por tu configuración, por lo tanto cárgalo primero:
|
|
|
|
|
|
|
|
# Load the virtualenv wrapper
|
|
|
|
. /usr/local/bin/virtualenvwrapper.sh
|
|
|
|
|
|
|
|
Establecer una vinculación clave puede ocurrir en `~/dotfiles-local/zsh/configs/keys`:
|
|
|
|
|
|
|
|
# Grep anywhere with ^G
|
|
|
|
bindkey -s '^G' ' | grep '
|
|
|
|
|
|
|
|
Algunos cambios, como `chpwd`, deben ocurrir en `~/dotfiles-local/zsh/configs/post/chpwd`:
|
|
|
|
|
|
|
|
# Show the entries in a directory whenever you cd in
|
|
|
|
function chpwd {
|
|
|
|
ls
|
|
|
|
}
|
|
|
|
|
|
|
|
Este directorio está a la mano para combinar dotfiles de múltiples equipos; un equipo
|
|
|
|
puede agregar el archivo `virtualenv`, otro el archivo `keys` y un tercero el archivo `chpwd`.
|
|
|
|
|
|
|
|
El archivo `~/dotfiles-local/zshrc.local` se carga después de `~/dotfiles-local/zsh/configs`.
|
|
|
|
|
|
|
|
Configuraciones de vim
|
|
|
|
----------------------
|
|
|
|
|
|
|
|
Similar al directorio de configuración para zsh descrito arriba, vim
|
|
|
|
automáticamente descarga los archivos en el directorio `~/dotfiles-local/vim/plugin`. Sin embargo, este no
|
|
|
|
tiene el mismo soporte para los subdirectorios `pre` ni `post` que tiene nuestro `zshrc`.
|
|
|
|
|
|
|
|
Este es un ejemplo `~/dotfiles-local/vim/plugin/c.vim`. Se carga cada vez que inicia vim,
|
|
|
|
sin importar de nombre del archivo:
|
|
|
|
|
|
|
|
# Indent C programs according to BSD style(9)
|
|
|
|
set cinoptions=:0,t0,+4,(4
|
|
|
|
autocmd BufNewFile,BufRead *.[ch] setlocal sw=0 ts=8 noet
|
|
|
|
|
2019-01-21 16:32:06 +01:00
|
|
|
¿Qué viene incluido?
|
2017-09-27 21:36:42 -05:00
|
|
|
-----------------
|
|
|
|
|
|
|
|
Configuración [vim](http://www.vim.org/):
|
|
|
|
|
2019-07-12 17:09:20 -04:00
|
|
|
* [fzf](https://github.com/junegunn/fzf.vim) para hallazgo difuso de archivos/buffer/tags.
|
2017-09-27 21:36:42 -05:00
|
|
|
* [Rails.vim](https://github.com/tpope/vim-rails) para una mejor navegación de la estructura
|
|
|
|
de archivos de Rails via `gf` y `:A` (alterno), `:Rextract` parciales,`:Rinvert` migraciones, etc.
|
|
|
|
* Ejecuta muchos tipos de pruebas [desde vim]([https://github.com/janko-m/vim-test)
|
|
|
|
* Establece `<leader>` a un sólo espacio.
|
|
|
|
* Navega entre los últimos dos archivos con espacio-espacio
|
|
|
|
* Resaltado de sintaxis para Markdown, HTML, JavaScript, Ruby, Go, Elixir, y más.
|
|
|
|
* Usa [Ag](https://github.com/ggreer/the_silver_searcher) en lugar de Grep cuando esté disponible.
|
|
|
|
* Map `<leader>ct` para re-indexar [Exuberant Ctags](http://ctags.sourceforge.net/).
|
|
|
|
* Usa [vim-mkdir](https://github.com/pbrisbin/vim-mkdir) para crear automáticamente directorios
|
|
|
|
no existentes antes de escribir el buffer.
|
|
|
|
* Usa [vim-plug](https://github.com/junegunn/vim-plug) para administrar plugins.
|
|
|
|
|
|
|
|
[tmux](http://robots.thoughtbot.com/a-tmux-crash-course)
|
|
|
|
configuración:
|
|
|
|
|
|
|
|
* Mejora la resolición del color.
|
|
|
|
* Eliminar desechos administrativos(bombre de sesión, nombre de host, tiempo) en la barra de estatus.
|
|
|
|
* Establece el prefijo a `Ctrl+s`
|
|
|
|
* Suaviza el color de la barra de estatus de un verde chillante a un gris claro.
|
|
|
|
|
|
|
|
Configuración para [git](http://git-scm.com/):
|
|
|
|
|
|
|
|
* Agrega el alias `create-branch` para crear branches.
|
|
|
|
* Agrega el alias `delete-branch` para borrar branches.
|
|
|
|
* Agrega el alias `merge-branch` para fusionar los branches en master.
|
|
|
|
* Agrega el alias `up` para buscar y rebasar `origin/master` en el branch.
|
|
|
|
Usa `git up -i` para rebases interactivos.
|
|
|
|
* Agrega el hook `post-{checkout,commit,merge}` para re-indexar tus ctags.
|
|
|
|
* Agrega `pre-commit` y `prepare-commit-msg` stubs que delegan hacia tu
|
|
|
|
configuración local.
|
|
|
|
* Agrega el alias `trust-bin` para anexar el `bin/` de un proyecto al `$PATH`.
|
|
|
|
|
|
|
|
Configuración de [Ruby](https://www.ruby-lang.org/en/):
|
|
|
|
|
|
|
|
* Agrega binstubs confiables al `PATH`.
|
|
|
|
* Descarga el administrador de versiones ASDF.
|
|
|
|
|
|
|
|
Alias de Shell y scripts:
|
|
|
|
|
|
|
|
* `b` para `bundle`.
|
|
|
|
* `g` sin argumentos es `git status` y con argumentos funciona como `git`.
|
|
|
|
* `migrate` para `rake db:migrate && rake db:rollback && rake db:migrate`.
|
|
|
|
* `mcd` para crear un directorio e ir a él.
|
|
|
|
* `replace foo bar **/*.rb` para buscar y reemplazar en una lista dada de archivos.
|
|
|
|
* `tat` para adjuntar a una sesión de tmux llamada igual que el directorio actual.
|
|
|
|
* `v` para `$VISUAL`.
|
|
|
|
|
|
|
|
Gracias
|
|
|
|
-------
|
|
|
|
|
|
|
|
Gracias [Contribuyentes](https://github.com/thoughtbot/dotfiles/contributors)!
|
|
|
|
Además, gracias a Corey Haines, Gary Bernhardt, y otros por compartir sus dotfiles
|
|
|
|
y otros scripts de shell que derivaron en la inspiración para los artículos
|
|
|
|
en este proyecto.
|
|
|
|
|
|
|
|
Licencia
|
|
|
|
--------
|
|
|
|
|
|
|
|
dotfiles está protegida por copyright © 2009-2017 thoughtbot. Es un software gratis, y tal vez
|
|
|
|
redistribuido bajo los términos especificados en el archivo de la [`LICENCIA`]
|
|
|
|
[`LICENCIA`]: /LICENSE
|
|
|
|
|
|
|
|
Acerca de thoughtbot
|
|
|
|
--------------------
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
dotfiles es mantenido y creado por thoughtbot, inc.
|
|
|
|
Los nombres y los logos de thoughtbot son marca registrada de thoughtbot, inc.
|
|
|
|
|
|
|
|
Amamos el código de fuente abiarta!
|
|
|
|
Ve [nuestros otros proyectos][community].
|
|
|
|
Estamos [disponibles para ser contratados][hire].
|
|
|
|
|
|
|
|
[community]: https://thoughtbot.com/community?utm_source=github
|
|
|
|
[hire]: https://thoughtbot.com/hire-us?utm_source=github
|