Una configuración mínima de Neovim escrita en lua
Tabla de contenido
Neovim es un sucesor bastante bueno de Vim, que se centra en la compatibilidad al mismo tiempo que agrega funcionalidad de complemento asincrónico y trata de limpiar la base del código. Habiendo estado harto en varios momentos tanto de Sublime Text (2 y 3) como de Atom, y después de darme cuenta de cuánto desarrollo hago a través de SSH, me pareció razonable probar a usar vim (o nvim, en este caso) como mi IDE. Las ventajas esencialmente se reducen a:
Por eso, decidí crear este repositorio. Hay varias versiones, consulte CHANGELOG.
Esta configuración es un punto de partida y se ajusta únicamente a mis necesidades. Si quieres personalizarlo, salta a 6. Personalización.
mv ~ /.config/nvim ~ /.config/nvim.bak
SO | CAMINO |
---|---|
Linux, MacOS | $XDG_CONFIG_HOME/nvim , ~/.config/nvim |
ventanas (cmd) | %localappdata%nvim |
Windows (powershell) | $env:LOCALAPPDATAnvim |
NOTA La URL de su bifurcación será algo como esto:
https://github.com/<your_github_username>/neovim-config.git
NOTA Si sigue el paso recomendado anteriormente (es decir, bifurcar el repositorio), reemplace
ntk148v
con<your_github_username>
en los siguientes comandos
git clone https://github.com/ntk148v/neovim-config.git " ${XDG_CONFIG_HOME :- $HOME / .config} " /nvim
Si estás usando cmd.exe
:
git clone https://github.com/ntk148v/neovim-config.git " %localappdata%nvim "
Si estás usando powershell.exe
git clone https://github.com/ntk148v/neovim-config.git " ${env : LOCALAPPDATA} nvim "
nvim
git pull
. Los archivos bajo configuración se cargarán automáticamente en el momento adecuado, por lo que no es necesario solicitarlos manualmente.
tree ~ /.config/nvim
├── init.lua
├── lazy-lock.json
└── lua
├── autocmds.lua
├── custom.lua
├── mappings.lua
├── options.lua
├── plugins
│ ├── configs
│ │ ├── cmp.lua
│ │ ├── gitsigns.lua
│ │ ├── lspconfig.lua
│ │ ├── lualine.lua
│ │ ├── luasnip.lua
│ │ ├── mason.lua
│ │ ├── null-ls.lua
│ │ ├── telescope.lua
│ │ ├── tree.lua
│ │ └── treesitter.lua
│ └── init.lua
└── sample_custom.lua
Complemento | Descripción |
---|---|
perezoso.nvim | Un administrador de complementos moderno para Neovim |
mason.nvim | Administrador de paquetes portátil para Neovim que se ejecuta en todos los lugares donde se ejecuta Neovim. Instale y administre fácilmente servidores LSP, servidores DAP, linters y formateadores. |
nvim-lspconfig | Una colección de configuraciones comunes para el cliente de servidor de idiomas integrado de Neovim |
signos de git | Decoraciones git súper rápidas implementadas exclusivamente en lua/teal |
nvim-treesitter | Configuraciones de Nvim Treesitter y capa de abstracción |
nvim-cmp | Complemento de finalización automática |
LuaSnip | Motor de fragmentos para Neovim escrito en Lua |
nvim-tree.lua - | Un explorador de archivos escrito en Lua |
nvim-autopairs | Un autopair súper potente para Neovim. |
nvim-web-devicons | fork Lua de vim-web-devicons para neovim |
lualine.nvim | Un complemento neovim statusline increíblemente rápido y fácil de configurar escrito en lua puro. |
norcalli/nvim-colorizer.lua | El colorizador Neovim más rápido. |
nvim-telescopio/telescopio.nvim | Buscar, filtrar, obtener vista previa, seleccionar. Todo lua, todo el tiempo. |
pino rosado | Vibraciones del Soho para Neovim |
nvimtools/none-ls.nvim | null-ls.nvim recargado / Utilice Neovim como servidor de idiomas para inyectar diagnósticos LSP, acciones de código y más a través de Lua. |
folke/cuál-clave.nvim | Cree combinaciones de teclas que se mantengan. WhichKey le ayuda a recordar sus mapas de teclas de Neovim, mostrando las combinaciones de teclas disponibles en una ventana emergente a medida que escribe. |
De forma predeterminada, están instalados y configurados los siguientes servidores LSP:
Además, se integra con nvim-treesitter para proporcionar resaltado de sintaxis enriquecido y otras magias de análisis del lenguaje.
Si su idioma no es compatible, siga esto:
:LspInstall ` <your_language_server> `
:TSInstall ` <language_to_install> `
Puede agregar más servidores LSP y resaltado de sintaxis de idioma editando el archivo personalizado.
Estos son los mapas de teclas predeterminados; en los siguientes atajos, la tecla <leader>
+` está configurada en el carácter `` (espacio), verifique: keymaps.lua.
Atajo | Modo | Descripción |
---|---|---|
kk | Insertar | Esc con kk |
<leader> + r | Normal | Recargar archivo de configuración |
<leader> + s | Normal | guardar archivo |
<leader> + q | Normal | Guardar (cerrar todas las ventanas) y salir de Neovim |
<leader> + n | Normal | Abrir NvimTree |
<leader> + n.º | Normal | Actualizar NvimTree |
<leader> + nf | Normal | Buscar archivo en NvimTree |
<leader> + ff | Normal | Abra Telescope para buscar archivos |
<leader> + fg | Normal | Open Telescope para hacer grep en vivo |
<leader> + fb | Normal | Abra Telescope para enumerar las zonas de influencia |
<leader> + fh | Normal | Abra Telescope para mostrar ayuda |
<leader> + fo | Normal | Abra Telescope para mostrar archivos abiertos recientemente |
<leader> + cm | Normal | Abra Telescope para enumerar las confirmaciones de git |
<leader> + wh/j/k/l | Normal | Moverse por divisiones |
milímetros | Normal | Línea de comentario/descomentar |
Hay muchos mapas de teclas predeterminados, puede verificarlos usando el comando :map
. También existen otras variantes:
:nmap
para asignaciones en modo normal:vmap
para asignaciones de modo visual:imap
para asignaciones de modo de inserción La lista anterior no está completa. Escribir :help map
en Vim le dará más información.
Puede personalizar esta configuración creando el módulo custom
. Puedes elegir dos formas:
${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom.lua
.${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom/
si su configuración personalizada es demasiado larga y desea separarla en varios archivos.Consulte el archivo personalizado de muestra como punto de partida. La lógica está tomada de CyberNvim. Hay varias secciones definidas en la configuración:
M.setup_sources
se utiliza para agregar fuentes adicionales para conectarse a Null-ls; puede encontrar una lista de fuentes aquí. El parámetro b es la abreviatura de null_ls.builtins.M.ensure_installed
se utiliza para agregar un resaltador Treesitter adicional.M.plugins
es donde agregará sus propias definiciones de complementos.M.configs
es la sección más importante de su propia configuración. Aquí es donde puede definir cualquier comando automático, requerir cualquier archivo o transferir completamente su configuración actual.M.formatting_servers
se utiliza para configurar reglas de formato automático. Debe seleccionar el servidor de idioma que proporcionará capacidades de formato automático. No dudes en presentar un problema o abrir una solicitud de extracción. ¡De nada!