]> git.r.bdr.sh - rbdr/r.bdr.sh/blobdiff - jekyll/_posts/2012-10-29-cuatro-tips-para-ser-un-buen-junkie-de-la-terminal.md
Updates projects with new ones
[rbdr/r.bdr.sh] / jekyll / _posts / 2012-10-29-cuatro-tips-para-ser-un-buen-junkie-de-la-terminal.md
index dd425cd717173c154cc59dc6766a52289195d33d..bdf4ea088f343e74d9f302e4518d4cf817d516df 100644 (file)
@@ -1,70 +1,78 @@
-# Cuatro tips para ser un buen junkie de la terminal
+---
+layout: post
+title: Cuatro tips para ser un buen junkie de la terminal
+category: posts
+tags: espanol vim zsh tmux tips
+color: cyan
+header_image: tips-4-terminal.png
+description: "Cuatro tips para mantener y/o amplificar tu adicción a la terminal. De manera legal! (woo)"
+---
 
 La terminal es un lugar bonito: todo es más rápido y conciso, puedes hacer más en un comando de lo que puedes hacer en una hora dando clicks, además, siempre te devuelve los libros que le prestas y no se queja si llegas repentinamente a su casa de visita; es casi perfecta. Así sin cambiar nada en cualquier sistema unixoso, ya sea una mac o linux o lo que sea que uses, puedes hacer mucho más de lo que creías que era posible con tan solo abrir una terminal y ponerte a regurgitar comandos.
 
 Lamentablemente no todo es bonito en el mundo de las terminales, oh no. La terminal es una adicción. Empieza de manera inocente: solo la abres para copiar algunas cosas o listar directorios, tal vez un grep de vez en cuando; o, "yo no quería usarla pero me dijeron que arreglaría mis problemas". Todos tenemos historias como esa, todos empezamos así, pero lo inocente pronto va escalando y ya no entras solo por un `ls` o un `cp`, ahora estás entrando a tu servidor por `ssh`; dejaste el `grep` y ahora usas `ack`; empiezas a usar tu source control sin GUI. Va empeorando cada vez más: Empiezas a ponerte nervioso cada vez que tienes que salir de la terminal, notas como el mouse no es tu amigo como lo pensabas, le gritas sudo a las personas cuando no quieren pasarte la salsa. Oh, es un problema muy grande y cada vez quieres más y más. Una vez que llegas a este estado no queda más que dejarse llevar, pero cada vez tocas límites más oscuros del internet: empiezas a buscar aplicaciones, tips, one-liners y plugins. ¡ALGUIEN PIENSE EN LOS NIÑOS!
 
-Afortunadamente no tienes que buscar muy lejos, pues tengo aquí un programa de cuatro pasos para hacerte un mejor junkie de la terminal *(¿Qué, quién dijo algo sobre curar la adicci��n... que monstruo har��a tal cosa?)*
+Afortunadamente no tienes que buscar muy lejos, pues tengo aquí un programa de cuatro pasos para hacerte un mejor junkie de la terminal *(¿Qué, quién dijo algo sobre curar la adicción... que monstruo haría tal cosa?)*
 
 ## 1. Usa vim
 
-`vim` es una droga bastante particular: ves a los usuarios veteranos y te sorprende la velocidad con la que hacen todo, parecen magos controlando texto; aut��nticos code-benders. Luego decides intentarlo y te quedas pasmado por aproximadamente quince minutos pensando: "��Que significa normal? ��� ��Dej�� el horno prendido? ��� ��Como empiezo a escribir? ... ��cre�� que era un editor de texto!" y luego lo cerrar��s con un gran sentido de confusi��n solo para reintentarlo cuando el siguiente art��culo sobre `vim` llegue al frontpage de Hacker News. Pero no te rindas:
+`vim` es una droga bastante particular: ves a los usuarios veteranos y te sorprende la velocidad con la que hacen todo, parecen magos controlando texto; auténticos code-benders. Luego decides intentarlo y te quedas pasmado por aproximadamente quince minutos pensando: "¿Que significa normal? — ¿Dejé el horno prendido? — ¿Como empiezo a escribir? ... ¡creí que era un editor de texto!" y luego lo cerrarás con un gran sentido de confusión solo para reintentarlo cuando el siguiente artículo sobre `vim` llegue al frontpage de Hacker News. Pero no te rindas:
 
