✨ Qué logré
Logré que los atajos ⌥ + j
y ⌥ + k
(Option + j/k) funcionen correctamente en Neovim para mover líneas arriba o abajo, incluso cuando estoy trabajando dentro de Tmux, usando Ghostty como terminal en macOS.
🤔 ¿Por qué quise hacer esto?
- Porque en mi flujo de trabajo diario con Neovim (y especialmente LazyVim), mover líneas o bloques de texto con
Alt + j/k
es una operación fundamental. - Pero macOS no trata
Option
comoAlt
por defecto, y eso rompe este tipo de atajos. - Además, al usar Tmux sobre el terminal, muchas secuencias de teclas
Meta
/Alt
se pierden si no están bien configuradas.
🛠️ Cómo lo solucioné
✅ Paso 1: Configuré Ghostty para tratar Option
como Alt
Edité el archivo de configuración principal de Ghostty (~/.config/ghostty/config
) y añadí esta línea:
macos-option-as-alt = true
Esto hace que ambas teclas Option (⌥) se comporten como la tecla Alt
en el terminal, enviando correctamente secuencias ESC + <key>
.
También se puede usar
"right"
o"left"
si se quiere aplicar solo a una de las teclas.
Aparentemente esta opcion no funciona en build GLFW de Ghostty
✅ Paso 4: Confirmé que Alt + j/k
llegaban a Neovim
Usé este comando dentro de Neovim:
:verbose map <M-j>
Luego presioné ⌥ + j
y verifiqué que el mapeo se ejecutaba.
✅ Paso 5: Verifiqué que también funcionara dentro de Tmux
- Abrí Neovim dentro de una sesión Tmux, y repetí la prueba.
- Confirmé que
⌥ + j/k
seguían funcionando, gracias a que:- Ghostty enviaba
Alt
correctamente. - Tmux no bloqueaba las secuencias.
- Ghostty enviaba
Nota: No tuve que modificar .tmux.conf
, pero si en el futuro deja de funcionar, verificar si falta:
set -g xterm-keys on
✅ Resultado
Ahora puedo usar:
⌥ + j
→ mover línea o bloque hacia abajo⌥ + k
→ mover línea o bloque hacia arriba
Tanto en Neovim standalone como dentro de Tmux, con Ghostty como terminal principal en macOS.
🧩 Reflexión
Me tomó varios intentos llegar aquí. Lo más frustrante fue que:
- macOS no usa
Alt
comoMeta
por defecto. - Ghostty puede ser configurado con
config
,config.toml
, o inclusoghostty.yml
, y eso puede causar confusión. - Tmux a veces bloquea secuencias de teclado si no está bien configurado.
Pero valió la pena. Ahora tengo un entorno mucho más fluido y eficiente para escribir, editar y trabajar en Neovim.
🔮 Siguientes pasos posibles
- Mapear
⌥ + h/l
para moverme entre splits. - Mapear
⌥ + ← / →
para mover palabra. - Mapear
⌥ + backspace
para borrar palabra completa. - Documentar estos atajos en este mismo archivo o en un snippet para compartir.