Vim es mi editor de cabecera desde hace años, y lo uso para todo lo que puedas imaginar. Escribir código, redactar artículos, tomar notas, editar configuraciones, hasta llevar el registro de mis gastos mensuales. Pero siempre había un momento en el que tenía que dejar el teclado y agarrar el ratón. Ese momento era cuando necesitaba mover archivos de un sitio a otro, renombrar un lote de fotos o comparar dos directorios. Y eso me rompía el flujo por completo. Hasta que descubrí Vifm. Y no te voy a mentir, no fue amor a primera vista. Al principio me pareció otro gestor de archivos en terminal de esos que prometen el mundo y se quedan en un midnight commander con menos colorines. Pero le di una oportunidad, y cuando entendí que podía usar dd para borrar archivos, yy para copiarlos, y :substitute para renombrar en lote, supe que no iba a volver atrás.
El problema de gestionar archivos en el terminal
Si eres de los que vive en el terminal, sabes de lo que hablo. Pasas la mitad del tiempo haciendo cosas que en un gestor gráfico serían dos clics. Copiar archivos de un sitio a otro, renombrar un lote de fotos, comparar dos directorios para ver qué falta, buscar un archivo del que solo recuerdas parte del nombre. Con los comandos de siempre (cp, mv, rm, rsync) acabas escribiendo rutas largas, escapando espacios, y maldiciendo cuando te equivocas en una letra y te cargas algo.
Los gestores gráficos como Nautilus o Thunar son cómodos, pero te obligan a cambiar de contexto. Sales del terminal, abres una ventana, usas el ratón, encuentras el archivo, lo arrastras, vuelves al terminal. Ese cambio de modo mental cuesta más de lo que parece. Hay estudios que hablan de que recuperar la concentración después de una interrupción puede llevar más de veinte minutos. Veinte minutos. Cada vez que tocas el ratón para mover un archivo.
Y aquí es donde entran los gestores de archivos en terminal. Pero no todos son iguales. Algunos son rápidos pero limitados. Otros son potentes pero lentos. Y luego está Vifm, que es el único que he encontrado que implementa la filosofía Vim de forma completa, no solo cuatro atajos para moverse arriba y abajo.
El quick verdict es simple: si usas Vim, Vifm es el mejor gestor de archivos en terminal que puedes tener. Si no usas Vim, la curva de aprendizaje te va a parecer una pared y probablemente te vaya mejor con nnn o lf. No hay término medio. Y eso está bien.
Qué es Vifm exactamente
Vifm es un gestor de archivos con interfaz curses que empezó a desarrollarse en 2003. Más de 20 años de desarrollo ininterrumpido. Su mantenedor actual es xaizek, un desarrollador ucraniano que cuida el proyecto con una dedicación que se nota en cada detalle. Las releases están firmadas con GPG, el código en C es sólido como una roca, y los bugs se corrigen en días, no en meses. He visto issues reportados en GitHub que se cerraban con parche en menos de 24 horas.
| Métrica | Detalle |
|---|---|
| Licencia | GPL-2.0+ |
| SOs | Linux, BSD, macOS, Windows |
| Lenguaje | C (89.6%) |
| Versión actual | 0.14.4 (mayo 2026) |
| Estrellas GitHub | 3.200+ |
| Primera release | 2003 |
Tiene 3.200 estrellas en GitHub. No es una cifra espectacular comparada con los 19.5k de nnn o los 15.6k de ranger. Pero las estrellas no miden todo. Vifm está escrito en C puro, sin dependencias de Python, ni Node, ni runtimes pesados. Arranca al instante, consume unos pocos megabytes de RAM, y funciona exactamente igual en Linux que en macOS, BSD o Windows. La primera vez que lo ejecuté en una Raspberry Pi Zero me quedé alucinado de lo rápido que iba.
La arquitectura: Vim de verdad, no solo un parecido razonable
Lo que diferencia a Vifm de otros gestores es el nivel de fidelidad a Vim. No es que tenga algunos atajos parecidos puestos con calzador. Es que implementa los conceptos clave de Vim de manera completa, y eso cambia completamente la forma de trabajar.
Modos, registros y el punto
Vifm tiene modo normal, modo visual, modo de línea de comandos. Cuando arrancas, estás en modo normal. Pulsas v y entras en modo visual para seleccionar archivos. Pulsas : y entras en modo comandos. Pulsas Esc y vuelves a modo normal.
Si no sabes lo que significa todo esto, te recomiendo que empieces por el tutorial de Vim antes de meterte con Vifm. De verdad. No es que no puedas aprender los dos a la vez, pero vas a sufrir el doble.
¿Conoces los registros de Vim? ¿Eso de "ayy para copiar al registro a? Pues en Vifm funciona exactamente igual. "add borra en el registro a, "ap pega desde el registro a. Tienes los registros por defecto, los nombrados, y el registro del portapapeles del sistema con "+. Esto es increíblemente útil cuando tienes que mover archivos entre directorios y quieres mantener un buffer de lo que has copiado.
La tecla . para repetir la última operación funciona en Vifm. Borras un archivo con dd, te mueves a otro, pulsas . y se borra. Tienes que limpiar un directorio con diez archivos que siguen un patrón? Borras el primero, y luego . nueve veces. Es una maravilla.
Undo/redo multinivel
Esta es una de las características que hacen único a Vifm. Puedes deshacer operaciones de archivos de forma múltiple, no solo la última. ¿Borraste un archivo por error hace tres operaciones? Pulsa u tres veces y lo recuperas. No conozco ningún otro gestor de archivos en terminal que ofrezca esto de forma nativa. ranger no lo hace, lf no lo hace, nnn no lo hace. Solo Vifm.
Rangos y comandos
En Vim, puedes hacer :3,5d para borrar las líneas 3 a 5. En Vifm, puedes hacer lo mismo con archivos. :3,5d borra los archivos en las posiciones 3 a 5 de la lista. Puedes combinarlo con selecciones, con registros, con todo. Y si añades :substitute al cóctel, tienes un renombrador masivo que no tiene nada que envidiarle a herramientas dedicadas como rename o mmv.
" Sustituir espacios por guiones bajos en todos los archivos seleccionados :'<,'>s/ /_/g
Novedades desde 2020: de la v0.11 a la v0.14.4
El artículo original que escribí en 2020 cubría la versión 0.11. En aquella época, Vifm ya era un gestor sólido, pero le faltaban algunas características que hoy considero imprescindibles. Desde entonces, han pasado tres releases mayores y un montón de cambios sustanciales. Te resumo lo más destacado.
v0.12 (2021): el salto moderno
Esta fue la release que puso a Vifm al día. Llegó el true color, que para los que usamos temas como gruvbox o nord es una bendición. La preview asíncrona fue un cambio enorme: antes, cuando previsualizabas un archivo grande, la interfaz se bloqueaba hasta que terminaba de procesarse. Con la preview asíncrona, puedes seguir navegando mientras se genera. También llegaron los plugins Lua experimentales, que abrieron la puerta a extender Vifm sin tener que escribir C. Y la AppImage oficial hizo que instalar la última versión fuera tan sencillo como descargar un archivo.
v0.13 (2023): madurez e interactividad
Esta versión se centró en hacer Vifm más accesible. El soporte de ratón fue una de las características más pedidas. Puedes hacer clic para seleccionar archivos, cambiar de panel, todo con el ratón. Para los puristas de Vim esto puede sonar a herejía, pero hay momentos en los que es más rápido señalar con el ratón que contar líneas. La navegación rápida con Ctrl+Y te permite moverte por componentes de ruta sin salir del prompt, algo que uso constantemente. Y el :compare se volvió mucho más interactivo, con estadísticas en la barra de estado y opciones para filtrar resultados.
v0.14 (2025): la release cumbre
Esta es la release más importante de los últimos años. Trajo la normalización Unicode, que soluciona un problema que llevaba años molestando: los caracteres con diacríticos como a, ä, ñ ahora se ordenan correctamente en lugar de mezclarse según su codificación de bytes. Llegaron los comandos :open (para abrir archivos como lo harías con gl), :wingo (para navegar entre vistas con autocompletado), y :chistory (para recuperar hasta 25 menús de navegación anteriores). También se añadió el separador personalizable en vista miller, el soporte MTP para dispositivos móviles, y las variables globales (g:var) que evitan contaminar el entorno de procesos hijo.
Instalación
Vifm está en los repositorios de casi todas las distribuciones. Si quieres la versión de tu distribución, es tan sencillo como:
# Ubuntu/Debian sudo apt install vifm # Arch Linux sudo pacman -S vifm # macOS brew install vifm
Pero si quieres la última versión (la 0.14.4 de mayo 2026), te recomiendo la AppImage. No tiene dependencias, funciona en cualquier distribución, y te aseguras la versión más reciente sin tener que compilar nada.
curl -Lso ~/.local/bin/vifm https://github.com/vifm/vifm/releases/download/v0.14.4/vifm-v0.14.4-x86_64.AppImage chmod +x ~/.local/bin/vifm
Si eres de los que prefieren compilar desde fuente (como yo), el proceso es el clásico de los proyectos en C:
git clone https://github.com/vifm/vifm.git cd vifm ./configure make sudo make install
La compilación es rápida, no necesitas instalar dependencias raras, y te aseguras de tener los flags de optimización adecuados para tu procesador.
Configuración: el vifmrc
El archivo de configuración es ~/.vifm/vifmrc. Si no existe, Vifm crea uno por defecto la primera vez que lo ejecutas, pero es bastante básico. Apenas tiene lo mínimo para que no se queje. Aquí te dejo el mío, que he ido ajustando durante años, puliendo cada detalle, y que me ha acompañado a través de varias versiones.
Vamos por partes para que entiendas lo que hace cada cosa y puedas adaptarlo a tu gusto.
Apariencia y comportamiento básico
set columns=120 set lines=40 set laststatus=2 set showtabline=1 set confirm=y set trash set undolevels=100
La opción trash es importante. Cuando borras un archivo con dd, no se elimina definitivamente. Va a la papelera de Vifm, que por defecto está en ~/.vifm/Trash/. Puedes recuperarlo con u o ir a la papelera y copiarlo de vuelta. El undolevels=100 te permite deshacer hasta cien operaciones. Cien. No vas a necesitar tantas, pero es mejor tenerlas y no usarlas que al revés.
Vista previa asíncrona
Una de las mejores incorporaciones de la v0.12 es la preview asíncrona. Con set preview activas la vista previa en el panel derecho, y set previewupdates=async hace que no se bloquee la interfaz mientras se genera. Puedes definir visualizadores específicos para cada tipo de archivo:
set preview set previewupdates=async fileviewer *.pdf \ pdftotext %c - 2>/dev/null | head -n 100 fileviewer *.jpg,*.png,*.gif,*.bmp \ identify %c 2>/dev/null || file %c fileviewer *.zip,*.tar.gz,*.tar.bz2,*.tgz,*.tar.xz \ vifm --listing -c "file %c" 2>/dev/null
Esto te permite ver el contenido de un PDF sin abrirlo, los metadatos de una imagen, o la lista de archivos dentro de un ZIP. Todo desde la vista previa, sin salir de Vifm.
Vista miller personalizada
La vista miller muestra las columnas del sistema de archivos de forma concéntrica. Es como el Finder de macOS en modo columna, pero en el terminal y con atajos Vim. Desde la v0.14 puedes personalizar el separador:
set viewcolumns=miller set fillchars+=millersep:'│'
El resultado es una vista limpia, con barras verticales que separan las columnas, y una navegación que recuerda a la de Vim pero adaptada al sistema de archivos.
Temas y colores
Vifm soporta true color desde la v0.12, y hay más de 35 temas disponibles. Puedes descargarlos todos de una sola vez:
git clone https://github.com/vifm/vifm-colors.git ~/.vifm/colors
Luego, en tu vifmrc, solo tienes que poner:
set termguicolors colorscheme gruvbox
Mis favoritos son gruvbox para el día a día, nord cuando trabajo de noche, y dracula cuando quiero cambiar de aires. Cada uno tiene su personalidad y cambia completamente la sensación al usar Vifm.
Atajos esenciales
Aquí tienes una tabla con los atajos que más vas a usar en tu día a día. Si conoces Vim, ya sabes casi todos.
| Tecla | Acción |
|---|---|
j / k | Bajar / subir una línea |
h | Subir un directorio |
l o Enter | Entrar en directorio o abrir archivo |
gg / G | Ir al principio / final de la lista |
H / M / L | Ir a arriba / medio / abajo de la ventana |
/ / ? | Buscar hacia adelante / atrás |
n / N | Siguiente / anterior resultado de búsqueda |
dd | Borrar archivo (va a la papelera) |
yy | Copiar archivo |
pp | Pegar archivo |
v | Modo visual (seleccionar archivos uno a uno) |
V | Modo visual por líneas |
Ctrl+w w | Cambiar de panel |
Ctrl+w s | Paneles en horizontal |
Ctrl+w v | Paneles en vertical |
:q | Salir |
:qall | Salir de todo |
u / Ctrl+r | Deshacer / rehacer |
. | Repetir última operación |
za | Mostrar / ocultar archivos ocultos |
zf | Filtrar archivos seleccionados |
zM | Resetear filtros |
Si conoces Vim, ya sabes todos estos atajos. La gracia está en que son exactamente los mismos que usas para editar, pero aplicados a archivos en lugar de a texto. La transferencia de conocimiento es inmediata. De hecho, cuando empecé a usar Vifm, me sorprendió lo natural que se sentía pulsar dd para borrar un archivo. Era como si mi cerebro ya hubiera estado esperando ese momento.
Casos de uso reales
Escenario A: el día a día con Vim
Trabajas en un proyecto Python. Tienes el directorio src/ lleno de archivos con nombres crípticos. Navegas con j y k, ves el contenido de un archivo .py en la vista previa sin abrirlo, y cuando encuentras el que buscas, pulsas Enter y se abre en Vim. Modificas, guardas, cierras Vim, y estás de vuelta en Vifm exactamente donde lo dejaste.
Pero hay más. Puedes buscar dentro de archivos sin salir de Vifm:
:grep -r "def procesar_datos" /ruta/al/proyecto
Los resultados aparecen en un menú navegable. Pulsas Enter sobre una línea y se abre el archivo en Vim en la línea exacta. Puedes navegar entre resultados con n y N. Es como tener grep, el explorador de archivos y Vim integrados en una sola herramienta. Y todo desde el teclado.
Escenario B: comparar directorios con :compare
Tienes dos directorios con archivos que deberían ser iguales pero no estás seguro. Abres uno en el panel izquierdo y otro en el derecho, y ejecutas:
:compare
Vifm te muestra una vista lado a lado con los archivos divididos en grupos. Los que son diferentes, los que solo están en un lado, los que son idénticos. Desde la v0.13, :compare es mucho más interactivo. Puedes ver estadísticas en la barra de estado, filtrar por grupos, y usar do para copiar archivos de un lado a otro y dp para lo contrario.
Yo uso esto constantemente para sincronizar proyectos entre mi portátil y mi servidor. Abro los dos directorios, ejecuto :compare, y en un vistazo sé qué archivos he modificado y cuáles faltan.
Escenario C: renombrar en lote con :substitute
¿Tienes un montón de fotos con nombres como IMG_20260401_123456.jpg y quieres ponerles nombres más legibles? Con Vifm puedes usar :substitute exactamente igual que en Vim:
:substitute /IMG_\d{8}_//g
Esto elimina el prefijo IMG_20260401_ de todos los archivos seleccionados. Puedes usar expresiones regulares, rangos, todo lo que ya conoces de Vim. Y si te equivocas, u para deshacer. No necesitas instalar rename ni mmv ni nada.
Escenario D: FUSE y montaje de imágenes
Vifm soporta FUSE, lo que te permite montar ISOs, imágenes de disco, o incluso sistemas remotos como si fueran directorios. La configuración es sencilla:
filetype *.iso \ {FUSE} \ fuseiso %PARENT_DIR %DEST_DIR
Una vez configurado, cuando navegas a un archivo .iso y pulsas Enter sobre él, Vifm lo monta automáticamente usando FUSE y te muestra su contenido como si fuera un directorio más. Cuando sales del directorio montado, se desmonta solo. Es mágico.
Escenario E: plugins Lua
Desde la v0.12, Vifm soporta plugins Lua. La API todavía es experimental, pero ya hay plugins interesantes.
El más conocido es vifm_devicons, que añade iconos a los archivos según su tipo. Si usas una terminal con soporte de emojis o Nerd Fonts, el resultado es espectacular. Los directorios se ven con un icono de carpeta, los archivos de imagen con una cámara, los de código con un engranaje.
Otro plugin útil es vifmimg, que permite previsualizar imágenes directamente en la terminal usando el protocolo sixel o kitty. No necesitas abrir un visor externo para ver de qué foto se trata.
Los plugins se guardan en ~/.vifm/plugins/, cada uno en su propio directorio. Un plugin mínimo tiene esta pinta:
-- ~/.vifm/plugins/mi-plugin/init.lua function mi_plugin:setup() vifm.sb.print("Plugin cargado correctamente") end
Para activarlo, solo necesitas añadir Plug 'mi-plugin' en tu vifmrc.
Lo bueno y lo malo
Voy a ser sincero. Vifm no es perfecto, y hay cosas que deberías saber antes de lanzarte de cabeza.
Lo bueno
La fidelidad a Vim es total. No es que tenga cuatro atajos puestos con calzador. Es que los modos, los registros, las marcas, los rangos, el punto, :substitute, :grep… todo funciona como esperas. Si sabes Vim, sabes Vifm. El rendimiento es impecable: está escrito en C, arranca al instante, consume casi nada de RAM. El undo multinivel no lo tiene ningún otro gestor, y es de esas cosas que cuando las pruebas, no entiendes cómo has podido vivir sin ellas. La madurez del proyecto se nota: 20 años de desarrollo, un mantenedor responsable, releases frecuentes y firmadas. Y la comunidad, aunque pequeña, es muy activa y receptiva.
Lo malo
La curva de aprendizaje es real. Si no sabes Vim, Vifm te va a parecer hostil, críptico, frustrante. Y aunque sepas Vim, hay cosas que son diferentes y cuestan al principio. El ecosistema es pequeño: comparado con ranger o nnn, hay menos plugins, menos tutoriales, menos gente a la que preguntar. El soporte de ratón, que llegó en la v0.13, es funcional pero básico. No esperes la fluidez de un gestor gráfico. Y las 3.200 estrellas en GitHub, aunque no definen la calidad del proyecto, sí reflejan una comunidad pequeña.
Alternativas
| Gestor | Lenguaje | Estrellas | Vim-like | Para quién es |
|---|---|---|---|---|
| Vifm | C | 3.2k | Total | Usuarios de Vim que quieren consistencia |
| ranger | Python | 15.6k | Básico | Quien busca algo vim-friendly sin tanta curva |
| lf | Go | 7.8k | Parcial | Los que quieren algo rápido y moderno |
| nnn | C | 19.5k | No | El todoterreno del terminal |
| broot | Rust | 11k | No | Los que prefieren navegación por tipo |
Si no usas Vim, no empieces por Vifm. Prueba nnn, que es excelente y tiene una comunidad enorme. O lf si quieres algo más moderno y escrito en Go. O broot si te gusta la navegación por árbol con sugerencias en tiempo real. Pero si ya usas Vim y quieres que tu gestor de archivos sea una extensión natural de tu editor, Vifm es la respuesta.
Conclusión
Vifm no es una herramienta para todo el mundo. Exige que inviertas tiempo en aprenderla, y ese tiempo solo merece la pena si ya estás comprometido con Vim y con el terminal. Pero si ese es tu caso, la recompensa es enorme: un gestor de archivos que se convierte en una extensión natural de tu editor, donde los atajos que ya conoces se aplican a la gestión de archivos.
Mi consejo es que lo instales, uses la configuración que te he dejado en el gist como punto de partida, y le des una semana. Al principio te vas a sentir torpe, buscando teclas que no existen, maldiciendo porque no sabes cómo salir de un panel o porque has borrado algo sin querer. Pero cuando interiorices que dd borra, yy copia, pp pega, y que u lo deshace todo, no vas a querer volver a tocar un ratón para gestionar archivos. Y te aseguro que esa sensación merece la pena.
Más información,