Buscar..


El archivo vimrc

El archivo .vimrc (pronunciado Vim-wreck) es un archivo de configuración de Vim. Contiene comandos que serán ejecutados por Vim cada vez que se inicie.

Por defecto, el archivo está vacío o no existe; Puedes usarlo para personalizar tu entorno Vim.

Para averiguar dónde espera Vim que se almacene el archivo vimrc, abra Vim y ejecute:

:echo $MYVIMRC

Unix: en un sistema Unix como Mac o Linux, su vimrc se llamará .vimrc y, por lo general, estará ubicado en su directorio de inicio ( $HOME/.vimrc ).

Windows: en Windows se llamará _vimrc y se ubicará en su directorio de inicio ( %HOMEPATH%/_vimrc ).

En el inicio, Vim buscará en varios lugares un archivo vimrc. Lo primero que existe se usa, los otros se ignoran. Para una referencia completa vea el artículo de documentación :h $MYVIMRC .

¿Qué opciones puedo usar?

Si no sabe qué opciones debe usar, es posible que le interese el comando :options .

Esto abrirá una división con todas las opciones de Vim listadas y con su valor actual mostrado. Hay 26 secciones para mostrar todas las opciones que puedes probar.

p.ej

4 displaying text

scroll    number of lines to scroll for CTRL-U and CTRL-D
    (local to window)
     set scr=20
scrolloff    number of screen lines to show around the cursor
     set so=5
wrap    long lines wrap
     set nowrap    wrap

...

En una línea de valor (por ejemplo, set nowrap ) puede presionar CR para alternar el valor (si es un valor binario). En una línea de opción (por ejemplo, wrap long line wrap ) puede presionar CR para acceder a la documentación de esta opción.

Archivos y directorios

Independientemente de lo que haga para personalizar Vim, NUNCA debe suceder fuera de $HOME :

  • en Linux, BSD y Cygwin, $HOME es usualmente /home/username/ ,
  • en Mac OS X, $HOME es /Users/username/ ,
  • en Windows, $HOME suele ser C:\Users\username\ .

La ubicación canónica de vimrc y su directorio vim encuentra en la raíz de ese directorio $HOME :

  • en sistemas similares a Unix

    $HOME/.vimrc       <-- the file
    $HOME/.vim/        <-- the directory
    
  • en Windows

    $HOME\_vimrc       <-- the file
    $HOME\vimfiles\    <-- the directory
    

El diseño anterior está garantizado para funcionar, ahora y en el futuro.

Vim 7.4 hizo posible mantener su encantador vimrc dentro de su directorio vim . Realmente es una buena idea, aunque solo sea porque hace que sea más fácil mover la configuración.

Si usa 7.4 exclusivamente, lo siguiente será suficiente:

  • en sistemas similares a Unix

    $HOME/.vim/vimrc
    
  • en Windows

    $HOME\vimfiles\vimrc
    

Si desea los beneficios de un vim/ autónomo vim/ pero usa tanto la versión 7.4 como una versión anterior, o solo una versión anterior, la solución más simple y preparada para el futuro es poner esta línea y solo esta:

runtime vimrc

en este archivo:

  • en sistemas similares a Unix

    $HOME/.vimrc
    
  • en Windows

    $HOME\_vimrc
    

y realice su configuración en $HOME/.vim/vimrc o $HOME\vimfiles\vimrc .

Opciones

Hay tres tipos de opciones:

  • opciones booleanas,
  • opciones de cadena,
  • opciones de números.

Para comprobar el valor de una opción,

  • uso :set option? para comprobar el valor de una opción,
  • uso :verbose set option? Para ver también dónde se colocó por última vez.

Configuración de opciones booleanas

set booloption      " Set booloption.
set nobooloption    " Unset booloption.

set booloption!     " Toggle booloption.

set booloption&     " Reset booloption to its default value.

Configuración de opciones de cadena

set stroption=baz   " baz

set stroption+=buzz " baz,buzz
set stroption^=fizz " fizz,baz,buzz
set stroption-=baz  " fizz,buzz

set stroption=      " Unset stroption.

set stroption&      " Reset stroption to its default value.

Configuración de opciones de número

set numoption=1     " 1

set numoption+=2    " 1 + 2 == 3
set numoption-=1    " 3 - 1 == 2
set numoption^=8    " 2 * 8 == 16

