master-wiki/notes/utils/Neovim.md
aleidk 49730b5f3c Update from obsidian -
Affected files:
notes/utils/Neovim.md
projects/quests.md
2023-10-28 13:09:04 -03:00

3.3 KiB

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 <C-w> =
  • <Leader>r tiene keymaps para search and replace

LSP y code actions

  • <Leader>la -> Code action by lsp
  • <Leader>lA -> Node action by Treesitter
  • <Leader>lm -> Toggle node join split (arrays, objects, etc)
  • <Leader>lr -> rename symbol
  • <Leader>fd -> See disagnostics in file
  • <Leader>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 <Leader><Leader>[hjkl]

Buffers

Puedo hacer pin a ciertos buffers para no cerrarlos con <Leader>bp y cerrar todos los buffers no pineados con <Leader>bP

Puedo cerrar los otros buffers no activos con <Leader>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

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.