:NeoTree

NeoTree es un plugin que nos permitirá navegar por la estructura de árbol de archivos y directorios, y gestionar los mismos. Vamos, que podemos gestionar archivos y directorios, y navegar entre ellos.

Instalación

Nos vamos al directorio $HOME/.config/nvim/plugins/ y vamos a crear el archivo neotree-cfg.lua. Una vez abierto escribimos esto dentro:

return {
    -- NeoTree
    "nvim-neo-tree/neo-tree.nvim", 
    dependencies = {"nvim-lua/plenary.nvim", "MunifTanjim/nui.nvim"}
},

Tras guardar el archivo, la barra de comandos nos avisa de que se han producido cambios en el archivo de las especificaciones. Salimos de Neovim y lo volvemos a ejecutar.

NeoTree instalado

Se carga el gestor de Lazy y acto seguido instalará NeoTree y sus dependencias. Ahora solo hay que activar NeoTree.

Activar NeoTree

Dentro del archivo neotree-cfg.lua, vamos a modificar lo que hay después de las dependencias:

return {
    -- NeoTree
    "nvim-neo-tree/neo-tree.nvim", 
    dependencies = {"nvim-lua/plenary.nvim", "MunifTanjim/nui.nvim"},
    config = function()
        require("neo-tree").setup() -- Se activa el plugin
    end,
},

Guardamos el archivo, salimos de Neovim y lo volvemos a cargar. De momento no sucede nada, pero si escribimos el comando :Neotree

NeoTree activado

Nos aparece una barra lateral con la estructura del directorio actual. Esto viene bien cuando se trabaje con proyectos de programación organizados por directorios. Si volvemos a usar el comando no se cierra. Tenemos que escribir :Neotree close para cerrarlo. Lo que queremos más adelante es pulsar una tecla para abrir y cerrar NeoTree.

Configurar Neotree

Ahora vamos a liarnos con el archivo de configuración de NeoTree para alterar su funcionamiento. Lo primero será usar la tecla de tabulación para abrir/cerrar NeoTree.

Para eso abrimos de nuevo neotree-cfg.lua y debajo de la línea de setup() añadimos el atajo:

require("neo-tree").setup()

vim.keymap.set("n", "<tab>", ":Neotree toggle<cr>", {silent = true})

Ahora sucede que cuando abrimos un archivo, lo abre en un búfer, en vez de una pestaña. Vamos a hacer que cuando pulsemos Enter, se abra en una pestaña nueva. Pues dentro de setup() añadimos:

require("neo-tree").setup({
    window = {
        mappings = {
            ["<cr>"] = { "open_tabnew" }
        }
    }
})

Cerramos Neovim, volvemos a ejecutarlo, abrimos Neotree y seleccionamos un archivo. Al abrirlo, ahora se carga en una pestaña nueva.

Se abren nuevas pestañas al abrir archivos con Neotree

Para más información sobre cómo configurar NeoTree a tu gusto, puedes dirigirte a la documentación oficial de Github o bien escribiendo el comando :help neo-tree. A mí personalmente me gusta que se abra como una ventana lateral, como si estuvieses trabajando en Visual Studio Code u otro IDE.

Atajos de teclado de NeoTree

Este plugin dispone de atajos de teclado por defecto para que el usuario pueda hacer un montón de cosas con él. Vamos con ellos.

Tecla Descripción
A Crea un directorio
a Crea un archivo, o un directorio si acaba con una “/”
c Copia un archivo/directorio
d Borra un archivo/directorio
i Muestra la información del archivo/directorio
H Muestra los archivos ocultos, los que comienzan por el .
m Mueve un archivo/directorio a otro
oc Permite ordenar los archivos por fecha de creación
od Permite ordenar los archivos por la cantidad de diagnósticos
og Permite ordenar los archivos por el estado de Git
om Permite ordenar los archivos por fecha de modificación
on Permite ordenar los archivos por nombre
os Permite ordenar los archivos por tamaño
ot Permite ordenar los archivos por tipo
p Pegar del Portapapeles
r Cambia el nombre de un archivo/directorio
x Cortar del Portapapeles
y Copiar del Portapapeles
Retroceso Subir a un directorio superior
? Muestra los atajos de NeoTree