No estas registrado.

#1 2014-03-03 06:20:22

Wada
Staff
Registrado: 2012-07-31
Mensajes: 448
Página Web

[Explicación] Pensando Vim

Como pensar en Vi/Vim
Disculpen los errores de ortografía de los Gif escribí muy rápido
Terminado corregi errores, agrege un poco de info y di formato cualquier cosa por acá ando hahaha

Yep como dice el titulo, hoy vamos a pensar estilo Vim smile
Me saltare la parte básica porque si no esto se volverá muy extenso si quieres o estas interesado en aprenderlo te recomiendo que desde la terminal ejecutes

$ vimtutor

Ahora si, sin mas comenzamos big_smile


1.- Macros
Tal vez no sea uno de los grandes misterios de vim pero es bueno saberlo vim tiene soporte de macros es posible almacenar macros de la <a> a la <z> ; para comenzar a grabar solo es necesario presionar q<letra> para dejar de grabar presionamos q y para invocar la macro es algo como <numero>@<letra>.

esto nos facilitara muchas tareas repetitivas por ejemplo:

Supongamos que tenemos estas lineas

uno ejemplo uno
dos ejemplo dos
tres ejemplo tres
cuatro ejemplo cuatro
cinco ejemplo cinco

queremos ordenarlos en algo así...

'uno': 'ejemplo' 'uno';
'dos': 'ejemplo' 'dos';
'tres': 'ejemplo' 'tres';
'cuatro': 'ejemplo' 'cuatro';
'cinco': 'ejemplo' 'cinco';

Aquí es donde las macros nos facilitan todo smile

2t04xb5.gif
Secuencia utilizada:

 qa I ' <Esc> ea ': <Esc> wi ' <Esc> ea ' <Esc> wi ' <Esc> A '; <Esc> 0j q

Posteriormente colocar el cursor en la linea a cambiar y utilizar <numero>@<letra>

donde:
<numero> es el numero de veces a realizar la acción | se puede omitir
<letra> letra en la que guardaste la macro


2.- Sustituir
Una herramienta muy importante en Vim es la de sustituir para ello nos situamos en Vim modo Normal presionando <Esc> posteriormente presionamos : (dos puntos) y escribimos el comando (digo comando porque no esta limitado a sustitución.) es muy similar a RegEx Ejemplos:

El mas común cambiar una secuencia de caracteres en todo el documento:
UbTEHAo.gif
Comando:

:%s/vim/Vim/g

Sustituye en todas las lineas vim por Vim nota: si no tuviera el signo % (porcentaje) solo buscaría en la linea que estés ubicado

Sustituir entre cierto rango acá entre las lineas 3,5
UJukeFM.gif
Comando:

:3,5s/Vim/VIM/g

De la linea 3 a la 5 sustituye Vim por VIM

Noten que no hay una g al final este solo edita la primera palabra que coincide
usuW85R.gif
Comando:

:3,5s/Vim/VIM

Con esta linea eliminamos todas las lineas que contengan un # (almohadilla, numeral, gato, como le conozcan)
l59Bzgu.gif
Comando:

:.,$g/#/d

