Ir al contenido principal

Aprende VIM en un solo blog

 Configuración y uso de VIM| NEOVIM


Abarcaremos desde la instalación, configuración y comandos para movernos en VIM o NEOVIM, no explicaremos todo, pero estoy seguro que después de leer este resumen, podrás moverte usando una de estas aplicaciones. Por cierto, te recomiendo usar neovim, es mejor (para mí).

Vim y neovim usan los mismos comandos, no importa cuál se use, se usan los comandos vistos en este blog en ambos.

Instalación de neovim

    sudo add-apt-repository ppa:neovim-ppa/stable

    sudo apt-get update

    sudo apt-get install neovim

Configuración

    cd .config/
    mkdir nvim
    touch nvim/init.vim
    nvim nvim/init.vim y escribir lo siguiente
       
        set number
set mouse=a
set numberwidth=1
set clipboard=unnamed
syntax enable
set showcmd
set ruler
set encoding=utf-8
set showmatch
set sw=2
set relativenumber
set laststatus=2
set noshowmode

Presiona dos veces esq y escribe :wq para salir y guardar cambios

Primeros pasos

Crea un archivo
    cd Desktop/
    touch file.txt

Ingresa a él con nvim file.txt

Modos

Visual Mode:        Lo usaremos principalemente para copiar textos y pegarlos.
Insert Mode:        Nos permitirá escribir en el documento.
Basic Mode:         Nos moveremos en él y será el que más usemos.
Replace Mode:     Nos permitirá reemplazar letras o sobreescribir letras.

Cerrar vim (debes estar en modo básico para que funcione)

    :q          -> salir de vim
    :w          -> guardar cambios
    :q!         -> salir sin guardar cambios
    :wq       -> salir y guardar cambios

Insert Mode:

Para entrar en este presiona i y podrás escribir en el documento, presiona ESC + ESC para salir del modo insert

Basic Mode:

Para ejecutar estos comandos es necesraio estar en el modo básico, para asegurarnos de estar en él, presionamos ESC + ESC

Movimientos básicos

    h     -> movernos a la derecha
    j      -> movernos abajo
    k     -> movernos arriba
    l      -> movernos a la izquierda
    e     -> nos moveremos de palabra en palabra y el cursos se ubicará al final de la siguiente palabra
    w    -> nos moveremos de palabra en palabra y el cursor se ubicará al inicio de la siguiente palabra
    b     -> nos moveremos de palabra en palabra y el cursor se ubicará al inico de la palabra anterior
    0     -> el cursor se colocará al inicio de la linea actual

Movimientos combinados

Nota: si aparece un + es porque se debe mantener presionada la letra anterior

    SHIFT + a -> el cursor se moverá al final de la linea acutal y entraremos al modo insert
    gg                  -> el cursor se moverá  al inicio del documento
    SHIFT + g -> el cursor se moverá al final del documento

Borrar y restaurar

    x        -> borra el caracter sobre el que se encuentra el cursor actualmente
    d        -> si lo mantienes presionado empezará a borrar varias lineas
    d$      -> borrará todo lo que haya a la derecha del cursor (solamente sobre la linea actual)
    dd      -> borra la linea actual, sin importar la posición del cursor
    dw     -> borra una palabra

    u                    -> deshace el ultimo cambio hecho (como el CTRL Z)
    CTRL + R    -> revierte el ultimo cambio hecho (como el CTRL SHIFT Z)
    SHIFT + R   -> revierte el ultimo cambio hecho (como el CTRL SHIFT Z)
Nota: También se pueden hacer comninaciones con numeros leer combinación con números 

Combinaciones con números enteros y movimientos

Puedes colocar numeros, 20 por ejemplo e ir a la linea 20. Funcionaría de la sigueinte forma

    20  SHIFT + g -> el cursor se moverá a la linea 20. Nota, pude ser cualquier numero, 12, 1...
    d12w                -> borra 12 palabras
    de                     -> borra toda la palabra sigueinte
    dk                    -> borra desde la posición del cursor hasta la linea de abajo

Clipboard

    p -> pega el ultimo elemento en el clipboard en la linea debajo de donde se encuentra el cursor
    SHIFT + p -> pega el ultimo elemento en el clipboard en la linea superior de donde se encuentra el cursor
    o -> *******
    SHIFT + 0 -> ******

