## Config ### Formatters Hay que añadirlos en `plugins/formatters.lua`, pueden ser instalados con mason. ### Linters Hay que añadirlos en `plugins/linters.lua`, pueden ser instalados con mason. ### LSP Hay que añadirlos en `plugins/lsp.lua`, son instalados automáticamente al ser agregados aquí con mason. ## Remember to use: ### Misc - In visual mode, you can use `J` or `K` to move the selection - With alt + hjkl I can resize the window, I can restore the size with ` =` - `r` tiene keymaps para search and replace ### LSP y code actions - `la` -> Code action by lsp - `lA` -> Node action by Treesitter - `lm` -> Toggle node join split (arrays, objects, etc) - `lr` -> rename symbol - `fd` -> See disagnostics in file - `fD` -> See disagnostics in workspace - `gr` -> List reference of symbol in telescope ### Git Puedo invocar comandos de git directamente desde neovim con `:Git ...` ### Harpoon Fast navigation with `[hjkl]` ### Buffers Puedo hacer pin a ciertos buffers para no cerrarlos con `bp` y cerrar todos los buffers no pineados con `bP` Puedo cerrar los otros buffers no activos con `bO` ### Treesitter TODO: Research movemet with Treesitter ### Text objects Los text objects se utilizan en la forma de ==acción - motion==, Ej: `vi{` es `selecciona dentro de los { }` Acciones: - v -> visual selection - d -> delete - c -> change - gc -> comment Text objects available: - f -> function - t -> html tag ### Surround plugin - Actions (all of them are dot-repeatable out of the box and respect `v:count` for searching surrounding) with configurable keymappings: - Add surrounding with `sa` (in visual mode or on motion). - Delete surrounding with `sd`. - Replace surrounding with `sr`. - Find surrounding with `sf` or `sF` (move cursor right or left). - Highlight surrounding with `sh`. - Change number of neighbor lines with `sn` (see |MiniSurround-algorithm|). - Surrounding is identified by a single character as both "input" (in `delete` and `replace` start, `find`, and `highlight`) and "output" (in `add` and `replace` end): - 'f' - function call (string of alphanumeric symbols or '_' or '.' followed by balanced '()'). In "input" finds function call, in "output" prompts user to enter function name. - 't' - tag. In "input" finds tag with same identifier, in "output" prompts user to enter tag name. - All symbols in brackets '()', '[]', '{}', '<>". In "input' represents balanced brackets (open - with whitespace pad, close - without), in "output" - left and right parts of brackets. - '?' - interactive. Prompts user to enter left and right parts. - All other alphanumeric, punctuation, or space characters represent surrounding with identical left and right parts. ### Text Object works for: - Comments (`gc`) - Visual selection ### Telescope - [Browser plugins mappigns](https://github.com/nvim-telescope/telescope-file-browser.nvim#mappings) ## Plugins compatibility errors Lazy.nvim tiene un `lazy-lock.json`, por lo que ante cualquier problema de compatibilidad, podemos volver a versión especificada aqui con `Lazy restore`. Es importante mantener este archivo en git y solo modificarlo cuando se esté seguro que no hay problemas de compatibilidad.