Kiel Mi Ruliĝas per Tmux

Esperanto · English
la 26-an de septembro 2018
Laste ĝisdatigita: la 26-an de septembro 2018

Furioza agado ne estas anstataŭaĵo de komprenado.
―H.H. WILLIAMS

Samkiel redaktilo, terminalsimulila kunigilo estas unu el la malmultaj iloj kiu multe da produktiveco liveras ekde ĝin oni lernas kiel uzi. En ĉi artikolo pri parolos pri tmux—seanca mastrumilo, kunigilo, fenesadministrilo, kaj unu el la plej gravaj programaroj kiu la manieron en kiu komputadon mi faras ŝanĝis.

Enhavotabelo

Superrigardo

De longe je GNU Screen mi uzis por kunigilado. Estis tia vigliga sento kiam la konekton al maŝino oni perdas nur por malkovri poste, ke la porgramo kiun oni kurigis antaŭe ankoraŭ kuras.

Tamen, kiam je tmux mi malkovris, mi rapide eksciis tiom mankadis al mi. Kaj tmux kaj screen estas kunigiloj, sed iel malsamajn problemojn ili taktas. En mia propra kazo, tiuj, kiuj mankis al mi de screen, tmux provizis.

En ĉi tiu artikolo, onin mi kondukas al mia agordaĵo kaj krudan ideon kiel mi ruliĝas per tmux mi donos.

Ĝeneralaj

Estas bona ideo por komenci de la pli ĝeneralaj fazoj de agordaĵo, moviĝonte al la plej specifaj. Iom da ĉi tiuj agordaĵoj ĉi tiu sekcio rigardos.

Indeksoj

set -g default-shell $SHELL

set -g base-index 1
setw -g pane-base-index 1
set -g history-limit 100000

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

La komencan fenestran ciferon ĉi tio agordas al 1, anstataŭ 0; plifaciliĝas por specifan fenestron ŝanĝi poste. La limon de la historio kaj la prefiksklavon ĝi ankaŭ agordas. Je C-b mi malbindis pro tiu klavo estas tro grava al emaksa kaj ziŝa uzo.

Klientoj

bind D detach-client
bind b choose-tree
bind n new-session -c "#{pane_current_path}"
bind @ setw synchronize-panes

Kelkajn klavojn ĉi tio bindas por la aktualan seancon malligi, kaj seancon elekti el la arbelektilo. Plurajn panelojn la klavkombino C-z @ permesas por la saman klavaran enigon ricevi. Ĉi tio tre utilas kiam forajn konektojn problemsolvi samtempe.

La agordon reŝarĝi

bind . source-file ~/.tmux.conf
bind r move-window -r \; setw automatic-rename
bind x kill-pane \; move-window -r \; setw automatic-rename
bind & kill-window \; move-window -r \; setw automatic-rename

Ĉi tie, je C-z x kaj je C-z & mi rebindis por ke kiam fenestroj estas forigitaj la numerado aŭtomate ĝisdatigu. Permana transparo per C-z r estas alia alterna havebla metodo.

La klavojn C-z x kaj C-z & mi ankaŭ rebindis por panelojn kaj fenestrojn mortigi, respektive, sen invitoj.

Fenestroj

Fenestroj estas la ekvivalentoj de retumilaj langetoj en tmux. Seancojn ĝi organizas al subseancoj.

Movado

bind -n C-PPage previous-window
bind -n C-NPage next-window
bind -n S-left swap-window -t -1
bind -n S-right swap-window -t +1

bind -n M-1 select-window -t 1
bind -n M-2 select-window -t 2
bind -n M-3 select-window -t 3
bind -n M-4 select-window -t 4
bind -n M-5 select-window -t 5
bind -n M-6 select-window -t 6
bind -n M-7 select-window -t 7
bind -n M-8 select-window -t 8
bind -n M-9 select-window -t 9

Je C-PageUp kaj je C-PageDown mi bindis por fenestrojn ŝanĝi malantaŭen kaj antaŭen, respektive. Je S-Left kaj S-Right mi bindis por fenestrojn interŝanĝi al maldekstren kaj dekstren, respektive.

Por rapide ŝanĝi al specifaj fenestroj, kelkajn klavkombinojn ni bindis al la klavon Alt, alie nomata la klavo Meta.

Regado

bind c new-window -c "#{pane_current_path}"
bind C new-window -c ~

bind '"' split-window -v -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"

La klavojn ĉi tio bindis por novan seancon krei de la aktuala labora dosierujo aŭ de la hejma dosierujo. La klavojn ĉi tio ankaŭ bindis por la vidon dividi vertikale kaj horizontale, kun la aktuala dosierujo kiel komenca punkto.

Paneloj

Paneloj estas la subdividoj de fenestroj. Ili similas al kadropaĝo en la kunteksto de retumiloj.

Movado

bind -n C-Left select-pane -t :.-
bind -n C-Right select-pane -t :.+
bind -n C-Up swap-pane -U
bind -n C-Down swap-pane -D

