## 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): |Insert / Normal|fb_actions|Description| |---|---|---| |`/c`|create|Create file/folder at current `path` (trailing path separator creates folder)| |``|create_from_prompt|Create and open file/folder from prompt (trailing path separator creates folder)| |`/r`|rename|Rename multi-selected files/folders| |`/m`|move|Move multi-selected files/folders to current `path`| |`/y`|copy|Copy (multi-)selected files/folders to current `path`| |`/d`|remove|Delete (multi-)selected files/folders| |`/o`|open|Open file/folder with default system application| |`/g`|goto_parent_dir|Go to parent directory| |`/e`|goto_home_dir|Go to home directory| |`/w`|goto_cwd|Go to current working directory (cwd)| |`/t`|change_cwd|Change nvim's cwd to selected folder/file(parent)| |`/f`|toggle_browser|Toggle between file and folder browser| |`/h`|toggle_hidden|Toggle hidden files/folders| |`/s`|toggle_all|Toggle all entries ignoring `./` and `../`| |``|see `telescope.nvim`|Toggle selection and move to next selection| |``|see `telescope.nvim`|Toggle selection and move to prev selection| |`/`|backspace|With an empty prompt, goes to parent dir. Otherwise acts normally| ## 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.