-1. Es normal sentirse as��.
+1. Es normal sentirse así.
 2. Todo va a mejorar.
 3. Vas a subestimar lo que quiero decir con "Todo va a mejorar".
 4. Code-bending.
 
-Empezar con `vim` es una experiencia m��s bien rara porque no est��s acostumbrado a usar un editor con esa filosof��a, y eso toma pr��ctica; es como aprender un nuevo lenguaje. Mi consejo es el siguiente: avientate un tutorial b��sico, luego usa vim, luego usa vim, luego usa vim y luego por dios y todo lo sagrado usa vim. Los comandos tienen que grabarse en tu memoria muscular y la mejor forma de hacerlo es usandolos una y otra vez. Guarda un [cheat sheet][vim-cheat2] y consultalo cuando no sepas que hacer y sigue trabajandolo. ��� Ah, si, una recomendaci��n que puede no ser muy popular en algunos c��rculos es que no instales plugins cuando est��s empezando: aprender a usar lo que el editor solo te ofrece te ayudar�� a conocer m��s el n��cleo y te har�� r��pido sin hacerte dependiente en una serie de add-ons que pueden o no existir en el `vim` de tu abuelita (si, tu abuelita lo usa y es muy buena con ��l, pero no instala plugins ��� bueno, solo CtrlP)
+Empezar con `vim` es una experiencia más bien rara porque no estás acostumbrado a usar un editor con esa filosofía, y eso toma práctica; es como aprender un nuevo lenguaje. Mi consejo es el siguiente: avientate un tutorial básico, luego usa vim, luego usa vim, luego usa vim y luego por dios y todo lo sagrado usa vim. Los comandos tienen que grabarse en tu memoria muscular y la mejor forma de hacerlo es usandolos una y otra vez. Guarda un [cheat sheet][vim-cheat2] y consultalo cuando no sepas que hacer y sigue trabajandolo. — Ah, si, una recomendación que puede no ser muy popular en algunos círculos es que no instales plugins cuando estés empezando: aprender a usar lo que el editor solo te ofrece te ayudará a conocer más el núcleo y te hará rápido sin hacerte dependiente en una serie de add-ons que pueden o no existir en el `vim` de tu abuelita (si, tu abuelita lo usa y es muy buena con él, pero no instala plugins — bueno, solo CtrlP)
 
-Es com��n que durante tus primeros hits de `vim` quieras dejarlo y volver al abrazo c��lido y familiar de tu editor de costumbre. No. Lo. Hagas. Sigue editando hasta que te sangren los dedos y obligate a usarlo hata que te sientas c��modo: Una vez que superes la barrera inicial, ir��s haciendote m��s r��pido, m��s r��pido, hasta el grado en que te empieza a molestar no tener los controles de `vim` en los clientes de correo, en los `<textarea>` y en los cuadernos de composici��n.
+Es común que durante tus primeros hits de `vim` quieras dejarlo y volver al abrazo cálido y familiar de tu editor de costumbre. No. Lo. Hagas. Sigue editando hasta que te sangren los dedos y obligate a usarlo hata que te sientas cómodo: Una vez que superes la barrera inicial, irás haciendote más rápido, más rápido, hasta el grado en que te empieza a molestar no tener los controles de `vim` en los clientes de correo, en los `<textarea>` y en los cuadernos de composición.
 
-Un tutorial recomendado es `vimtutor`: corriendo ese comando en la terminal, podr��s seguir un ��til tutorial guiado usando9 el mismo editor. Puedes complementarlo con [uno de tantos][vim-cheat2] [Cheat Sheets.][vim-cheat1]
+Un tutorial recomendado es `vimtutor`: corriendo ese comando en la terminal, podrás seguir un útil tutorial guiado usando el mismo editor. Puedes complementarlo con [uno de tantos][vim-cheat2] [Cheat Sheets.][vim-cheat1]
 
 ## 2. Usa tmux
 
-��Qu�� es mejor que una terminal? ��Muchas terminales!. Cantidades enormes de terminales entre las que te puedes mover con el teclado. `tmux` o `terminal multiplexer` es una aplicaci��n que te ayuda a partir tus sesiones de terminal en pesta��as y p��neles para particionar tu pantalla y organizar mejor tus diferentes terminales. ��Cu��l es el beneficio? Pues todo depende de para que lo uses; en mi caso: Puedo poner `vim` en la mitad izquierda de la pantalla y dos sesiones de `zsh` en la otra mitad, una arriba de la otra; en la de arriba puedo correr comandos como `ack` y `tree`, o hacer operaciones en el disco; en el otro puedo tener el servidor de rails, un irb o algun log con `less` o `tail`; cuando tengo el monitor extra conectado puedo poner una columna con la letra de la canci��n que estoy escuchando en rdio; tambi��n podr��a tener `vim` y `zsh` en una pesta��a, `irb`, `rails s` o `mongo` en otro; o puedo tener un proyecto de rails en un tab, cada rack engine que est�� usando en otro y el server de staging en ssh en otro... `htop` en bla bla bla bla bla bla ... De verdad cambia como organizas tu trabajo.
+¿Qué es mejor que una terminal? ¡Muchas terminales!. Cantidades enormes de terminales entre las que te puedes mover con el teclado. `tmux` o `terminal multiplexer` es una aplicación que te ayuda a partir tus sesiones de terminal en pestañas y páneles para particionar tu pantalla y organizar mejor tus diferentes terminales. ¿Cuál es el beneficio? Pues todo depende de para que lo uses; en mi caso: Puedo poner `vim` en la mitad izquierda de la pantalla y dos sesiones de `zsh` en la otra mitad, una arriba de la otra; en la de arriba puedo correr comandos como `ack` y `tree`, o hacer operaciones en el disco; en el otro puedo tener el servidor de rails, un irb o algun log con `less` o `tail`; cuando tengo el monitor extra conectado puedo poner una columna con la letra de la canción que estoy escuchando en rdio; también podría tener `vim` y `zsh` en una pestaña, `irb`, `rails s` o `mongo` en otro; o puedo tener un proyecto de rails en un tab, cada rack engine que esté usando en otro y el server de staging en ssh en otro... `htop` en bla bla bla bla bla bla ... De verdad cambia como organizas tu trabajo.
 
-La otra cosa que hace muy bien es permitirte despegarte de una sesi��n para reconectarte luego. Puedes abrir una sesi��n de `tmux` para un proyecto, y cuando ya quieras olvidarte de el simplemente te despegas de la sesi��n y vuelves a tu terminal normal o empiezas a trabajar en otro proyecto. Cuando quieras volver a el, solo vuelves a pegarte a la sesi��n y de nuevo estar��n tus ventanas como las hab��as dejado. Es bastante sorprendente el cambio que hace poder "entrar y salir" de contextos: cuando vuelves a la posici��n de un proyecto anterior, es como si tu cerebro se cambiara de modo al mismo en que estabas cuando lo dejaste. Incluso puedes cerrar la terminal y seguir��n ah�� (solo no apagues la computadora, para eso hay que seguir leyendo)
+La otra cosa que hace muy bien es permitirte despegarte de una sesión para reconectarte luego. Puedes abrir una sesión de `tmux` para un proyecto, y cuando ya quieras olvidarte de el simplemente te despegas de la sesión y vuelves a tu terminal normal o empiezas a trabajar en otro proyecto. Cuando quieras volver a el, solo vuelves a pegarte a la sesión y de nuevo estarán tus ventanas como las habías dejado. Es bastante sorprendente el cambio que hace poder "entrar y salir" de contextos: cuando vuelves a la posición de un proyecto anterior, es como si tu cerebro se cambiara de modo al mismo en que estabas cuando lo dejaste. Incluso puedes cerrar la terminal y seguirán ahí (solo no apagues la computadora, para eso hay que seguir leyendo)
 
-Adem��s, te hace ver interesante.
+Además, te hace ver interesante.
 
-Si quieres configurar mejor tu `tmux` y aprender algo sobre que puede hacer, recomiendo [esta gu��a][tmux1] [en dos partes][tmux2]. 
+Si quieres configurar mejor tu `tmux` y aprender algo sobre que puede hacer, recomiendo [esta guía][tmux1] [en dos partes][tmux2]. 
 
 ### Extra hit: tmuxinator ###
 
