Linux Trucos en vim

Soujiro

Fanático
Se incorporó
14 Enero 2008
Mensajes
1.428
EDIT POR unreal4u:

Pta me quedó la cagá jajajajaj quería borrar este post y empezar con el post mío más abajo pero como que la anduve cagando :p

Vale callampa el vi con sus comandos snob, parecen que los wns no tenían teclados con botones con fechas y enter cuando programaron la wea.
Igual si tengo que hacer una wea muy complicada termino ocupando Vi.
Claramente no administras servidores, sino no putearias a vi.
 
Última modificación por un moderador:

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.602
Afortunadamente YA NO si lo único que le critico a a VI es su manejo de comandos

pta no quería meterme, pero la verdad no lo encuentro tan difícil... de hecho algunas veces es más rápido editar en vi que en un IDE. Borrar una línea: `1dd` .. borrar 2 líneas? `2dd`. Copiar y pegar? `[nro_de_líneas]yy` (o `dd` si es para cortar) y pegar con `p` o `P`, dependiendo de dónde. Muchas veces tb ocupo `o` u `O`, `i` o `I` dependiendo de qué es más rápido. Final de línea? `$` ... final de archivo? `:$` ... ppio de línea `0` y ppio de archivo `:0`. Todos super simples.

Trabajar en tabs? `:tabe` para abrir, `:tabn` para próximo tab, `:tabp` para el tab previo. Ejecutar un comando? `!comando`, ni siquiera es necesario salir de la aplicación, ideal para testear cosas rápido sin siquiera tener que salir del mismo. Así podría seguir todo el día, pero la verdad es que es difícil de encontrar otra herramienta que sea tan simple, tan universal y tan completo como vi.

He dicho.

Saludos.
 
Upvote 0

alex_xp

Gold Member
Se incorporó
12 Octubre 2004
Mensajes
2.613
pta no quería meterme, pero la verdad no lo encuentro tan difícil... de hecho algunas veces es más rápido editar en vi que en un IDE. Borrar una línea: `1dd` .. borrar 2 líneas? `2dd`. Copiar y pegar? `[nro_de_líneas]yy` (o `dd` si es para cortar) y pegar con `p` o `P`, dependiendo de dónde. Muchas veces tb ocupo `o` u `O`, `i` o `I` dependiendo de qué es más rápido. Final de línea? `$` ... final de archivo? `:$` ... ppio de línea `0` y ppio de archivo `:0`. Todos super simples.

Trabajar en tabs? `:tabe` para abrir, `:tabn` para próximo tab, `:tabp` para el tab previo. Ejecutar un comando? `!comando`, ni siquiera es necesario salir de la aplicación, ideal para testear cosas rápido sin siquiera tener que salir del mismo. Así podría seguir todo el día, pero la verdad es que es difícil de encontrar otra herramienta que sea tan simple, tan universal y tan completo como vi.

He dicho.

Saludos.
No me gusta su sistema de comandos, es muy difícil entender eso? Ni que los hubiera insultado, me estoy empezando a sentir como kast
PD te agradezco los tips hay algunos que no me los conocía :) Se van directo a mi listado de comandos
 
Upvote 0

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.602
No me gusta su sistema de comandos, es muy difícil entender eso? Ni que los hubiera insultado, me estoy empezando a sentir como kast
PD te agradezco los tips hay algunos que no me los conocía :) Se van directo a mi listado de comandos

Diste en el clavo, esa es la parte que no entiendo jajajajaj si fuera por eso, una terminal sería tanto más difícil de manejar pq funciona... exactamente igual! :p Es más: reemplazar un texto por otro en vim ocupa por debajo sed, así que básicamente estás ocupando la línea de comandos para hacer lo mismo. Ejecutar un comando dentro de vi como mostré en mi post de arriba inicia una sesión con bash y así.

Más comandos útiles? mmm ya que estamos hablando de reemplazo: qué tal la búsqueda? La búsqueda mediante regex tb la ocupo harto. Para hacerlo? `/[tu_regex]`. Ir al próximo resultado? `n`. Resultado previo? `N`. Así por ejemplo, buscar el texto 172.16.1 sería: `/172\.16\.1\.`. No sabes cuál es el segmento del medio? Más regex: `/192\.\d+\.1\.` (buscar por cadena de texto "192." seguido de uno o más dígitos + la cadena de texto ".1." ). El límite está en tu imaginación.

Deshacer? `u`. Borrar en la posición del cursor hacia adelante: `x`. Borrar palabras? `[nro_de_palabras]dw`. Salir sin guardar: `:q!`. Reemplazar una letra? `r` (y luego el caracter por el que quieres corregir). `R` si quieres mantenerte en el modo reemplazo. Otros útiles que no me acordé en la anterior: insertar a partir de último caracter en la línea: `A`.