de la linea actual (.) hasta el final del documento ($) busca los numeral (#) y eliminalos (d)

Acá un comando ordenar la sección del archivo
8v2CVtn.gif
Comando:

: 3,$sort

De la linea 3 hasta el final del documento ordenalo

Otros Comandos
Aquí el truco esta en el comando :r (read) lo que hace este comando es como su nombre lo dice hahahah leer, podrías agregar el texto de otro documento, pero en este ejemplo agregamos el indicador ! que este por separado es ejecutar, es posible ejecutar un script desde el mismo vim para debugear o cualquier  cosa que se te ocurra acá un ejemplo:

I62G7Wj.gif
Comando por orden de aparición:

#Fecha:
:r!date

#Fecha con formato:
:r!date +\%D

#Listar directorios:
:r!ls Documentos

Estoy usando comandos comunes de la terminal pero vim toma la salida del comando y la inserta como texto.

Y Esto solo es una pequeña parte aun falta mas... Y las cosas que desconozco hahahaha.

3.- Selección

Por ultimo pero no menos importante es el estado Visual donde podemos seleccionar lineas para manipularlas fácilmente. Existen tres tipos de selección visual.

v – visual por caracteres
V – visual por lineas
<control>v - visual por bloques

Seleccionar lo que esta dentro de un paréntesis:
v% Si estas en el inicio/final del paréntesis
vib Si estas dentro de los paréntesis
gbJnPFD.gif

Selecciona lo que esta dentro de comillas dobles o sencillas:
vi' Selecciona comillas sencillas
vi" Selecciona comillas dobles
3eNrXYw.gif

viB Selecciona todo lo que este dentro de las llaves
Utoy87H.gif

Selección por linea
ggVG Selecciona todo el documento
DU6uYR3.gif
Aquí basicamente es gg ir al inicio; entrar al selector visual V;  e ir al final G.

Selección por bloque
<control> v

bpymt37.gif
<control> v e5j C (escribes el texto) <esc><esc>
Y en este entras al selector visual por bloques <control>v, avanzo al final de la palabra, y 5 lineas abajo 5j, borro la palabra con C escribo el texto a sustituir y presiono <Esc> <Esc>.

El otro es igual pero en lugar de c (es algo como elimina y entra en modo insert) utilizo i (entra en modo insert I donde el puntero esta localizado).

Todo esto que explico tal vez parezca misterioso o algo por el estilo como vim ninja hahaha pero no es nada que no este en el manual de vim (Vim tiene una de las mejores documentaciones que conozco) para entrar a la documentación solo ingresen

:help

si necesitan algo en especifico

:help :w

Esto los llevara directamente a la sección que habla de :w (guardar).

Ahora si... Feliz Vim gente. big_smile

Ultima edición por Wada (2014-03-04 19:22:40)


[⠠⠵] || Archlinux || Awesome || urxvt || Bash

Desconectado

#2 2014-03-03 22:09:58

nano
BOFH del averno
Desde: ./app/controllers/nano.js
Registrado: 2011-12-05
Mensajes: 1,335

Re: [Explicación] Pensando Vim

No te voy a mentir, me encanta Vim si hablamos del potencial que tiene, pero cada vez que trato de sentarme a darle uso, dios me vuelvo un desastre ... xD eso y que me he adaptado demasiado a Sublime D:


nano_dice_by_breakingnano-d4t1n5y.png

Desconectado

#3 2014-03-04 14:36:24

Percaff_TI99
Tuxes
Registrado: 2013-09-08
Mensajes: 152

Re: [Explicación] Pensando Vim

@nano; has intentado con spf13-vim, yo sinceramente al nivel de programación que lo utilizan ustedes no sabría decir si es un poco menos difícil de usar, pero es otra alternativa viable.

http://vim.spf13.com/

@Wada, muy buen tutorial interactivo, gracias.

Desconectado

#4 2014-03-04 15:49:31

Wada
Staff
Registrado: 2012-07-31
Mensajes: 448
Página Web

Re: [Explicación] Pensando Vim

@nano: Vim es potente muy potente, la verdad hace años me dije tengo que aprender a utilizar Vim o Emacs... Pero las teclas de Emacs preciona control+alt+C+c como que no me agrado, y me decidi por Vim y en poco tiempo le fui tomando el ritmo hahaha, pero si sublimetext me parece muy normal nada del otro mundo solo porque tiene soporte a plugins y lo vuelven interesante aunque para ser honesto no le he dado mucha oportunidad ya que estoy comodo en Vim big_smile no se porque pero me recordaste un tweet gracioso... Tengo 2 años usando Vim mayormente porque aun no se como salir hahahaha

@Percaff: Genial no conocia spf13 es un Vim con plugins o un paquete de plugins bueno se ve genial la mayoria de esos plugins ya los tengo instalados pero algunos se ven muy interesantes para ser honesto big_smile


[⠠⠵] || Archlinux || Awesome || urxvt || Bash

Desconectado

#5 2014-03-04 16:30:51

rawBasic
<" Forum Mod
Desde: In the database..
Registrado: 2012-10-28
Mensajes: 272
Página Web

Re: [Explicación] Pensando Vim

Wenas..

@Wada Lindo post sobre nuestro editor favorito..linda extensión al vimtutor.. ;).. ..prometo empezar a aprender las ventajas de vim sobre vi..a ver si me armo un entorno de trabajo cómodo sobre vim de una vez por todas..