-Si empiezas a usar `tmux` y quieres tener m��s control sobre como empezar proyectos y que hacer en caso de que apagues la computadora y se mueran tus sesiones, entonces necesitas [`tmuxinator`][tmuxinator]: una gema de ruby que te permite definir tus pesta��as, p��neles y los comandos que correr�� cada uno en un conveniente archivo de yaml que se usar�� para generar tu ambiente cada vez que tenga que reiniciar la sesi��n.
+Si empiezas a usar `tmux` y quieres tener más control sobre como empezar proyectos y que hacer en caso de que apagues la computadora y se mueran tus sesiones, entonces necesitas [`tmuxinator`][tmuxinator]: una gema de ruby que te permite definir tus pestañas, páneles y los comandos que correrá cada uno en un conveniente archivo de yaml que se usará para generar tu ambiente cada vez que tenga que reiniciar la sesión.
 
 ## 3. Sincroniza tus dotfiles
 
-Llega un punto en la vida de todo junkie en la cual tiene que usar una computadora nueva, prestada o robada. Ach! Terrible. Despu��s de todo el tiempo que invertiste configurando tu prompt, tus opciones de `ack`, tu configuraci��n de `vim`, tu profile de `bash` o `zsh`; solo para perderlo todo. Llegas a un triste prompt blanco y vac��o y tienes tres opciones: a) re-configuras todo hasta un modo aceptable, b) usar la terminal en modo vainilla, o c) pasar tus archivos de configuraci��n de una maquina a otra.
+Llega un punto en la vida de todo junkie en la cual tiene que usar una computadora nueva, prestada o robada. Ach! Terrible. Después de todo el tiempo que invertiste configurando tu prompt, tus opciones de `ack`, tu configuración de `vim`, tu profile de `bash` o `zsh`; solo para perderlo todo. Llegas a un triste prompt blanco y vacío y tienes tres opciones: a) re-configuras todo hasta un modo aceptable, b) usar la terminal en modo vainilla, o c) pasar tus archivos de configuración de una maquina a otra.
 
-Obviamente, la raz��n m��s sana es c), pero cargar los archivos es una molestia y adem��s, ��Qu�� pasa si luego modificas una en otra maquina? o ��Qu�� pasa si tienes que usar la terminal remota de un hermita��o que no te permite conectar dispositivos f��sicos? ... Si tan solo *git* hubiera *git* algo *git* que haga *git* el manejo *git* de versiones de archivos de texto *giiiiit* de una manera *giiiiiiiit* distribuida y que adem��s sea f��cil *giiiiiiiiiiiiiiiit* de *giiiiiiiiiiiiiiiiiiiiiit*....
+Obviamente, la razón más sana es c), pero cargar los archivos es una molestia y además, ¿Qué pasa si luego modificas una en otra maquina? o ¿Qué pasa si tienes que usar la terminal remota de un hermitaño que no te permite conectar dispositivos físicos? ... Si tan solo *git* hubiera *git* algo *git* que haga *git* el manejo *git* de versiones de archivos de texto *giiiiit* de una manera *giiiiiiiit* distribuida y que además sea fácil *giiiiiiiiiiiiiiiit* de *giiiiiiiiiiiiiiiiiiiiiit*....
 
 `git`.
 
-Puedes crear un directorio `.dotfiles` en tu directorio base y hacer un repo de git ah�� y meter todos tus "dotfiles" como `.bash_profile` o `.ackrc` o todo el directorio `.vim`. Luego solo es cuesti��n de hacer links a su lugar original y ahora podr��s clonar tu repo y reaplicar tus configuraciones en cualquier maquina que tenga git. ��Y si no tiene `git`? ��Por qu�� no lo tiene? ��Por qu�� la estas usando? ��De qui��n es? ��Qui��n podr��a estar a la puerta a estas horas? ��Acaso es el due��o de la computadora? Ahora si que est��s en problemas.
+Puedes crear un directorio `.dotfiles` en tu directorio base y hacer un repo de git ahí y meter todos tus "dotfiles" como `.bash_profile` o `.ackrc` o todo el directorio `.vim`. Luego solo es cuestión de hacer links a su lugar original y ahora podrás clonar tu repo y reaplicar tus configuraciones en cualquier maquina que tenga git. ¿Y si no tiene `git`? ¿Por qué no lo tiene? ¿Por qué la estas usando? ¿De quién es? ¿Quién podría estar a la puerta a estas horas? ¿Acaso es el dueño de la computadora? Ahora si que estás en problemas.
 