Luego tienes el modo visual (`v`) donde puedes seleccionar varias líneas/caracteres para copiar/pegar. No lo ocupo mucho sí pq yo veo fundamentalmente código así que siempre pienso en líneas fijas más que un pedazo de texto.

En fin, si quieres saber cómo vi te puede hacer un café, pregunta no más pq lo más probable es que se pueda.

Saludos.
 
Última modificación:
Upvote 0

alex_xp

Gold Member
Se incorporó
12 Octubre 2004
Mensajes
2.613
Diste en el clavo, esa es la parte que no entiendo jajajajaj si fuera por eso, una terminal sería tanto más difícil de manejar pq funciona... exactamente igual! :p Es más: reemplazar un texto por otro en vim ocupa por debajo sed, así que básicamente estás ocupando la línea de comandos para hacer lo mismo.

Más comandos útiles? mmm ya que estamos hablando de reemplazo: qué tal la búsqueda? La búsqueda mediante regex tb la ocupo harto. Para hacerlo? `/[tu_regex]`. Ir al próximo resultado? `n`. Resultado previo? `N`. Así por ejemplo, buscar el texto 172.16.1 sería: `/172\.16\.1\.`. No sabes cuál es el segmento del medio? Más regex: `/192\.\d+\.1\.` (buscar por cadena de texto "192." seguido de uno o más dígitos + la cadena de texto ".1." ). El límite está en tu imaginación.

Deshacer? `u`. Borrar en la posición del cursor hacia adelante: `x`. Borrar palabras? `[nro_de_palabras]dw`. Salir sin guardar: `:q!`. Reemplazar una letra? `r` (y luego el caracter por el que quieres corregir). `R` si quieres mantenerte en el modo reemplazo. Otros útiles que no me acordé en la anterior: insertar a partir de último caracter en la línea: `A`.

Luego tienes el modo visual (`v`) donde puedes seleccionar varias líneas/caracteres para copiar/pegar. No lo ocupo mucho sí pq yo veo fundamentalmente código así que siempre pienso en líneas fijas más que un pedazo de texto.

En fin, si quieres saber cómo vi te puede hacer un café, pregunta no más pq lo más probable es que se pueda.

Saludos.
Todavía no llego a esa parte de hacerme adicto al café y creo que se ha desvirtuado bastante este thread, me intereso la parte de los tabs (si es que te referías a las tabulaciones), ya que en los tuxedo los archivos de parámetros deber ir solo con tabulaciones.
Saludos.
 
Upvote 0

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.602
mm no, los tabs de los que yo hablo te abre distintas ventanas con varios archivos jajajaja
A modo de ejemplo, en el screenshot, tengo 3 tabs abiertos dentro de vi:

QeDPYtR.png


Sin embargo, para por ejemplo mostrar caracteres ocultos, nada mejor que `:set list`. Te dejo mejor mi ~/.vimrc, aunque en mi configuración por lo general oculto los tabs:

Código:
set bg=dark
syntax on
set number
set ruler
set smarttab
set showmatch
set ttyfast
set incsearch
set hls!
set ignorecase
set ts=4
set ls=2
set encoding=utf-8
set backup
set undofile
set writebackup
set swapfile
set backupdir=~/.vim/backup
set directory=~/.vim/swap
set undodir=~/.vim/undo

set list
set binary
set listchars=tab:\ \
set listchars+=trail:⋅
" set showbreak=↪

" Options for coloring column at a certain position, difficults seeing actual code
" highlight ColorColumn ctermbg=white guibg=#592929
" set colorcolumn=120

au BufNewFile,BufFilePre,BufRead *.md set filetype=markdown

En palabras simples:
set bg=dark => mi terminal tiene fondo negro, así que esta opción cambia los esquemas de colores a fondo oscuro
syntax on => para tener resaltado de sintaxis
set number => para mostrar número de líneas (ver screenshot)
set smarttab => creo que esta opción podría ayudarte mucho, en vi, tipea `:help smarttab` para más info al respecto
set ts=4 => tabs ocupan 4 espacios
set showmatch => para resaltar el paréntesis que cierra el que tengo seleccionado
set ls=2 => muestra una barra de estado abajo. Bastante útil.

Pongo directorios distintos para los archivos de undo, swap y backup. set list junto con set listchars me setea algunos parámetros con respecto a los caracteres ocultos que debería o no mostrar. Googlea para más info :p

Saludos.
 
Upvote 0

Eliezar

