tmux - üst karakter + yukarı / aşağı kaydırarak bölmeye yukarı / aşağı kaydır


14

Xterm'in yaptığı tuş bağlama ile belirli bir bölmeye yukarı / aşağı kaydırma yapabilmek istiyorum, yani ÜST KARAKTER + Sayfa Yukarı / Aşağı.

Örneğin, tmux penceresi 2 dikey bölmeye ayrılırsa, diğeri kaydırmazken klavyeden ikisinden birine kayabilirim.

Mümkün mü ?

İşte benim tmux.conf:

set -g status off
set -g prefix C-o
unbind C-b
bind C-o send-prefix

# settings -------------------------------------------------------------

setw -g utf8 on
setw -g xterm-keys on
set -g default-terminal "screen-256color"

set-option -g set-titles on
set-option -g set-titles-string '[#S:#I #H] #W'

# auto-set window title
setw -g automatic-rename
setw -g aggressive-resize on

# vim keybinds
set-option -g status-keys vi
set-window-option -g mode-keys vi

# scroll inside the current pane
#bind-key k page-up
#bind-key l page-down

# mouse
set -g mode-mouse on
setw -g mouse-select-window on
setw -g mouse-select-pane on

# scrollback buffer n lines
set -g history-limit 100000

# fixes shift-pageup/shift-pagedown
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
set -g visual-activity on

# faster key repetition
set -s escape-time 0

# activity alert
setw -g monitor-activity on
set -g visual-activity on

# alt+directions navigates through panes
bind-key -n M-left select-pane -L
bind-key -n M-right select-pane -R
bind-key -n M-up select-pane -U
bind-key -n M-down select-pane -D

Yanıtlar:


8

Yukarı kaydırmak için şunları yapabilirsiniz:

bind -n S-Pageup copy-mode -u

Yukarıdaki bir Mac üzerinde çalışmıyor gibi görünüyor, bu yüzden ile test:

bind -n S-Up copy-mode -u

Söyleyebildiğim kadarıyla, S-Up düğmesine bastıktan sonra yukarı kaydırmaya devam etmek için S-Up veya yalnızca sayfa yukarı özelliğini kullanmaya devam edebilirsiniz. Aşağı kaydırmak için sayfayı aşağı kullanabilirsiniz. Bunlar tam olarak aradığınız anahtarlar değil, özür dilerim. Umarım hedefinize yaklaşırsınız.

DÜZENLE:

Ben sadece ile test:

bind -n Pageup copy-mode -u

bu da yalnızca sayfa yukarı ve sayfa aşağı kullanmanıza olanak tanır.


bind -n Pageup copy-mode -uKopyalama moduna girmek ve yukarı kaydırmak için PgUp'a basmama izin verirken , yukarı kaydırmak için PgUp'ı kullanamıyorum.
apocryphalauthor

6

Evet, bu sorunun eski olduğunu biliyorum ama google sonuçlarında o kadar da aşağı değil ve sadece nasıl yapılacağını öğrenmek için çok zaman harcadım çünkü neredeyse hiçbir google sonucu bir cevap değil, sadece sorular içeriyordu.

AFAIK, kopyalama modundayken yalnızca bir bölme kayar. Kullanabileceğiniz kopya moduna geçmek için prefix-[ve sonra kullanarak kaydırmak C-upve C-downya (yapılandırma dosyasında) kendi tuş atamaları ayarlayabilirsiniz böyle emacs modu görünüyor hangi:

bind-key -t emacs-copy -n S-PPage halfpage-up
bind-key -t emacs-copy -n S-NPage halfpage-down

Bu, Shift+ PageUpve Shift+ tuş kombinasyonlarını kopya modundaykenPageDown yarım sayfanın sırasıyla aşağı kaydırmasını ayarlar . Vi-mode kullanırken böyle bir şeye değiştirmeniz gerekir:

bind-key -t vi-copy -n S-PPage halfpage-up
bind-key -t vi-copy -n S-NPage halfpage-down

Şimdi kopyalama moduna "otomatik" girmek istiyorsanız ve kullanmak istemiyorsanız prefix-[, yapılandırma dosyanıza aşağıdaki satırı ekleyebilirsiniz:

bind-key -t root -n S-PPage copy-mode -u

Bu, Kopyalama modunu açar ve Düzenleme Modunda (varsayılan mod) Shift+ düğmesine basıldığında (tam) bir sayfayı yukarı kaydırır PageUp. Bir sayfayı yukarı kaydırmadan yalnızca kopyalama modunu açmak için -u,. Ve aşağı / tam sayfa yukarı kaydırmak için ya da sadece bir satır anahtar kelimeler kullanabilirsiniz istiyorsanız page-up, scroll-upya komutların kullanılması birini

tmux list-keys -t vi-copy
tmux list-keys -t emacs-copy

Kullanılacak seçeneklerin ve varsayılan tuş bağlantılarının tam listesini görmek için


1
Ben tmuxçalıştırıyorum sürümü olup olmadığını emin değilim, ama -tparametre tanınmıyor (ancak, -T çalışır) Olası yazım hatası?
mdip

Büyük olasılıkla bir yazım hatası ama aynı zamanda birlikte bir anlam ifade etmiyor -n, çünkü bu bir kısayol-T root
smido

4

İşte sadece kas hafızanızla çalışacak ve normal terminalde olduğu gibi Shift+ PageUpve Shift+ kullanmanıza izin veren bir çözüm PageDown.

bind -n Pageup copy-mode -u
bind -n S-Pageup copy-mode -u
bind -n S-Pagedown send-keys Pagedown

Vim kullanıyorsanız, bu bağlamayı koşullu olarak etkinleştirmek isteyeceksiniz veya PageUptmux içindeki vim'de kullandığınızda vb.

is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
    | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
bind -n Pageup if-shell "$is_vim" "send-keys Pageup" "copy-mode -u"
bind -n S-Pageup if-shell "$is_vim" "send-keys Pageup" "copy-mode -u"
bind -n S-Pagedown send-keys Pagedown

(@ Rafine eden @ mjwhitta çözümü sayesinde)


+1, ancak bind -n Pageup if-shell "$is_vim" "send-keys Pageup" "copy-mode -u; send-keys Pageup"Pageup'ın birden fazla basışta yukarı ilerlemeye devam etmesi için gerekliydi.
19:42, 79
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.