Buscando respuestas desde la terminal con howdoi

tar

Muchas veces me pasa que debo realizar una tarea trivial con herramientas que estoy aprendiendo o con algunas que hace mucho tiempo no utilizo y, si bien me siento medianamente cómodo con la tarea, eventualmente llega un punto en el que mi memoria queda corta y debo recurrir a la documentación para seguir. Sin embargo en muchos casos es mucho más fácil buscar en Google (o en tu motor de búsqueda favorito), pero haciendo eso corro el riesgo de encontrar algún blog interesante y distraerme.

Para aquellos que prefieren realizar sus consultas en una terminal existe una alternativa: howdoi.

howdoi es una aplicación en línea de comandos que toma como parámetro una consulta y busca en internet la respueta para mostrarnosla directamente en nuestra terminal y así seguimos trabajando como si nada nos distrajo.

Instalación

sudo pip install howdoi

Ejemplos

howdoi test template used in django view

class TestPage(TestCase):


    def setUp(self):
       self.client = Client()

    def test_index_page(self):
        url = reverse('index')
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, 'index.html')
        self.assertContains(response, 'Company Name XYZ')

Y si la primera respuesta no es lo que estamos buscando, podemos pedirle un cierto número de respuestas para evaluar, esto lo hacemos con el parametro -n que recibe el numero de respuestas a mostrar.

howdoi -n4 run bash command from emacs buffer

--- Answer 1 ---
(setq my-command
      (concat "IFS=: read -ra dirs <<<\"$PATH\"\n"
              "for dir in ${dirs[@]}; do\n"
              " echo got dir \"$dir\"\n"
              "done\n"))

(shell-command (format "bash -c %s" (shell-quote-argument my-command)))

--- Answer 2 ---
(shell-command "xterm &")

--- Answer 3 ---
(defun cygwin-shell ()
  "Run cygwin bash in shell mode."
  (interactive)
  (let ((explicit-shell-file-name "C:/cygwin/bin/bash"))
    (call-interactively 'shell)))

--- Answer 4 ---
(setq explicit-shell-file-name
      "C:/Program Files (x86)/Git/bin/bash.exe")
(setq shell-file-name explicit-shell-file-name)
(add-to-list 'exec-path "C:/Program Files (x86)/Git/bin")