-Si tienes dudas, puedes consultar [esta buena gu��a][dotfiles] para tener tus dotfiles sincronizados en "la nuuuubeeeeee" *(agregue un efecto de arcoiris)*.
+Si tienes dudas, puedes consultar [esta buena guía][dotfiles] para tener tus dotfiles sincronizados en "la nuuuubeeeeee" *(agregue un efecto de arcoiris)*.
 
 ## 4. Usa zsh
 
-`bash` es una buena terminal y ha sido mi amiga desde hace a��os: hemos vivido tantas cosas juntos que se podr��a decir que nuestra relaci��n es tal que solo una persona superficial la dejar��a. Pues soy superficial, y la dej��. Por algo mejor: `zsh`.
+`bash` es una buena terminal y ha sido mi amiga desde hace años: hemos vivido tantas cosas juntos que se podría decir que nuestra relación es tal que solo una persona superficial la dejaría. Pues soy superficial, y la dejé. Por algo mejor: `zsh`.
 
-��Blasfemia! ��Qu�� podr��a tener de mejor `zsh`? Una lista de mis features favoritos:
+¡Blasfemia! ¿Qué podría tener de mejor `zsh`? Una lista de mis features favoritos:
 
 * Autocomplete en los parametros de comandos *(e.g. con kill te muestra una lista de procesos y con git te muestra los comandos como checkout, merge, etc.)*
 * Autocompletado interno de paths *(e.g. /Us/be/Do/pr/m + tab => /Users/benbeltran/Documents/projects/my-project.)*
 * Historial compartido.
-* Correci��n de errores *(e.g. si escribes vmi, te preguntar�� si no quieres decir vim :)*
+* Correción de errores *(e.g. si escribes vmi, te preguntará si no quieres decir vim :)*
 * Poder navegar con las flechas cuando aparecen las opciones para tab completion
-* Globbing avanzado que te permite hacer operaciones avanzadas como seleccionar solo los symlinks de un subdirectorio, o solo los directorios que tengan cierto patr��n. * Muchos, muchos plugins.
+* Globbing avanzado que te permite hacer operaciones avanzadas como seleccionar solo los symlinks de un subdirectorio, o solo los directorios que tengan cierto patrón. * Muchos, muchos plugins.
 
-La mejor forma de disfrutar `zsh` es utilizando [oh-my-zsh][oh-my-zsh]: una forma sencilla de instalar `zsh` con una buena cantidad de plugins, temas y configuraciones que te har��n la vida m��s f��cil. Yo personalmente uso una versi��n modificada del tema "prose", pero hay mucha variedad para elegir.
+La mejor forma de disfrutar `zsh` es utilizando [oh-my-zsh][oh-my-zsh]: una forma sencilla de instalar `zsh` con una buena cantidad de plugins, temas y configuraciones que te harán la vida más fácil. Yo personalmente uso una versión modificada del tema "prose", pero hay mucha variedad para elegir.
 
 ---------------------------------
 
-Espero que haya sido de utilidad para esos junkies que estan buscando que m��s pueden hacer con su terminal, y espero que caigan m��s y m��s en el vicio. Si quieres rega��arme o exigirme pago por alg��n destrozo que haya causado en tu casa, o si le molesta que lo tutee, puede encontrarme en [twitter][twitter] o por [correo / jabber][mail].
+Espero que haya sido de utilidad para esos junkies que estan buscando que más pueden hacer con su terminal, y espero que caigan más y más en el vicio. Si quieres regañarme o exigirme pago por algún destrozo que haya causado en tu casa, o si le molesta que lo tutee, puede encontrarme en [twitter][twitter] o por [correo / jabber][mail].
 
 [vim-cheat1]: http://www.viemu.com/vi-vim-cheat-sheet.gif
 [vim-cheat2]: http://www.tuxfiles.org/linuxhelp/vimcheat.html
@@ -73,5 +81,6 @@ Espero que haya sido de utilidad para esos junkies que estan buscando que m�
 [tmuxinator]: https://github.com/aziz/tmuxinator
 [dotfiles]: http://blog.smalleycreative.com/tutorials/using-git-and-github-to-manage-your-dotfiles/
 [oh-my-zsh]: https://github.com/robbyrussell/oh-my-zsh
-[twitter]: https://twitter.com/benbeltran
+[twitter]: https://twitter.com/pigeonfolk
 [mail]: mailto:ben@nsovocal.com
+[junkie-header]: /img/articles/junkie/junkie-header.png