Buscar..


Sintaxis

  • : set relativenumber
  • : establecer número
  • : set nonumber /: set nonu
  • : pwd

Observaciones

Esta recarga automática solo ocurrirá si edita su vimrc en una versión completa de vim que admita autocmd .

Macros rápidos "desechables"

Añade esto a tu vimrc:

nnoremap Q @q

Para comenzar a grabar la macro "desechable", use qq . Para finalizar la grabación pulsa q (en modo normal para ambos).

Para ejecutar la macro grabada, use Q

Esto es útil para las macros que necesita repetir muchas veces seguidas, pero que probablemente no se volverán a utilizar después.

Usando la función de finalización de ruta dentro de Vim

Esto es muy común, memoriza una ruta a un archivo o carpeta, abre Vim y trata de escribir lo que acaba de memorizar, pero no está 100% seguro de que sea correcto, así que cierra el editor y comienza de nuevo.

Cuando desea la función de finalización de ruta, tiene un archivo /home/ubuntu/my_folder/my_file y está editando otro archivo que hace referencia a la ruta de la anterior:

Ingrese al modo insertar: inserte o hágalo de la manera que desee. A continuación, escribe /h . Cuando el cursor está debajo de h , presione Ctrl x y luego Ctrl f para que el editor lo complete en /home/ porque el patrón /h es único

Ahora, suponga que tiene dos carpetas dentro de /home/ubuntu/ llamado my_folder_1 my_folder_2

y quieres la ruta /home/ubuntu/my_folder_2

como siempre:

Entrar en modo de inserción

escribe /h presiona Ctrl x y luego Ctrl f . Ahora tiene /home/ Next add u después de / home / y presione Ctrl x y luego Ctrl f . Ahora tienes /home/ubuntu/ porque esa ruta es única. Ahora, escriba my after /home/ubuntu/ y presione Ctrl x y luego Ctrl f . El editor completará su palabra hasta my_folder_ y verá el árbol de directorios, así que use las teclas de flecha para elegir la que desee.

Activar números de línea relativos

Para eliminar algunas líneas de texto cuando no conoce el número exacto de líneas a eliminar, pruebe con 10dd , 5dd , 3dd hasta que elimine todas las líneas.

Los números de línea relativos resuelven este problema, supongamos que tenemos un archivo que contiene:

sometimes, you see a block of 
text. You want to remove 
it but you 
cannot directly get the 
exact number of 
lines to delete 
so you try 
10d , 5d 
3d until 
you
remove all the block.

Entra en modo NORMAL: Esc

Ahora, ejecute :set relativenumber . Una vez hecho esto, el archivo se mostrará como:

3 sometimes, you see a block of
2 text. You want to remove
1 it but you
0 cannot directly get the
1 exact number of
2 lines to delete
3 so you try
4 10d , 5d
5 3d until
6 you
7 remove all the block.

donde 0 es el número de línea de la línea actual y también muestra el número de línea real delante del número relativo, por lo que ahora no tiene que estimar los números de líneas de la línea actual para cortar o eliminar o, peor aún, contarlos uno por uno.

Ahora puede ejecutar su comando habitual como 6dd y está seguro del número de líneas.

También puede usar la forma abreviada del mismo comando :set rnu para activar los números relativos y :set nornu para desactivar la misma.

Si también :set number o tiene :set number ya :set number , obtendrá el número de línea de la línea en la que se encuentra el cursor.

3 sometimes, you see a block of 
2 text. You want to remove 
1 it but you 
4 cannot directly get the 
1 exact number of 
2 lines to delete 
3 so you try 
4 10d , 5d 
5 3d until 
6 you 
7 remove all the block. 

Visualización de números de línea

Para ver los números de línea desde la vista predeterminada ingrese

:set number

Para ocultar números de línea

:set nonumber

También hay un atajo para arriba. nu es igual que el number .

:set nonu

Para ocultar números de línea, también podemos usar

:set nu!

Mapeos para salir del modo Insertar