Usando una expresión como valor

  • utilizando concatenación:

    execute "set stroption=" . my_variable
    
  • utilizando :let

    let &stroption = my_variable
    

Ver :help :set y :help :let .

Mapeos

  • No ponga comentarios después de las asignaciones, se romperán las cosas.
  • Use :map <F6> para ver qué se asigna a <F6> y en qué modo.
  • Utilice :verbose map <F6> para ver también dónde se mapeó por última vez.
  • :map y :map! son demasiado genéricos Utilice :n[nore]map para las asignaciones de modo normal,: :i[nore]map para el modo de inserción :x[nore]map para el modo visual, etc.

Mapeos recursivos

Use asignaciones recursivas solo si pretende usar otras asignaciones en sus asignaciones:

nnoremap b     B
nmap     <key> db

En este ejemplo, b está hecho para funcionar como B en modo normal. Como usamos b en un mapeo recursivo , presionar <key> funcionará como dB , no como db .

Asignaciones no recursivas

Use asignaciones no recursivas solo si pretende usar comandos predeterminados en sus asignaciones, que es casi siempre lo que desea:

nnoremap <key> db

En este ejemplo, usamos b en un mapeo no recursivo, por lo que al presionar la tecla siempre funcionará como db , ya sea que reasignemos b o no.

Ejecutando un comando desde un mapeo

nnoremap <key> :MyCommand<CR>

Ejecutando múltiples comandos desde un mapeo

nnoremap <key> :MyCommand <bar> MyOtherCommand <bar> SomeCommand<CR>

Llamar a una función desde un mapeo

nnoremap <key> :call SomeFunction()<CR>

Mapeando un mapeo <Plug>

map <key> <Plug>name_of_mapping

Vea :help map-commands :help key-notation y :help <plug> .

Ver mapeos clave en Vim para leer más

Variables

Como la mayoría de los lenguajes de scripting, vimscript tiene variables.

Uno puede definir una variable con el comando: :let :

let variable = value

y eliminarlo con :unlet :

unlet variable

En Vim, las variables se pueden incluir en el ámbito anteponiendo una sola letra y dos puntos a su nombre. Los autores de complementos usan esa característica para imitar las opciones:

let g:plugin_variable = 1

Ver :help internal-variables .

Comandos

  • No olvide la explosión para permitir que Vim sobrescriba ese comando la próxima vez que vuelva a cargar su vimrc.
  • Los comandos personalizados deben comenzar con un carácter en mayúscula.

Ejemplos

command! MyCommand call SomeFunction()
command! MyOtherCommand command | Command | command
  • Ver :help user-commands .

