Wordpress desde VIM.

Publicando en wordpress desde VIM fácilmente y sin complicaciones.

Hace unos días que inaugure este nuevo blog con la intención de ir publicando
todo lo que voy aprendiendo en mi día a día con el software libre y la
programación en general. Me decidí a usar wordpress por la cantidad de plugins
que tiene disponible y por ser bastante flexible (cosa que no logre encontrar en
blogger)

Ahora bien, como programador uno se acostumbra a trabajar con varios lenguajes
diferentes (C++, Python, Javascript, Asm y hasta vbs en una triste época de
antaño… ).

Todos estos lenguajes poseen sintaxis diferentes y formas de
trabajar diferentes ya que algunos como javascript son enfocados a la web
(aunque ahora esta en todos lados) y otros mas a entornos de escritorio o
hardware (como Asm que lo usaba para programar PIC en una época para mi dorada… :) )

Para trabajar cómodamente con cada uno de estos lenguajes tuve que instalar unos
cuantos editores de código (cada uno enfocado a un lenguaje en particular) hasta
que un amigo me recomendó que aprenda a utilizar VIM. ¿ṕorque? fue lo primero
que le pregunte y la respuesta no se hizo esperar… “porque como programador
pasas demasiadas horas escribiendo código y lo que menos necesitas es tener que aprender a usar 4 o 5 editores distintos para lograr algo…”
.

aunque me pareció que estaba exagerando y no le preste mucha atención le dedique un tiempo a aprender VIM, y admito que la curva de aprendizaje no fue tan simple como con
otros editores (y hasta muchas veces lo mande a la mierda… ). Persevere y pude llegar a aprender a utilizarlo.

Me encanto poder usar C++ con algunas rutinas inline de asm y a la vez poder programar
también usando un toolkit como Qt (creo que era la 3.1 por aquel entonces…) todo desde un mismo sitio sin tener que andar enroscándome en boludeces de los IDES
(lo digo porque sufrí kdevelop en su momento…).

Ahora bien… ¿para que $%&/ me contas todo esto?, pues porque una vez mas VIM
fue la respuesta que necesitaba…

Al terminar de instalar y configurar wordpress, lo primero que hice fue ir
alegremente a “Todas las entradas/Añadir nueva” directamente con la intención de
comenzar a escribir un articulo y me tope con esta horrible escena:

captura.png

¿Que carajos es esto? ¿es una broma de mal gusto o que?

 

¿como pretenden los de wordpress que pueda editar mis artículos poniéndome al todopoderoso bloc de notas como editor…? Aja dije! hay un botón que de seguro va a desplegar un libreoffice de opciones para editar!, le doy clic y me encuentro con esto :(

captura2.png

 

 

 

Ok ok… me quede impresionado con lo que vi, ¿pegar desde word es mas
importante que la opción de cambiar el tamaño de la fuente?, ¿sera que poner un
par de botones mas consumiría demasiados recursos del navegador?…
instantáneamente puse a buscar un plugin que me permitiera cambiar ese
insulso editor por algo mas decente, y me encontré con TinyMCE Advanced

captura3.png

 

 

 

 

Con lo cual la cosa ya cambiaba un poco, ya podía agregarle un poco mas de opciones al editor por defecto de Wordpress, pero aun seguía siendo un problema agregar fragmentos de código fuente sin necesidad de tocar el html del post.

Resignado decidí escribir algunos post usando este plugin y otro mas
que me permitía colorear un poco la sintaxis de los lenguajes que usaba WP-Syntax
(aunque todavía no publique nada que necesitara un resaltado de sintaxis
especial…).

Ahora bien… llegado a este punto recordé las palabras de mi amigo:
“porque como programador pasas demasiadas horas escribiendo código y
lo que menos necesitas es tener que aprender a usar 4 o 5 editores distintos para lograr algo…”.

Dije por dentro… naaa no creo que se pueda usar wordpress desde vim y sin dudar escribí en el
todopoderoso duckduckgo “vim wordpress !gh” y me quede como
culo en el agua (anonadado) con lo que encontré… ¡Si se puede!, y es mas, no
solamente se pueden escribir post usando VIM! sino que también se pueden
administrar varios blogs y escribir entradas o actualizarlas usando Markdown directamente, sin necesidad de complicarse la vida para nada. ¡Una vez mas VIM demostró ser la solución!.

El plugin al que me refiero se llama VimRepress
y nos permite gestionar fácilmente los artículos que deseemos,podemos editarlos
borrarlos crearlos publicarlos directamente o almacenarlos como borradores para
publicarlos luego.

Para instalarlo primero hay que tener instalado el paquete python-markdown

sudo apt-get install python-markdown

(en debían y derivados)

Una vez instalado este paquete iniciamos VIM y instalamos VimRepress (si usas
Vundle simplemente escribí

:BundleInstall VimRepress!

si no sabes como usar Vundle mira este este articulo done explico como usar Vundle para gestionar nuestros plugins. :)

Una vez instalado, necesitamos crear en nuestro $HOME un archivo llamado .vimpressrc con el siguiente contenido:

 touch ~/.vimpressrc

Una vez creado el archivo, lo rellenamos con los datos del blog:

[Blog0]
blog_url = http://miblog.wordpress.com
username = tu_nombre_de_usuario
password = tu_clave

Ahora bien, una vez echo esto para poder usar wordpress desde vim simplemente reiniciamos VIM disfrutamos… :)

Para crear un nuevo post escribimos

:BlogNew

e inmediatamente vemos como se nos habré una
plantilla como esta para crear rápidamente un articulo.

=========== Meta ============
“StrID :
“Title : [Nombre del articulo]
“Slug :
“Cats :
“Tags : [tags separados por ,]
“=============================
“EditType : post
“EditFormat : Markdown
“BlogAddr : http://tublog.wordpress.com
“========== Content ==========

Como te podrás imaginar, esta cabecera contiene los datos mas relevantes de tu post (como el nombre y las etiquetas entre otros). Basta con rellenar el campo “nombre” y los “Tags” ya que cuando publiquemos el post vim automáticamente
rellenara el campo StrID con el ID del post.

Una vez que completemos la cabecera estamos listos para escribir nuestro post, para ello vemos que el formato de edición es Markdown:

EditType   : post
“EditFormat : Markdown
“BlogAddr : http://tublog.wordpress.com
“========== Content ==========

Si no sabes Markdown no te preocupes, es realmente muy sencillo de aprender y como veras agiliza muchísimo la edición de tus artículos.

Markdown es un lenguaje de marcado ligero (de ahí el nombre) que trata de equilibrar la legibilidad como hacer sencilla su publicación en diferentes formatos (ya sea html, pdf, etc…) su sintaxis es realmente sencilla y existen infinidad de cursos y guías en castellano donde podes aprenderlo en menos de 1 hora. :)

Aquí te dejo algunos enlaces para que lo aprendas rápidamente y sin
complicaciones:

Markdown: Enfocate en el texto

Markdown: Tutorial en español

Markdown: Tutorial interactivo

Una vez que terminamos de escribir nuestro post, escribimos en VIM el comando:

:BlogSave draft

Para guardarlo como borrador o

:BlogSave pubish

Para publicarlo directamente :)

Si quisiéramos listar todos los post que tenemos en el blog debemos escribir:

:BlogList

y posicionarnos sobre el nombre de la entrada que deseamos editar, si presionamos (Enter) la abrimos y la podemos editar, pero si presionamos delete la borramos (asique ojo ahí)

O si quisiéramos ver todas las paginas escribimos:

:BlogList pages

Los mismos comandos se utilizan para las paginas (Enter para editar e delete para borrar).

¿Y si queremos ver como va quedando nuestro post?
Para eso esta el comando

:BlogPreview

¿y como hacemos con las imágenes?
La verdad es que esto fue una de las cosas que mas me gusto de este plugin :)
Para subir una imagen hay que usar el comando:

:BlogUpload /ruta/a/la/imagen.png

Este comando sube la imagen seleccionada directamente al almacén de medios de Wordpress y inserta la imagen dentro del post :)

¿Y si quisiera trabajar con otro blog?
Con

:BlogSwitch

vamos cambiando por los blogs que tenemos configurados en nuestro .vimpressrc :)

¿Algo mas?
¡Pues claro!, ¡El #$%&/ resatado de sintaxis! (Ese era el meollo de la cuestión no?)

Eso se logra simplemente escribiendo

:BlogCode

Si escribimos

:BlogCode

a secas interpreta el texto como un texto con un leve
resaltado, pero si escribimos

:BlogCode bash

colorea el código como bash u el lenguaje que queramos…
tiene soporte para muchísimos lenguajes, solo es cuestión de ir
probando :)

Bueno, por ahora esto fue todo (aunque lo hice largo creo que esta medianamente completo ). Si sos tan amante de Vim como yo te aconsejo que aprendas a usar Markdown y VimRepress (de echo este post esta echo con esas herramientas) y disfrutes publicando desde nuestro editor favorito, ¡By Happy!! :)

Comentarios

Volando en Vim con EasyMotion

Una de las cosas que mas controversia genera entre los usuarios de Vim son los comandos de movimiento. Si bien algunos estamos acostumbrados a escribir cosas como

1
20Gfh;

a otros les parece simplemente abominable, ya que se entiende que para las personas que recién se están iniciando con Vim recordar estos comandos es algo aterrador (e incluso para muchos ya iniciados). Si bien estas combinaciones espantan a muchas personas, una vez que se sabe que hace cada cosa solamente es cuestión de combinarlas para moverse y armar comandos fácilmente.

Vim (como siempre) trae en su arsenal de plugins uno muy particular llamado EasyMotion el cual nos permite navegar realmente rápido dentro del texto que estemos editando con solo pulsar algunas teclas y sin tener que recordar demasiados comandos (cosa que igualmente aconsejo)

Para ello el plugin asigna una letra en particular a cada palabra y basta con ir pulsando esa tecla para ir rápidamente a esa palabra sin mayores complicaciones como vemos en la imagen.

Instalar este plugin es realmente sencillo si utilizamos vundle (si no sabes como utilizar vundle mira gestion de plugins con bunle

Al instalarlo por defecto, EasyMotion usa la tecla por defecto de Vim ( la barra invertida \ ), para cambiar esto debemos editar nuestro fichero de configuración de Vim llamado ~/.vimrc
y agregar la siguiente linea:

1
let g:EasyMotion_leader_key = ',,' "podemos cambiar ,, por la combinación que deseemos :)

Una vez guardado los cambios simplemente reiniciamos Vim y listo.

EasyMotion nos ofrece las siguientes opciones para navegar por el texto. (remplazar ,, por la tecla que hayamos configurado en el .vimrc), solamente voy a poner las que me parecen mas útiles, pero podes mirar aca para obtener el listado completo.

,,f{letra} se mueve hacia la letra seleccionada hacia la derecha.
,,F{letra} se mueve hacia la letra seleccionada hacia la izquierda.
,,t{letra} se mueve un carácter antes de la letra seleccionada.
,,T{letra} se mueve un carácter mas de la letra que seleccionamos.
,,w{letra} se mueve al comienzo de la palabra.
,,e{letra} se mueve al final de la palabra
,,j{letra} baja hasta la linea seleccionada.
,,k{letra} sube hasta la linea seleccionada.

Como podemos ver, usar EasyMotion nos facilita enormemente la tarea a la hora de navegar por nuestro texto. Pero usarlo solamente para eso seria tristemente un desperdicio…

EasyMotion es un plugin de movimiento con lo cual podemos usarlo con ordenes que esperan comandos de movimiento, por ejemplo podemos copiar texto si presionamos y,,w y seleccionamos la palabra deseada, o también borrar texto si presionamos d,,e y seleccionamos la palabra deseada o incluso seleccionar lo que deseamos simplemente presionando v,,e{letra}, las posibilidades como vemos son simplemente impresionantes!

EasyMotion es uno de los primeros plugins que suelo instalar cada vez que instalo Vim en alguna maquina, ya que hace que tareas comunes como seleccionar una linea o copiar un fragmento sea algo realmente sencillo, recomendado al 100%. :)

Comentarios

Gestion de plugins con Vundle!

Uno de las cosas que mas se criticaban de VIM, era que la instalación y la configuración de los plugins (extensiones) era bastante tediosa, tanto que la mayoría de los usuarios ni siquiera intentaba hacerlo por temor a caer en una crisis de nervios…
Esto es porque VIM usa por defecto un sistema de almacenamiento de plugins centralizado el cual tiene esta estructura:

.vim/
build/
html.vim
Syntax/
html.vim
etc../
….

Pero con el pasar de los años nació Pathogen, un gestor de plugins bastante sencillo que nos permitía (y permite) que la instalación y configuración de estas extensiones sea bastante sencilla, creando una nueva manera de organizar los plugins de VIM en paquetes los cuales nos permite distribuir estos plugins mas fácilmente y gestionarlos de forma mas rápida, organizándolos de la siguiente manera:

.vim/bundle/
html/
build/
html.vim
syntax/
html.vim
etc…/
html.vim

Como vemos, todo el código del plugin, reside dentro de una carpeta (en este caso llamada html), esto hace que las cosas mejoren un poco ya que podemos tomar la carpeta completa y copiarla a otra instalación de VIM y debería de funcionar sin problemas (siempre tocando .vimrc claro esta.) :)

Pathogen cumple bastante bien su función pero todavía hace que la gestión de plugins no sea del todo amigable… :’(

¿solución? ¡Vundle!

Vundle hace que instalar y configurar plugins sea un juego de niños como
veremos..

¿Que nos permite hacer?

Pues podemos hacer un seguimiento y configurar los scripts directamente dentro de nuestro .vimrc, nos permite actualizar los plugins directamente desde sus repositorios, podemos buscar todos los plugins que necesitemos directamente desde vim-scripts.org e instalarlos muy fácilmente, limpiar aquellos plugins que no usemos, etc…

¡Muy bien, me convenciste! ¿como lo instalo?

Lo primero es descargarlo desde el repositorio de esta forma:

git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

Una vez descargado necesitamos hacer algunos ajustes en nuestro .vimrc local

set nocompatible “esto hace que no se cargue el modo de compatibilidad con vi.
filetype off “Requerido si o si :)
set rtp+=~/.vim/vundle.git/
call vundle#rc()

“Gestión sencilla de paquetes con Vundle!
Bundle ‘gmarik/vundle’

“Instala desde los repos originales en github.
estos son algunos de ejemplo aunque los recomiendo.
Bundle ‘tpope/vim-fugitive’
Bundle ‘Lokaltog/vim-easymotion’
Bundle ‘FuzzyFinder’

“Etc….
“Y todos los los otros plugins que deseemos gestionar.

“También podemos instalar plugins desde otros repositorios que no sean github
“Bundle ‘git://git.wincent.com/command-t.git’
“O también desde una ubicación
“Bundle ‘file:///Users/gmarik/path/to/plugin’

filetype plugin indent on “Es requerido para que funcione.

 

El segundo paso es instalar los plugins (bundles) configurados, para ello guardamos la configuración de nuestro .vimrc y entramos a VIM y ejecutamos el comando :BundleInstall

Este comando se encarga de instalar todos los bundles que cargamos en el archivo .vimrc.

Ahora bien, para eso prefiero seguir usando Pathogen estarás diciendo… pues la verdad es que Vundle tiene un par de trucos que de seguro te van a gustar…

Para ver la lista de Bundles disponibles, solamente tenes que escribir en VIM
:BundleList este comando te va a listar todos los bundles disponibles.

Si deseas instalar algún bundle, solamente tenes que escribir el comando :Bundles
Este comando te va a listar todos los plugins existentes en vim-scripts.org/vim/scripts.html
Si necesitas buscar alguno en especial (cosa que pasa habitualmente) solamente pulsa “s” (sin comillas) y escribí el nombre del bundle que necesitas.
Una vez encontrado lo que buscas, simplemente pulsando “i” lo instalas.

Si te pasaste instalando plugins y queres borrar los que no usas, simplemente pulsando “c” podes elegir que plugin borrar.

Si ya tenes tus bundles instalados pero queres actualizarlos, simplemente con el comando :BundleUpdate podes descargar la ultima versión del plugin que usas ¡y conservando la configuración que tenias!.

Como habrás notado Vundle tiene muchas ventajas a la hora de gestionar nuestros plugins y pocas desventajas (por ahora no le encontré ninguna), asique si sos VIMero y no queres complicarte a la hora de instalar plugins, Vundle es tu mejor aliado. :)

Comentarios