mi gato :D
Se incorporó
1 Febrero 2007
Mensajes
4.848
Diste en el clavo, esa es la parte que no entiendo jajajajaj si fuera por eso, una terminal sería tanto más difícil de manejar pq funciona... exactamente igual! :p Es más: reemplazar un texto por otro en vim ocupa por debajo sed, así que básicamente estás ocupando la línea de comandos para hacer lo mismo. Ejecutar un comando dentro de vi como mostré en mi post de arriba inicia una sesión con bash y así.

Más comandos útiles? mmm ya que estamos hablando de reemplazo: qué tal la búsqueda? La búsqueda mediante regex tb la ocupo harto. Para hacerlo? `/[tu_regex]`. Ir al próximo resultado? `n`. Resultado previo? `N`. Así por ejemplo, buscar el texto 172.16.1 sería: `/172\.16\.1\.`. No sabes cuál es el segmento del medio? Más regex: `/192\.\d+\.1\.` (buscar por cadena de texto "192." seguido de uno o más dígitos + la cadena de texto ".1." ). El límite está en tu imaginación.

Deshacer? `u`. Borrar en la posición del cursor hacia adelante: `x`. Borrar palabras? `[nro_de_palabras]dw`. Salir sin guardar: `:q!`. Reemplazar una letra? `r` (y luego el caracter por el que quieres corregir). `R` si quieres mantenerte en el modo reemplazo. Otros útiles que no me acordé en la anterior: insertar a partir de último caracter en la línea: `A`.

Luego tienes el modo visual (`v`) donde puedes seleccionar varias líneas/caracteres para copiar/pegar. No lo ocupo mucho sí pq yo veo fundamentalmente código así que siempre pienso en líneas fijas más que un pedazo de texto.

En fin, si quieres saber cómo vi te puede hacer un café, pregunta no más pq lo más probable es que se pueda.

Saludos.

4K5Yk0K.jpg
 
Upvote 0

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.602

Lo tomaré como un indicio de que hay mayor interés por saber cómo ocupar vi. Así que... sigo!

`:x` para salir de la app y escribir el archivo SOLO si hubieron cambios ( `:wq` escribe siempre). Útil cuando por ejemplo no tienes que actualizar el timestamp del archivo a menos que sea absolutamente necesario.
`:yatoylistoconlawea` para aquellos comandos que ya no se me ocurren más jajajajja

Saludos.

PD: `:help [comando]` si tienen dudas de cómo ocupar un comando :p
PD2: quizás útil saber tb: `man` funciona igual que vi: con `:q` sales de la ayuda, con `/[texto]` pueden buscar un texto y cualquier cosa que no implica escritura la podrán hacer en man de la misma forma que en vi.
PD3: Si están con una distro basada en red hat, es útil instalar vim-enhanced ( yum install vim-enhanced o dnf install vim-enhanced para fedora23+) para reemplazar vi con vim. Diferencias entre ambos? En vim escriban `:help vi_diff` y lean con sus propios ojos :)
PD4: Tooooodos los ejemplos arriba mencionados suponen una instalación de vim en vez de vi. Puede que cambien algunas cosas entre una y otra versión, sorry que lo haya olvidado mencionar, pero lo primero que hago al instalar nueva máquina es instalar vim-enhanced xD

Saludos.
 
Última modificación:
Upvote 0

Eliezar

mi gato :D
Se incorporó
1 Febrero 2007
Mensajes
4.848
Lo tomaré como un indicio de que hay mayor interés por saber cómo ocupar vi. Así que... sigo!

`:x` para salir de la app y escribir el archivo SOLO si hubieron cambios ( `:wq` escribe siempre). Útil cuando por ejemplo no tienes que actualizar el timestamp del archivo a menos que sea absolutamente necesario.
`:yatoylistoconlawea` para aquellos comandos que ya no se me ocurren más jajajajja

Saludos.

PD: `:help [comando]` si tienen dudas de cómo ocupar un comando :p
oye ta weno ese

y de las tabs ta choro , en putty se ve bien

Enviado desde mi MotoG3 mediante Tapatalk
 
Upvote 0

Miguelwill

I am online
Miembro del Equipo
MOD
Se incorporó
23 Febrero 2004
Mensajes
12.403
No me gusta su sistema de comandos, es muy difícil entender eso? Ni que los hubiera insultado, me estoy empezando a sentir como kast
PD te agradezco los tips hay algunos que no me los conocía :) Se van directo a mi listado de comandos
básicamente el tema de comandos se usa para extender las funcionalidades del editor, no hay que ser tan talibán para limitarse a opciones, solo son formas y costumbre de hacer las cosas

Enviado desde mi TA-1039 mediante Tapatalk
 
Upvote 0

EITSAEB

Team Peacemaker Hater
Se incorporó
10 Septiembre 2006
Mensajes
4.656
Nano FTW!


Pensé que ya nadie ocupaba VIM, pero claro estamos en Asilo9 :oveja
 
Upvote 0
Subir