
De manera similar a los modos de Vim, me gustaría que Tmux permaneciera en 'modo prefijo' (¿cómo se llama realmente?) hasta que presione Escape, para poder hacer algo como
Prefix h j + +
en lugar de
Prefix h Prefix j Prefix + Prefix +
y no tener que preocuparse por temporizadores o acordes excesivos.
Respuesta1
Publiqué esto como unasuntoy recibí esta respuesta:
Puede volver a vincular todas las claves para agregarlas
switch-client -Tprefix
al final de cada secuencia de comandos, pero no existe una forma automatizada de hacerlo.
El problema aquí es que no funcionará si el comando arroja un error, pero puedes solucionarlo usando
Sí, el error cancelará la secuencia de comandos. Puede solucionar este problema utilizando run-shell, por ejemplo.
run "tmux mycmd; tmux switch-client -Tprefix"
Pero eso podría ocultar la visualización del error.
Mi configuración actual se ve así:
bind c new-window \; switch-client -T prefix
bind . command-prompt \; switch-client -T prefix
bind , copy-mode \; switch-client -T prefix
# Vim style splits
bind s split-window -v \; switch-client -T prefix
bind v split-window -h \; switch-client -T prefix
# Double tab to cycle panes
bind C-a select-pane -t :.+ \; switch-client -T prefix
Por lo que deduzco, tmux usa diferentes contextos para diferentes enlaces. Para especificar en qué contexto usar un enlace, use bind <key> -T <context>
, donde el prefijo es el predeterminado. Puedes cambiar de contexto usando switch-client -T <context>
, entonces lo que hacemos es volver a aplicar el prefijo después de cada comando.
Los inconvenientes de este método son:
- Tendrás que hacerlo explícitamente en cada enlace.
- volverá al modo normal si algo resulta en un error (por ejemplo, intentar cambiar a la siguiente sesión cuando solo hay una sesión ejecutándose)
- saldrá con cualquier tecla no vinculada, no solo con Esc.
¡Prima!Puedes agregar un indicador original, que es muy útil cuando permaneces en modo de prefijo durante más tiempo usando algo como
set -g status-right "#{?client_prefix,#[reverse]● #[noreverse],#[reverse]○ #[noreverse]}"