Pregunta ¿Cómo me desplazo en tmux?


Acabo de empezar a usar tmux, y realmente me gusta, pero necesito poder desplazarme por los búferes / paneles / ventanas que tengo abiertos. No me importa si funciona con el mouse o no. Cuando busco en la página man de tmux, solo encuentro dos instancias de la palabra "scroll", y ambas tienen que ver con el modo copy. ¿Hay alguna manera de desplazarse sin la sobrecarga de ingresar al modo de copia?


1058


origen


¿Qué sobrecarga te preocupa? copy-mode es la forma de ver el historial (y opcionalmente copiar cosas de él). - Chris Johnsen
para mí puedes presionar f7 para el modo de desplazamiento y q para salir - JohnMerlino
set -g mode-mouse on la respuesta de per @ chaiyachaiya fue el ganador para mí - Peter Berg


Respuestas:


Ctrl-segundo entonces [ luego puede usar sus teclas de navegación normales para desplazarse (ej. Flecha arriba o PgDn) prensa q para salir del modo de desplazamiento.

Alternativamente puedes presionar Ctrl-segundo  PgUp para ir directamente al modo de copia y desplazarse una página hacia arriba (que es lo que parece que querrá la mayor parte del tiempo)

En vi modo (ver a continuación), también puede desplazar la página hacia arriba / abajo línea por línea usando Cambio-k y Cambio-j (si ya estás en modo de desplazamiento). Sin desplazamiento, el cursor se mueve en lugar de la página.

Extractos de la página man:

tmux se puede controlar desde un cliente conectado usando una combinación de teclas de una tecla de prefijo, 'C-b' (Ctrl-b) por defecto, seguido de una tecla de comando.

 The default command key bindings are:

[           Enter copy mode to copy text or view the history.

Function                     vi              emacs
--------                     --              -----
Half page down               C-d             M-Down
Half page up                 C-u             M-Up
Next page                    C-f             Page down
Previous page                C-b             Page up
Scroll down                  C-Down or C-e   C-Down
Scroll up                    C-Up or C-y     C-Up
Search again                 n               n
Search again in reverse      N               N
Search backward              ?               C-r
Search forward               /               C-s

Además un montón más. Tenga en cuenta que debe presionar C-b dos veces si usa eso para la página arriba desde C-b está vinculado como la tecla de comando. Consulte la página de manual para obtener información sobre la introducción de un comando de modo de copia con un conteo repetido.

Puede establecer el modo de enlace de clave usando Ctrl-segundo, entonces

:set-window-option mode-keys emacs

o vi.


1292



creo C-b = es choose-buffer por defecto. Querías decir C-b [ (cual es copy-mode por defecto)? También puedes usar C-b PageUp para iniciar el modo de copia directamente en la página anterior (muy útil cuando sabes que lo que quieres ver / copiar ya se ha desplazado de la página actual). - Chris Johnsen
Correcto, mi tmux no tiene modo de desplazamiento. Necesitas C-b [ para ingresar al modo de copia y luego usar las teclas de enlace emacs o vi para desplazarse. Esto parece un montón de pasos solo para desplazarse, pero los beneficios de tmux aún superan estas molestias. Estoy en un macbook y no hay una tecla AvPág: - \. (Además, ¿cómo hago las llaves con el descuento como lo hiciste, Dennis?) - chadoh
@chadoh: prueba esto en tu Macbook: Inicio: fn-LeftArrow; Fin: fn-RightArrow; Re Pág: fn-UpArrow; Página abajo: fn-DownArrow. Para hacer keycaps: <kbd>Ctrl</kbd> - Dennis Williamson
en macbook, el fn + up va directo a la aplicación de terminal y nunca llega a tmux - Tyler
En un macbook, si está en modo de desplazamiento, puede usar fn + Shift + LeftArrow para desplazarse hacia arriba en una página. - Nick Hammond


Bueno, deberías considerar la forma correcta de configurar el desplazamiento: agrega en tu tmux.conf

set -g mouse on        #For tmux version 2.1 and up

o

set -g mode-mouse on   #For tmux versions < 2.1

Me funcionó en ventanas y paneles. Ahora tmux es simplemente perfecto.

Tmux práctico tiene más información sobre los archivos tmux.conf.


236



Cuando hago esto, los clics y desplazamientos del mouse hacen que se impriman caracteres extravagantes en el área de solicitud del terminal que estoy usando con tmux. ¿Algunas ideas? - ely
Futuros usuarios de mouse tmux: Para ahorrarte tener que desplazarte hacia abajo antes de escribir, puedes golpear q para salir del modo de desplazamiento. - Jezen Thomas
El desplazamiento del mouse funciona bien con esto, pero desafortunadamente no puedo usar el mouse para seleccionar el texto. Usando Tilda y tmux. - friederbluemle
Tenga en cuenta que en tmux 2.1 y superior, esto se reemplaza con set -g mouse ony el desplazamiento no entra automáticamente en el modo de copia como lo hacía antes. - thrnio
Nota importante: esta configuración rompe resaltando y copiando texto. Use shift + clic para mantener esta funcionalidad. - Shadoninja


Desde mi .tmux.conf:

# Sane scrolling
set -g terminal-overrides 'xterm*:smcup@:rmcup@'

Esto permite el desplazamiento nativo de xterm.


125



¿Puedes explicarme qué hace exactamente esto? - Ivo
No sé lo que hace, pero es un genio puro. Finalmente, el desplazamiento de tmux funciona, ¡yay! - oneself
Esto no funciona para mí en OS X ... - Nick
Solución: gist.github.com/1297707 - Nick
Mira esto si estás confundido sobre la respuesta de togdon: superuser.com/questions/310251/...   OMI, si tiene solo un panel, esta solución funciona mejor que la respuesta aceptada. - thameera


Para el último tmux 2.1, para desplazarse con el mouse de manera sensata, esta es la respuesta correcta:

set -g mouse on
" sane scrolling:
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e; send-keys -M'"

no basta con volver a cargar su .tmux.conf; necesita reiniciar su tmux, p. tmux kill-server && tmux

tomado de https://github.com/tmux/tmux/issues/145


39



¿Cómo esta no es la respuesta aceptada? - Marcel
la nota en esta respuesta sobre "no ser suficiente para simplemente cargar .tmux.conf ayudó" y salir de todas las sesiones de tmux para mí (tal vez kill-server funcionaría) ayudó! - Colin D
¿Podrías explicar cómo funciona esto? - oligofren
Parece reenviar los eventos del mouse cuando se presiona / se desplaza el mouse / etc. si el panel está en cualquier estado indirecto / de búfer (¿solo modo de copia?), y el mouse está presionando un botón, desplazándose, etc. La última parte cubre el desplazamiento en modo directo al cambiar a un modo indirecto primero. Si no fuera por esos controles, el terminal podría interpretar los eventos como un desplazamiento de historial, si es que lo hace. Dicho esto, no sé si alguna vez pude hacer que mi localizador y Vim se desplacen correctamente al mismo tiempo, y he intentado con algunos de los fragmentos que están dando vueltas. - John P


En mi caso, solo optar + UpArrow y optar + Flecha hacia abajo en OSX.


12



@ fixer1234 La pregunta no menciona a Linux en absoluto. tmux se puede usar en OS X, también. - slhck
@slhck: Gracias. Demasiado somnoliento; astigmatismo. Intuí mal la etiqueta tmux como una etiqueta de Linux. - fixer1234


Esta es la forma en que lo hice funcionar, y las razones por las que creo que es mejor que la forma predeterminada.

Para probarlo, coloque todas las secciones de código en ~/.tmux.conf.

Paso 1. Cambia la tecla de prefijo para que no tengas que llegar a un bit. 'B' es aparentemente una tecla cercana, pero está en el medio de los dos dedos índices (en 'F' y 'J', respectivamente). Debido a que ese atajo es esencial en tmux, C-j es mucho mejor ya que implica el movimiento cero de la mano (además de presionar la tecla).

set -g prefix C-j
unbind C-b
bind C-j send-prefix

Paso 2. 'S' (para ingresar al modo de copia) es: 1) cerrado (la misma razón que la anterior), 2) involucra a la otra mano (compare: el 1-2 en el boxeo, o el ls comando para ver archivos en un directorio), y 3) podría ser considerado como mnemónico para "desplazamiento" (aunque el modo de copia no se trata solo de desplazarse).

bind s copy-mode

Paso 3. La última parte, el desplazamiento real. 'P' y 'N' son familiares para este propósito para los usuarios de Emacs. Son cercanos, intuitivos ('P' está arriba 'N' en el teclado) y mnemotécnico ("anterior" y "siguiente"). Si acabas de hacer un desplazamiento en Emacs, y luego ir a tmux, tiene sentido tener esos atajos.

Sin embargo, descubrí que 'I' y 'K' son incluso mejores: están incluso más cerca que 'P' y 'N', e intuitivos (por la misma razón); en cuanto a las mnemotécnicas, ya que el desplazamiento es una cosa muy común, los mnemónicos no importan ya que los atajos pronto pasarán por alto tu cerebro y entrarán en la memoria muscular.

bind -t emacs-copy 'p' scroll-up
bind -t emacs-copy 'n' scroll-down
bind -t emacs-copy 'i' scroll-up
bind -t emacs-copy 'k' scroll-down

10





Busqué mucho por esto y la mejor solución para mí funciona como se menciona en esta guía detallada: http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/

Agregue estos enlaces en ~ / .tmux.conf:

set -g mode-mouse on

unbind +
bind + \
  new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \;\
  swap-pane -s tmux-zoom.0 \;\
  select-window -t tmux-zoom

unbind -
bind - \
  last-window \;\
  swap-pane -s tmux-zoom.0 \;\
  kill-window -t tmux-zoom

Con el enfoque anterior implementado, puede copiar desde los paneles en una ventana también por zoom en cada panel primero usando Prefijo  +.

Un detalle importante que faltaba en el modo de mouse es presionar Cambio antes de seleccionar un área para copiar. Esto lo copiará en el buffer del terminal tradicional en lugar del buffer de copia de tmux. (https://wiki.archlinux.org/index.php/Tmux#Scrolling_issues)


6



Aprecia tu respuesta Pero muchas veces los enlaces referidos pueden romperse. Siempre sería beneficioso agregar la parte central de su respuesta aquí y proporcionar el enlace solo para referencia. - Prasanna


Recomiendo darle una oportunidad al tmux-better-mouse-mode complemento para resolver la mayoría de los problemas relacionados con el mouse tmux.

Es compatible con Tmux 2.1+ y el nuevo set-option -g mouse on enfoque.


4



Gracias, esta es la mejor solución para mí. Cubre todos los enlaces de las ruedas del mouse que agregué manualmente (por lo que ya no los necesito), y hay dos características de asesino que quería mucho: scroll-without-changing-pane en combinación con scroll-without-changing-pane y emulate-scroll-for-no-mouse-alternate-buffer. Ahora mi experiencia de uso de tmux es mucho mejor. - selurvedu


Lo único que funciona para mí es poner lo siguiente en ~/.tmux.conf

# Allow xterm titles in terminal window, terminal scrolling with scrollbar, and setting overrides of C-Up, C-Down, C-Left, C-Right
set -g terminal-overrides "xterm*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"

(Es posible que deba reiniciar para que esto surta efecto)

Actualizar:

Descubrí que si cambia la configuración en Putty Connection> Data> Terminal-type a "putty" (usada para corregir algunos problemas de formato) desde "xterm", esta solución deja de funcionar.

Actualización 2:

Use esto si quiere "masilla" como su tipo de terminal: set -g terminal-overrides "putty*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"


4



Este realmente resuelve mi problema de desplazamiento en la aplicación de iPhone también. - NathaneilCapital
La última vez que probé esto ya no funcionaba, pero funcionó. Extraño. set -ga terminal-overrides ',xterm*:smcup@:rmcup@' - phocks


Esto funcionó para mí:

vim ~/.tmux.conf
set -g mode-mouse on      ###Insert this setting with vim, then source the file.
tmux source-file ~/.tmux.conf

1





  • Ctrl + UN - para comenzar a desplazarse
  • Ctrl + do - para detener el desplazamiento

-3



Esta publicación es demasiado corta para ser útil para responder la pregunta. Agrega muy poca información nueva a las respuestas ya publicadas; no dice nada sobre cómo para desplazarse (solo cómo cambiar dentro y fuera del modo de copia). Además, la combinación predeterminada de teclas de prefijo del comando es Ctrl-B (Ctrl-Aes el predeterminado para la pantalla GNU). - Anthony Geoghegan
No estoy seguro de si el autor de esta respuesta siquiera entendió la pregunta. No es útil y simplemente está mal. - Vik
He estado buscando cómo dejar de desplazarse por tanto tiempo, ¡gracias por señalarlo! - PERR0_HUNTER