7.- CUSTOMIZANDO VIM
Vim es altamente configurable, hay un número de opciones que se pueden establecer y que permiten modificar su configuración por defecto. Cada vez que arranca, Vim lee un archivo en el directorio HOME del usuario denominado ~/.vimrc
, éste almacena múltiples opciones que afectan a cómo Vim opera y que permiten hacer persistentes los cambios. En las próximas secciones se analizarán diferentes opciones.
vim -u NONE -N
El flag -u NONE
indica a Vim que no cargue la configuración del fichero ~/.vimrc
en el arranque. De esta manera, las customizaciones no se aplican y los plugins se deshabilitan. Cuando Vim comienza sin cargar un fichero vimrc, éste revierte a modo compatible vi
, lo cual causa que muchas características útiles se deshabiliten. El flag -N
previene de esto, estableciendo la opción nocompatible
.
7.1 OPCIONES DE CONFIGURACIÓN
Comando | Descripción |
---|---|
GENERAL | |
set nocompatible |
Evita revertir a modo compatible vi |
set hidden |
Oculta los buffers en lugar de cerrarlos, permitiendo el intercambio entre buffers sin necesidad de guardar los cambios |
filetype off |
Deshabilita la detección del tipo de fichero. Necesario al utilizar con el gestor de plugins Vundle para que no interfiera con su funcionamiento |
COLORS & THEMES | |
syntax enable |
Habilita el resaltado de sintaxis, mostrando partes del texto en otro tipo de letra o color |
set t_Co=256 |
Habilita 256 colores en Vim. Necesario establecer antes de la opción colorscheme |
colorscheme molokai |
Esquema de colores utilizado |
set background=dark |
Establece un fondo oscuro para obtener un mejor mapa de colores para el resaltado de la sintaxis |
SPACES & TABS | |
set autoindent |
Copia el nivel de indentación de la línea previa. Si se presiona |
set expandtab |
Esta opción causa que Vim inserte espacios en lugar de tabs cuando se presiona la tecla softtabstop . Algunos lenguajes de programación, como Python y BASH, prefieren los espacios en lugar de tabs |
set softtabstop=4 |
Controla cuántas columnas vim utiliza cuando se presiona softtabstop es igual a tabstop y expandtab no es establecido, vim siempre utilizará tabs. Cuando expandtab es establecido, vim siempre utilizará el número apropiado de espacios |
set tabstop=4 |
Cuando se está trabajando con tabs (opción noexpandtab ), esta opción establece el número de espacios que VIM utiliza para visualmente representar el caracter tab. Es el único comando que afecta a como el texto existente se muestra |
set shiftwidth=4 |
Indentación (tabs o spaces, dependiendo de la opción expandtab ) utilizada cuando se presiona >>, << o == |
set backspace=indent,eol,start |
En modo Insert , permite a la tecla backspace eliminar caracteres introducidos previamente, autoindentación y newlines. El comportamiento estándar de Vim no permite retroceder sobre caracteres que no hayan sido introducidos durante la sesión actual del modo Insert , la indentación insertada automáticamente o a través de saltos de línea |
filetype plugin indent on |
Vuelve a activar la detección del tipo de fichero que se deshabilito para evitar interferencias con Vundle. Además, se habilita la carga de archivos de indentación y plugin para tipos de archivo específicos |
UI LAYOUT | |
set number |
Muestra el número de línea |
set relativenumber |
Muestra los números de línea relativos a la línea donde se sitúa el cursor |
set numberwidth=6 |
Cambia el ancho del margen utilizado para numeración |
set cursorline |
Resalta la línea actual |
set wildmenu |
Vim autocompleta cosas como nombres de archivo cuando, por ejemplo, se ejecuta :e ~/.vim<TAB> . Esta opción proporciona un menú gráfico |
set showmatch |
Cuando el cursor se posiciona sobre un caracter de tipo paréntesis, su pareja de cierre o apertura también se resalta |
SEARCHING | |
set hlsearch |
Resalta todas las coincidencias de la búsqueda realizada |
set incsearch |
Búsqueda incremental. La búsqueda comienza desde que se introduce el primer caracter de la cadena de búsqueda |
FOLDING | |
set foldenable |
Habilita el plegado del código o Folding. Si estuviera deshabilitado, se podría habilitar con la secuencia za |
set foldlevelstart=10 |
|
set foldnestmax=10 |
|
set foldmethod=indent |
Método de pliegue basado en indentación |
CTRLP | |
let g:ctrlp_match_window='bottom,order:ttb' |
Ordena los archivos coincidentes de arriba a abajo |
let g:ctrlp_switch_buffer=0 |
Siempre abre los archivos en nuevos buffers |
let g:ctrlp_working_path_mode=0 |
Permite cambiar el directorio de trabajo durante una sesión Vim y hace que CtrlP respete este cambio |
let g:ctrlp_user_command = 'ag %s -l --nocolor --hidden -g ""' |
CtrlP ejecuta un comando externo para encontrar archivos que coincidan con el patrón de búsqueda |
let g:ctrlp_use_caching = 0 |
Deshabilita el uso de la caché |
7.1.2 MAPPING KEYS
7.1.3 EVENTS
Enlaces
- Sección previa: Folding