Las versiones antiguas de Nano no admitían las combinaciones de teclas Ctrl+<em>flecha</em> de forma predeterminada, o no en todos los terminales. Las versiones recientes deberían funcionar. La versión incluida en macOS es una antigüedad 2.0.0 que no admite esas teclas y no admite combinaciones de teclas configurables, así que estás de mala suerte. Pero según la lista de paquetes, Ventura (13.0) dejó de incluir Nano.
Si has instalado Nano a través de Brew/Macports/Fink/..., asegúrate de que estás invocando ese y no el que viene con macOS. Ejecuta nano --version
para verificar la versión de la instancia que estás llamando. En zsh, ejecuta
type -a nano
para ver dónde están los ejecutables de nano
. Si esto muestra múltiples líneas, la que tiene efecto es la primera línea. Si la salida es algo como
nano is /bin/nano
nano is /opt/homebrew/bin/nano
entonces necesitas cambiar la forma en que buscas comandos. Ejecuta
print -lr $path
para listar tu ruta de búsqueda de comandos. Puedes cambiarlo modificando modificando PATH
o path
en tu ~/.zprofile
.
Si tu Nano es lo suficientemente reciente (al menos 2.1.0) pero no reconoce Ctrl+<em>flecha</em>, puedes configurarlos en tu ~/.nanorc
(ese es el archivo llamado .nanorc
, con un punto inicial, en tu directorio de inicio). Descubre qué secuencias de escape envían esos acordes de teclas en tu terminal. (Consulta https://unix.stackexchange.com/questions/47312/control-and-up-down-keys-in-terminal-for-use-by-emacs/47402#47402 y https://superuser.com/questions/357355/how-can-i-get-controlleft-arrow-to-go-back-one-word-in-iterm2 para respuestas similares y https://unix.stackexchange.com/questions/116629/how-do-keyboard-input-and-text-output-work/116630#116630 para una explicación más detallada de las secuencias de escape). En el indicador de zsh, presiona Ctrl+V luego Ctrl+Izquierda luego Ctrl+C. Esto inserta múltiples caracteres, donde el primer caracter es el carácter de control Escape, representado visualmente como ^[
(a menudo en un color diferente). En tu .nanorc
, necesitarás usar los dos caracteres ^[
. Por ejemplo, si ves
^[[1;5D
(que es una secuencia de escape común para Ctrl+Izquierda, y creo que es la que tanto Terminal como iTerm2 envían de forma predeterminada), deberás pasar ^[[1;5D
al comando bind
en .nanorc
. Repite para Ctrl+Derecha y cualquier otra tecla de cursor que quieras vincular. Puedes encontrar los nombres de comandos en el manual de nanorc (man nanorc
en tu sistema). Así que tu nanorc debería contener:
bind ^[[1;5D prevword
bind ^[[1;5C nextword