Funciones

  • No olvide el bang para permitir que Vim sobrescriba esa función la próxima vez que vuelva a cargar el script donde se define la función.
  • Las funciones personalizadas deben comenzar con un carácter en mayúscula (funciones globales) o con s: (funciones locales de script), o deben tener un prefijo con el nombre asociado al complemento de carga automática donde están definidas (por ejemplo, en {&rtp}/autoload/foo/bar.vim podríamos definir foo#bar#functionname() ).
  • Para poder usar los parámetros en la función, use a:parameter_name . Las funciones variables se pueden definir con puntos suspensivos ... , para acceder a los parámetros use a:000 (lista de todos los parámetros), o a:0 (número de parámetros igual a len(a:000) ), a:1 primero sin nombre parámetros, y así sucesivamente.
  • Las funciones pueden llamarse así :call MyFunction(param1, param2)
  • Cada línea en una función comienza implícitamente con a : tanto, todos los comandos son comandos de dos puntos
  • Para evitar que la función continúe su ejecución en caso de error, es mejor anotar la firma de la función con la abort

Ejemplo

function! MyFunction(foo, bar, ... ) abort
    return a:foo . a:bar . (a:0 > 0 ? a:1 : '')
endfunction

Funciones de script

Si solo planea usar su función en el archivo donde está definida (ya sea porque ha roto una función más grande en partes más pequeñas o porque la usará en un comando, una asignación, ...), puede prefijar con s: evitando ensuciar su espacio de nombres global con funciones internas inútiles:

function! s:my_private_function() " note we don't need to capitalize the first letter this time
    echo "Hi!"
endfunction

Usando s: funciones de mapeos

Si su función local de secuencia de comandos se va a utilizar en una asignación, debe hacer referencia a ella con el prefijo especial <SID> :

nnoremap <your-mapping-key> :call <SID>my_private_function()<CR>

Ver :help user-functions .

Sin embargo, tenga en cuenta que desde Vim 7, se considera una práctica recomendada definir las abreviaturas, los comandos y los menús de los complementos (ft), y definir funciones en los complementos de carga automática, excepto las funciones que los complementos deben usar cuando se cargan. Esto significa que hoy en día la necesidad de llamar a los scripts funciones locales desde mapeos no es tan pertinente como solía ser.

Grupos de autocomando

  • Los grupos de autocommand son buenos para la organización, pero también pueden ser útiles para la depuración. Piense en ellos como pequeños espacios de nombres que puede habilitar / deshabilitar a voluntad.

Ejemplo

augroup MyGroup
    " Clear the autocmds of the current group to prevent them from piling
    " up each time you reload your vimrc.
    autocmd!

    " These autocmds are fired after the filetype of a buffer is defined to
    " 'foo'. Don't forget to use 'setlocal' (for options) and '<buffer>'
    " (for mappings) to prevent your settings to leak in other buffers with
    " a different filetype.
    autocmd FileType foo setlocal bar=baz
    autocmd FileType foo nnoremap <buffer> <key> :command<CR>

    " This autocmd calls 'MyFunction()' everytime Vim tries to create/edit
    " a buffer tied to a file in /'path/to/project/**/'.
    autocmd BufNew,BufEnter /path/to/project/**/* call MyFunction()
augroup END

Ver :help autocommand .

Condicionales

if v:version >= 704
    " Do something if Vim is the right version.
endif

if has('patch666')
    " Do something if Vim has the right patch-level.
endif

if has('feature')
    " Do something if Vim is built with 'feature'.
endif

Ver :help has-patch y :help feature-list .

Opciones de configuración

Comúnmente usaría :set para configurar opciones a su gusto en su .vimrc . Hay muchas opciones que se pueden cambiar.

Por ejemplo, para usar espacios para la sangría:

:set expandtab
:set shiftwidth=4
:set softtabstop=4

Resaltado de sintaxis

Active el resaltado de sintaxis cuando el terminal tenga colores.

if &t_Co > 2 || has("gui_running")
    syntax on
end

Mostrar espacios en blanco finales y pestañas. Mostrar pestañas puede ser especialmente útil cuando se buscan errores en Makefiles.

set list listchars=tab:\|_,trail:.
highlight SpecialKey ctermfg=DarkGray

Esquemas de color

Vim viene con varios esquemas de color preinstalados. En Linux, los esquemas de color que vienen con Vim se almacenan en /usr/share/vim/vim74/colors/ (donde 74 es su número de versión, sin períodos); MacVim los almacena en /Applications/MacVim.app/Contents/Resources/vim/runtime/colors .

Cambio de esquemas de color

El comando colorscheme cambia la combinación de colores actual.

Por ejemplo, para establecer el esquema de color en "robokai":

:colorscheme robokai

El esquema de color predeterminado se denomina creativamente default , por lo tanto, para volver a usarlo

:colorscheme default

Para ver todos los esquemas de color instalados actualmente, escriba :colorscheme seguido de espacio y luego tab o ctrl d .

Instalación de combinaciones de colores

Los esquemas de color instalados por el usuario se pueden colocar en ~/.vim/colors/ . Una vez que se agrega un esquema de color a este directorio, aparecerá como una opción para el comando colorscheme .

Para encontrar nuevas combinaciones de colores, hay sitios como vimcolors que contienen una variedad de combinaciones de colores. También hay herramientas como vim.ink y Vivify para ayudarlo a crear sus propios esquemas de color, o puede crearlos a mano.

Enumerar línea de enumeración

Para habilitar - escriba:

:set number o :set nu .

Para deshabilitar - escriba:

:set nonumber o :set nonu .

Para habilitar la enumeración relativa a la ubicación del cursor, escriba:

:set relativenumber .

Para deshabilitar la enumeración relativa a la ubicación del cursor, escriba:

:set norelativenumber .

Nota: para cambiar si la línea actual muestra el número de línea real o 0 , use los comandos :set number y :set nonumber mientras el atributo relativenumber esté activo.

Complementos

Los complementos de Vim son complementos que se pueden usar para cambiar o mejorar la funcionalidad de vim.

Hay una buena lista de complementos en vimawesome



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