El clipboard no funciona como el CTRL + C que conocemos, es un espacio en el que se guardan las ultimas cosas que hemos copiado, si borramos algo, se guarda en el clipboard.

Movernos entre archivos

Si estas leyendo un programa, es probable que llamemos a una varibale, algo tipo

Clase 1

const { ayuda } = require('./helper.js')

const suma = (ns) => {
  let acumulado = 0;
  for (i = 0; i < ns.length; i++) {
    acumulado += ns[i];
  }

  return acumulado;
} 

const numeros = [1, 2, 3, 4, 5];

const multiplicados = numeros.map(x => x * 2)
// a pares
const parejas = numeros.map(x => [x, x])

const mascotas = [
  { nombre: 'Puchini', edad: 12, tipo: 'perro' }
]
// edad promedio
const edades = mascotas.map(x => x.edad)
const resultado = suma(edades)
console.log(resultado / edades.length);


clase 2

module.exports.ayuda = () => {
  console.log('lala')
}

    gf                -> nos movemos a la delcaración de la variable, debe estar dentro del mismo archivo

    gd                -> nos movemos a la declaración de una varibale, debe estar dentro de un archivo distinto, al abrirlo, lo apila (como la pila al estudiar archivos y anidaciones)

    CTRL+i     -> nos movemos al archivo aplidado superiormente

    CTRL+o    -> nos movemos al archivo apilado debajo

Replace

Imagina que tienes este texto:

Quiero comer un helado, porque el helado
me gusta, y quiero que sea un helado, pero un helado de chocolate.

Ahora, imagina que text1= helado y text2 = malteada

    :s/text/1/text2              -> reemplaza la primera palabra helado por malteada en la linea donde se encuentra el cursor
    :s/text/text2/g              -> reemplaza todas las palabras helado y las cambia por malteada en la linea donde se encuentra el cursor
    :%s/text1/text2/g        -> reemplaza todas las palabras helado en todo el documento por malteada
    :%s/text1/text2/gc      -> reemplaza todas las palabras helado en todo el docuemento por malteada pero te pregunta palabra por palabra si quieres cambiarlas o no.
    

Busquedas

Nota: si usar neovim, /text y ?text hacen lo mismo. Siempre ejecutará ?text en caso de neovim.

Supongamos ahora que no escibo text, escribo boolean

    /text    -> busca la palabra boolean desde donde se encuentra el cursor hacia adelante
    ?text    -> busca la palabra boolean en todo el docuemnto, incluso detrás del cursor.

Visual Mode:

Para entrar en este modo, primero debes estar en modo básico (ESC + ESC) y luego presiona v
Puedes investigar más a profundidad sobre este modo. Pero lo usarás más para copiar y pegar.

    y -> copia lo que tenga seleccionado.

Hay combinaciones, una vez entres en el modo visual, te puedes mover con todas las letras de movieintos basicos mensionados en el basic mode con la diferencia que mientras te mueves, se irá seleccionando el texto. Cuando encierres un trozo de texto que quieras copiar, presiona y.

Replace Mode:

    r                    -> entras en modo reemplazo y luego presiona una letra, cambiarás la letra sobre la que estás por una nueva que deberás presionar
    SHIFT + r    -> entras en modo reemplazo y despues de cambiar una letra pasaras a cambiar la del lado, para salir presiona ESC + ESC


Y ya está, con eso ya puedes usar Vim, lo siguiente sería instalar plugins, pero almenos a mí, no me interesan, me especializo en java y no uso Vim a diario, pero si te dedicas a desarrollo web o aplicaciones de telefono, te recomiendo investigar sobre los plugins.
Espero haberte ayudado :D


Descarga un resumen con los comandos presionando aquí 

Comentarios

Entradas populares de este blog

Hacer gráficos con graphviz en C#

 Conectar Graphviz con C# en una aplicación GUI   Explicación en video

JasperReports en Maven

 Crear reportes en la aplicación jasperStudio y llamarlos desde una aplicación Maven Explicación en video En internet hay muchos tutoriales enseñando a llamar reportes desde java, pero en todos usan Ant, o son video viejos y aún no existía maven. Por eso te comparto la forma en que yo lo resolví.

RichTextBox con autocompeltado C#

Autocompletado de palabras y sugerencias Explicación en video Preliminares.     Muchos suelen mostrar autocompletados con TextBox, pero no nos sirven, queremos llenar un "area de texto" con varias lineas, Haremos uso de una extensión que   funciona como un ASP.NET