Muchos usuarios de Vim encuentran que la Esc es demasiado difícil de alcanzar y terminan encontrando otro mapeo al que es fácil acceder desde la fila de casa. Tenga en cuenta que Ctrl - [ puede ser equivalente a Esc en un teclado inglés, y es mucho más fácil de alcanzar.

j k

inoremap jk <ESC> 

Este es realmente fácil de activar; solo aplasta tus dos primeros dedos en la fila de casa al mismo tiempo. También es difícil de activar accidentalmente ya que "jk" nunca aparece en ninguna palabra en inglés, y si estás en modo normal no hace nada. Si no escribe demasiado "blackjack", considere agregar también inoremap kj <ESC> para no tener que preocuparse por el tiempo de las dos teclas.

Bloq Mayús

Linux

En Linux, puedes usar xmodmap para hacer que Caps Lock haga lo mismo que Esc . Pon esto en un archivo:

!! No clear Lock 
clear lock
!! make caps lock an escape key
keycode 0x42 = Escape

A continuación, ejecute el xmodmap file . Esto remapsula Caps Lock a Esc .

Windows

En Windows puedes usar SharpKey o AutoHotkey .

Mac OS

Si tiene macOS 10.12.1 o posterior, puede volver a asignar Caps Lock to Escape usando las Preferencias del sistema. Seleccione Teclado, vaya a la pestaña Teclado y haga clic en Teclas modificadoras.

Preferencias del teclado

Cómo saber el directorio y / o la ruta del archivo que está editando

Para conocer la ruta del directorio en el que se encuentra su archivo, puede utilizar:

Esc para entrar en modo de comando

:pwd

Esto imprimirá la ruta al directorio en la parte inferior del editor, como esto

I'm a ninja
~
~
~
~
~
/home/ubuntu/myfolder                                                1,5         All

Ahora, si desea saber el nombre del archivo que está editando en relación con el directorio de trabajo de vim, puede usar:

Esc para entrar en modo de comando CTRL G

I'm a ninja
~
~
~
~
~
"myfile"[Modified][New file] 1 line --100%--                         1,5         All

Finalmente, para obtener la ruta absoluta al archivo que está editando, use

Esc para entrar en modo de comando,

1 y luego CTRL G

I'm a ninja
~
~
~
~
~
"~/myfolder/myfile"[Modified][New file] 1 line --100%--              1,5         All

Buscar dentro de un bloque de función

Para buscar texto foo dentro de un {} bloque que rodea el cursor use el siguiente comando ( <ESC> - tecla de escape, <CR> - tecla enter):

vi{<ESC>/\%Vfoo<CR>

ahora puedes saltar entre las coincidencias dentro del bloque presionando n p . Si tiene la opción hlsearch habilitada, esto resaltará todas las coincidencias. \%V es una parte especial del patrón de búsqueda, que le dice a vim que busque solo en el área seleccionada visualmente. También puedes hacer un mapeo como este:

:vnoremap g/ <ESC>/\%V

Después de esto, el comando anterior se reduce a lo siguiente:

vi{g/foo<CR>

Otro truco útil es imprimir todas las líneas que contienen el patrón:

vi{
:'<,'>g/foo/#

El rango '<,'> se inserta automáticamente.

Ver :help range y :help :g .

Copiar, mover o eliminar la línea encontrada.

Muchos usuarios se encuentran en una situación en la que solo quieren copiar, mover o eliminar una línea rápidamente y regresar a donde estaban.

Por lo general, si desea mover una línea que contiene la palabra lot debajo de la línea actual, escriba algo como:

/lot<Esc>dd<C-o>p

Pero para aumentar la productividad, puede utilizar este acceso directo en estos casos:

" It's recommended to turn on incremental search when doing so
set incsearch

" copy the found line
cnoremap $t <CR>:t''<CR>
" move the found line
cnoremap $m <CR>:m''<CR>
" delete the found line
cnoremap $d <CR>:d<CR>``

Así que una búsqueda como esta:

/lot$m

movería la línea que contiene el lot debajo de la línea en la que estaba su cursor cuando comenzó la búsqueda.

Escribe un archivo si te olvidas de `sudo` antes de iniciar vim

Este comando guardará el archivo abierto con derechos sudo

:w !sudo tee % >/dev/null

También puedes mapear w!! escribir un archivo como root

:cnoremap w!! w !sudo tee % >/dev/null

Recargar automáticamente vimrc al guardar

Para volver a cargar vimrc automáticamente al guardar, agregue lo siguiente a su vimrc :

if has('autocmd') " ignore this section if your vim does not support autocommands
    augroup reload_vimrc
        autocmd!
        autocmd! BufWritePost $MYVIMRC,$MYGVIMRC nested source %
    augroup END
endif

y luego, por última vez, escriba:

:so $MYVIMRC

La próxima vez que guarde su vimrc , se volverá a cargar automáticamente.

nested es útil si está utilizando vim-airline. El proceso de carga de la aerolínea desencadena algunos autocomandos, pero ya que estás en el proceso de ejecutar un autocomando se omiten. nested permite activar autocomandos anidados y permite que la línea aérea se cargue correctamente.

Completar la línea de comando

configura wildmenu para activar las sugerencias de finalización para la línea de comando.
Ejecuta lo siguiente

set wildmenu
set wildmode=list:longest,full

Ahora si dices, pestaña :color ,

Obtendrás

256-jungle  Benokai  BlackSea  C64  CandyPaper  Chasing_Logic  ChocolateLiquor  
:color 0x7A69_dark


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow