Megapost de VIM

¡Hola a todos!

Este va a ser un recopilatorio de lo que he aprendido y de los enlaces que publiqué en este blog y no. Básicamente reviso lo que posteé, traduzco y anoto algo de todo lo interesante que hay en ellos . Este artículo va a tratar sobre:

Trabajar con múltiples ventanas en VIM

Para trabajar en vim lo mejor siempre son los tabs en mi opiníon. Pero si no queremos usarlos a ellos, o queremos copiar de un archivo a otro sin copiar y pegar porque tenemos que hacer algunas modificaciones mientras lo vamos copiando, el comando

`:split NOMBRE DE ARCHIVO`

`split %` // duplica la ventala actual

divide horizontalmente la pantalla. :vsplit, por su parte, la divide verticalmente. Para pasar de pantalla en pantalla hay que presionar control + W control + W.

Recomiendo de todas maneras también trabajar con tabs y instalar mi configuración de vim para poder cambiar de tabs con control av pag y control re pag.

Plugins de VIM

Los plugins que mas recomiendo de VIM son NerdTree que nos abre un explorador de archivos al ejecutar el comando `:NERDTree`. Si no quieren ejecutar este comando cada vez que abren el vim, pueden bajar mi configuración para que se abra automagicamente.

Tambien recomiendo doria, que es un theme en forma de plugin. Tambien está instalado en mi configuracion por defecto.

Usando VIM con BASH

Ahora esto si es interesante. Acá estan unos ejemplos:

:!cmd # ejecuta `cmd`, nos muestra el resultado y vuelve a VIM
!! cmd # ejecuta el comando y pone el resultado adentro de el archivo de texto
:!! #ejecuta el último comando nuevamente
:f nombrearchivo #renombra el archivo en el que estamos al nuevo nombre de archivo.
:w !cmd #envía el archivo completo al stdin de un comando y lo ejecuta. El potencial de esto es interesante.
:sh # abre una subconsola. Control + d vuelve a vim

Usando vimdiff para comparar archivos de consola

para comparar archivos desde consola hay que abrir el vim en modo diff.

`vimdiff archivo1 archivo2[ archivo3[...]]`

Si hay mas de dos buffers para comparar, hay que deshabilitar aquellos que no querramos modificar, poniendo

`:set nodiff`

Luego, cuando lo necesitamos nuevamente lo habilitamos con

`:set diff`

Para meter un diff ( un diff put ), hay que presionar dp. También se puede obtener con do. Control W Control W para cambiar de buffer.

Marcadores, mapeado de comandos, curiosidades

Los marcadores estan buenos para trabajar con vim. Interesantes porque no es tan fácil navegar como en otros IDEs sin ellos quizás. La matemática de los marcadores es simple: Marco un lugar con `mc`. c sería en este caso el nombre del marcador, podría haber sido cualquier letra. Luego, para ir hasta ese marcador hay que apretar `’c`. Eso sería comilla simple, c. Y voilá.

También se puede ir a la línea 55, por ejemplo, presionando `55gg`. ( Número de línea, gg )

El mapeado de comandos es muy interesante. En este caso lo vamos a usar para mapear el control S a la función guardar de vim ( `:w` )

Esto funciona mejor si lo colocan en su archivo de configuracion ~/.vimrc

map <C-s> :w<CR>
imap <C-s> <Esc>:w<CR>i

map es para cuando estamos en modo comando y imap es para cuando estamos en modo inserción

Esto también es muy sencillo, el primer parámetro es la combinación de teclas a presionar. Las letras mayúsculas en general representan funciones del teclado, C = Control, S = Shift. Hay un listado de todas las teclas en la documentación de VIM. El segundo parámetro indica en que se transforma dicha combinación. En el caso de que estemos en modo comandos, la transformación presiona las teclas :, la tecla w, y la tecla enter, de hecho guardando. En el modo inserción presióna Esc, :w, enter, y luego la I para volver a modo de inserción. :)

Respecto a las cosas curiosas, acá estan todas :)

Guardar con control S

Ups! ya maté esto con el ejemplo anterior. Bueno. Aprovecho este espacio para decirles que tengo un repositorio donde guardo toda mi configuración. Sientanse libres de descargarlo, usarlo, y modificarlo por supuesto. Está bueno porque tiene un montón de cosas mejoradas para mi gusto. :)

Un abrazo,
Pedro

4 comentarios en “Megapost de VIM

  1. Pedro! No se ve tu repositorio en bitbucket, probablemente es porque sea privado!!
    Espero puedas ponerlo publico al repositorio o si podes subirlo en github!! Me gustaría conocer tu fichero de configuración!! Desde ya muchas gracias!!

    • Hola Jonathan!

      Ahi lo hice publico, lo rehice completamente, para que utilizara bundle.

      Una vez que pongas el vimrc en su lugar, tienes que ejecutar :BundleInstall en tu vim y deberia funcionar bien.

      Estos dias estoy programando mas en java que en python.

      Un abrazo,
      Pedro

Agrega un comentario! los comentarios se aprueban automaticamente

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s