bind 0 select-pane -t 0
bind 1 select-pane -t 1
bind 2 select-pane -t 2
bind 3 select-pane -t 3
bind 4 select-pane -t 4
bind 5 select-pane -t 5
bind 6 select-pane -t 6
bind 7 select-pane -t 7
bind 8 select-pane -t 8
bind 9 select-pane -t 9

La klavojn C-Left kaj C-Right mi bindis por panelojn elekti, malantaŭen kaj antaŭen, respektive. La klavojn C-Up kaj C-Down mi ankaŭ bindis por panelojn interŝanĝi, malantaŭen kaj antaŭen, respektive.

Onin la aliaj klavoj permesas por ŝanĝi al speciaj paneloj.

Kunfandado

bind m command-prompt -p "Kunfandi al:"  "join-pane -t '%%'"
bind M command-prompt -p "Kunfandi de:"  "join-pane -s '%%'"
bind h select-pane -m

La klavojn C-z m kaj C-z M ĉi tio bindis por panelojn kunfandi, al kaj de, specifaj fenestroj, respektive. La klavon C-z h mi ankaŭ bindis por la randojn de la aktuala panelo marki.

Statbreto

Multe da prisondo la statbreto donas, kaj ĝin ni povas tajlori. La mian mi agordis jene:

set -g status-position bottom
set -g status-bg black
set -g status-fg white
set -g window-status-current-bg black
set -g window-status-current-fg blue
set -g window-status-current-attr bold
set -g status-interval 60
set -g status-left ' ★ '
set -g status-right-length 30
set -g status-right-attr bright
set -g status-right '%a %b %0d'

La statbreton ĉi tio montras en la subo de la terminalsimulilo, kaj ĉiujn fenestroj de 1 montras, la daton en la dekstra parto montrante.

Kromprogramoj

Kelke da kromprogramo mi uzas por mian agordon subteni. Ĝi ampleksiĝas de la kromprograma mastrumilo mem al tondeja regado. Jen la resumo.

set -g @plugin 'tmux-plugins/tpm'

la krompragraman mastrumilon mem ŝarĝas.

set -g @plugin 'tmux-plugins/tmux-resurrect'

La klavojn C-z C-s kaj C-z C-r provizas por la seancojn konservi kaj restaŭri, respektive.

set -g @plugin 'tmux-plugins/tmux-continuum'

Je tmux-resurrect ĉi tio komplementas per la seancojn aŭtomate restaŭri en la komenca startigo de tmux.

set -g @plugin 'tmux-plugins/tmux-yank'

Novan klavon y ĉi tio aldonas dum en kopireĝimo—C-z [—por la aktualan zonon kopii al la tondejo.

set -g @continuum-restore 'on'
run '~/.tmux/plugins/tpm/tpm'

La konservitajn seancojn ĉi tio ŝarĝas dum la startigo kaj la kromprograman mastrumilon ŝarĝas.

Por ĉiom da kromprogramoj instali, je C-z I premu.

Zonoj

Per tmux aliron al la tri zonoj mi havas samtempe: la PRIMARY-, CLIPBOARD-, kaj la tmux-zonoj.

La PRIMARY-zono estas la tiu, kiu estas engaĝita kiam ion oni markas per la musmontrilo. La enhavon de ĝi oni povas elĉerpi per la mezklaka musbutono aŭ Shift+Insert.

La CLIPBOARD-zono estas la tiu, kiu estas engaĝita kiam eksplicitan peton por kopiado oni faras, kutime farite per C-c, Dekstre klaki > Kopii, aŭ Redakti > Kopii, per grafikaj apoj kiel retumiloj. La enhavon de ĝi oni povas elĉerpi per C-v, Dekstre klaki > Alglui, aŭ Redakti > Kopii.

La tmux-zono estas la tiu, kiu estas engaĝita kiam la kopian reĝimon oni eniras. Ĉi tio estas farita per je C-z [ premi unue, tiam je C-Space premu por la komencon marki, tiam la movadajn klavojn premi por la areon etendi, kaj fine je M-w premu por la enhavojn kopii. La enhavon de ĝi oni poval elĉerpi per je C-z ] premi.

Per tmux la musmontrilon mi ne plu bezonas uzi por la zonojn mastrumi.

Elprovado

Se ĉi tiujn agordojn oni volas priludi, mian agordon oni povas elŝuti al la sistemo. Sed unue, la ekzistantan agordon ni savkopiu:

$ mv ~/.tmux.conf{,.backup}

Tiam je tmux mortigu:

$ killall tmux

Tiam la agorddosieron ni instalu:

$ curl -SLo ~/.tmux.conf https://raw.githubusercontent.com/ebzzry/dotfiles/master/tmux/.tmux.conf

Fine, je tmux reŝarĝi:

$ tmux

Se tmux plendas, ke iom da kromprogramoj mankas, je C-z I premu:

Finrimarkoj

Tmux estas unu el la iloj, kiun oni devas havi laborante sur la terminalsimulilo kaj komandlinio. Laborfluon kio estas aliokaze malfacila per aliaj kunigiloj, aŭ tre malfacila por fari per kutimaj nemastrumitaj seancoj ĝi ebligas. Por la restantaj difinoj iru ĉi tien.