Cómo Mover el Cursor Arriba y Abajo Usando feedkeys en la API de Lua de Neovim

Aprende cómo mover el cursor programáticamente hacia arriba y abajo utilizando la función feedkeys de Neovim. Esta guía proporciona un ejemplo de cómo invocar comandos en modo normal a través de Lua, permitiéndote manipular el cursor de manera eficiente.

¿Qué es vim.api.nvim_feedkeys?

La función vim.api.nvim_feedkeys te permite simular pulsaciones de teclas en Neovim, convirtiéndola en una herramienta versátil para invocar comandos de forma programada.

Firma de la función

  • vim.api.nvim_feedkeys(keys, mode, escape_ks)

Parámetros:

  • keys: Una cadena que representa la secuencia de teclas a simular.
  • mode: Una cadena que indica el modo en el que se ejecutarán las teclas (por ejemplo, "n" para modo normal).
  • escape_ks: Un booleano o cadena que determina si las secuencias de teclas deben escapar caracteres especiales.

Ejemplo: Mover el Cursor Arriba y Abajo

-- Función para mover el cursor hacia arriba un número específico de líneas
local function move_cursor_up(lines)
  vim.api.nvim_feedkeys(tostring(lines) .. "k", "n", false)
end

-- Función para mover el cursor hacia abajo un número específico de líneas
local function move_cursor_down(lines)
  vim.api.nvim_feedkeys(tostring(lines) .. "j", "n", false)
end

-- Ejemplo de uso: Mover el cursor hacia arriba 5 líneas
vim.keymap.set('n', '<leader>k', function()
  move_cursor_up(5)
end, { desc = "Mover cursor hacia arriba 5 líneas" })

-- Ejemplo de uso: Mover el cursor hacia abajo 5 líneas
vim.keymap.set('n', '<leader>j', function()
  move_cursor_down(5)
end, { desc = "Mover cursor hacia abajo 5 líneas" })