@nano, deberías darle una seria oportunidad a vim.. ..dudo que puedas hacer cosas tan grosas en subl3 como con vim y expresiones regulares.. xD

@Percaff_TI99, spf13 no deja de ser una gran recopilación de plugins ordenados con pathogen acompañado de una config pre-armada.. ..vale la pena usar esa en específica?.. ..por qué no armarse una propia con lo necesario para nuestras necesidades?..

Desde ya muchas gracias..

rawBasic..


Un foro organizado es un foro eficaz..
4_horsemen_of_the_apocalypse_by_9888888-d31h1m1.gif

"El que busca encuentra. El que no, se pierde. Acá, un precioso buscador."

Desconectado

#6 2014-03-04 17:40:45

nano
BOFH del averno
Desde: ./app/controllers/nano.js
Registrado: 2011-12-05
Mensajes: 1,335

Re: [Explicación] Pensando Vim

@wada definitivamente sí, Vim es poderosísimo (un poco menos que Emacs, tal vez, o eso dicen) pero la verdad es que Sbl3 es sin dudas una bestia y tiene un vim-mode también. Hasta ahora he estado haciendo algo de uso de las capacidades avanzadas built-in y no te voy a negar que es una delicia poder hacer tantas cosas (compilar por ejemplo solo con Ctr+b y poder definir en los archivos como y con que opciones compilar los dot-algo es genial).

@raw sí, ya he dado varios pasos adelante pero luego de unos días me frustro, sinceramente me cuesta xD

@Percaff la he visto pero no me he animado xD


nano_dice_by_breakingnano-d4t1n5y.png

Desconectado

#7 2014-03-04 23:24:33

F3niX
Tuxes
Registrado: 2013-02-14
Mensajes: 148
Página Web

Re: [Explicación] Pensando Vim

Siempre trato, pero me da dolor de cabeza, y vuelvo a sublime jaja.


"La mayoría ya estarán familiarizados con las virtudes del programador. Son tres,por supuesto: pereza, impaciencia, y orgullo desmedido." – Larry Wall (Programming Perl)
FluxBB bbcode test
19101.gif

Desconectado

#8 2014-03-07 04:05:39

Wada
Staff
Registrado: 2012-07-31
Mensajes: 448
Página Web

Re: [Explicación] Pensando Vim

Hahahaha tanquilos gente, tranquilos... Vim no es para todos, así como Emacs no es para mi. Todo esta en sentirse comodo con nuestro IDE - Editor big_smile


[⠠⠵] || Archlinux || Awesome || urxvt || Bash

Desconectado

#9 2014-03-07 09:39:02

nano
BOFH del averno
Desde: ./app/controllers/nano.js
Registrado: 2011-12-05
Mensajes: 1,335

Re: [Explicación] Pensando Vim

Wada escribió:

Hahahaha tanquilos gente, tranquilos... Vim no es para todos, así como Emacs no es para mi. Todo esta en sentirse comodo con nuestro IDE - Editor big_smile

Quizá pruebe en Vim-mode de sublime a ver que tal y si con eso me acostumbro :3


nano_dice_by_breakingnano-d4t1n5y.png

Desconectado

#10 2014-03-09 12:36:19

rawBasic
<" Forum Mod
Desde: In the database..
Registrado: 2012-10-28
Mensajes: 272
Página Web

Re: [Explicación] Pensando Vim

Wenas..

nano escribió:

Quizá pruebe en Vim-mode de sublime a ver que tal y si con eso me acostumbro :3

Esa es una excelente opción..debe ser divertido tener una gran parte de la funcionalidad de vim..junto a los chiches de subl..

Por cierto, anduve divirtiéndome un rato con vim..y encontré un cuadro con varios short-keys de vim que está interesante..

Pasaba por acá tan sólo para compartírselos.. ..acá: VIM Reference Card..

Desde ya muchas gracias..

rawBasic..


Un foro organizado es un foro eficaz..
4_horsemen_of_the_apocalypse_by_9888888-d31h1m1.gif

"El que busca encuentra. El que no, se pierde. Acá, un precioso buscador."

Desconectado

Pie de página

Powered by FluxBB