Difference between revisions of "Tmux"

From HackerNet
Jump to: navigation, search
 
(20 intermediate revisions by the same user not shown)
Line 2: Line 2:
  
 
= Installation =
 
= Installation =
Skriv bara,
+
Tmux är enkelt att installera och finns redan färdig packat i dom flesta distars repos.
 +
 
 +
'''Debian baserade'''
 
  apt-get install tmux
 
  apt-get install tmux
 +
'''RHEL baserade'''
 +
yum install epel-release
 +
yum install tmux
  
 
= Kommandon =
 
= Kommandon =
Line 18: Line 23:
 
Attach till en session och detach andra som är anslutna till samma session.
 
Attach till en session och detach andra som är anslutna till samma session.
 
  tmux attach -d
 
  tmux attach -d
 +
 +
Attach till en session om man har flera igång.(Byt # mot siffra)
 +
tmux a -t #
 +
 +
Stäng en session(Byt # mot en siffra)
 +
tmux kill-session -t #
  
 
= Keybinds =
 
= Keybinds =
Default prefix för tmux är <code>CTRL + B</code>
+
Default prefix för tmux är {{key press|Ctrl|b}}.
 +
 
 +
{{ombox
 +
|nocat=true
 +
| type  = notice
 +
| text  = Tänk på att tmux är case-sensitive.
 +
}}
 +
 
 +
{{key press|Ctrl|b|c}} - Skapa ett nytt fönster.
 +
 
 +
{{key press|Ctrl|b|n/p}} - Gå till nästa eller föregående fönster.
 +
 
 +
{{key press|Ctrl|b|0-9}} - Byt fönster.
 +
 
 +
{{key press|Ctrl|b|w}} - Meny med alla fönster.
 +
 
 +
{{key press|Ctrl|b|&}} - Stäng ett fönster.
 +
 
 +
{{key press|Ctrl|b|,}} - Byt namn på ett fönster.
 +
 
 +
 
 +
 
 +
{{key press|Ctrl|b|shift|2}} - Splitta fönster horisontellt.
 +
 
 +
{{key press|Ctrl|b|shift|5}} - Splitta fönster vertikalt.
 +
 
 +
{{key press|Ctrl|b|Left|Down|Right|Up}} - För att hoppa imellan paneler.
 +
 
 +
{{key press|Ctrl|b|x}} - Stäng den aktiva panelen.
 +
 
 +
{{key press|Ctrl|b|shift|1}} - Skapa ett nytt fönster med den aktiva panelen.
 +
 
 +
{{key press|Ctrl|b|z}} - Zooma in ett fönster.
 +
 
 +
 
 +
{{key press|Ctrl|b|alt|8}} - Copy läge.
 +
* {{key press|Ctrl|space}} - För att börja markera text i copy läget.
 +
* {{key press|alt|w}} För att kopiera den markerade texten.
 +
 
 +
{{key press|Ctrl|b|alt|9}} - Klistra in den kopierade texten.
 +
 
  
<code>c</code> - Skapa ett nytt fönster.
+
{{key press|Ctrl|b|d}} - För att deattacha en session.
  
<code>n/p</code> - Gå till nästa eller föregående fönster.
+
{{key press|Ctrl|b|page up}} - För att scrolla upp och ner.
  
<code>0-9</code> - Byt fönster.
+
= Tmux Plugin Manager =
 +
Kräver version 1.9 eller högre. Plugins som gör ditt Tmux fönster lite trevligare.
  
<code>w</code> - Meny med alla fönster.
+
== Installera ==
 +
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
  
<code>&</code> - Stäng ett fönster.
+
Skapa filen <code>.tmux.conf</code> i din home folder.
 +
# List of plugins
 +
set -g @plugin 'tmux-plugins/tpm'
 +
set -g @plugin 'tmux-plugins/tmux-sensible'
 +
 +
# Other examples:
 +
# set -g @plugin 'github_username/plugin_name'
 +
# set -g @plugin 'git@github.com/user/plugin'
 +
# set -g @plugin 'git@bitbucket.com/user/plugin'
  
<code>,</code> - Byt namn på ett fönster.
+
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
 +
run '~/.tmux/plugins/tpm/tpm'
  
 +
Ladda sedan TPM genom att starta om din tmux session eller ladda om confen med.
 +
tmux source ~/.tmux.conf
  
 +
== Lägga till plugins ==
 +
Plugins finns på [https://github.com/tmux-plugins TPM's Github]
  
<code>"</code> - Splitta fönster horisontellt.
+
Lägg sedan till pluginet i <code>.tmux.conf</code> med kommandot <code>set -g @plugin '...'</code>
  
<code>%</code> - Splitta fönster vertikalt.
+
Öppna sedan Tmux och tryck för att installera.
 +
prefix + I
  
<code>Left,down,right,up</code> - För att hoppa imellan paneler.
+
Ta bort plugin genom att ta bort raden kommentera ut den i <code>.tmux.conf</code> och tryck.
 +
prefix + alt + u
  
<code>x</code> - Stäng den aktiva panelen.
+
==Bra plugins==
 +
[https://github.com/tmux-plugins/tmux-sensible Sensible] - Ett gäng inställningar som man bör ha.
  
<code>!</code> - Skapa ett nytt fönster med en panel.
+
[https://github.com/tmux-plugins/tmux-resurrect Resurrect] - Spara din nuvarande Tmux session.
  
<code>z</code> - Zooma in ett fönster.
+
[https://github.com/tmux-plugins/tmux-continuum Continuum] - Autosparar din nuvarande Tmux session.(Kräver resurrect)
  
 +
[https://github.com/tmux-plugins/tmux-sidebar Sidebar] - Öppnar en tree liknande sidebar.
  
<code>[</code> - Copy läge.
+
[https://github.com/tmux-plugins/vim-tmux Vim-tmux] - Fixar visa saker i vim som inte funkar så bra annars.
* <code>CTRL-SPACE</code> För att börja markera text.
 
* <code>ALT-w</code> För att kopiera markerad text.
 
  
<code>]</code> - Paste kopierad text.
+
[https://github.com/tmux-plugins/tmux-logging tmux-logging] - Toggla av/på för att logga en pane till textfil, "screencapture" på en pane, eller spara all historik i en pane till textfil.
  
 +
=Auto attach=
 +
Lägg detta i din <code>.bashrc</code> för att automatiskt starta tmux och attacha till en session vid inloggning.
 +
<syntaxhighlight lang=bash>
 +
if  -z "$TMUX" ; then
 +
  tmux has-session &> /dev/null
 +
  if [ $? -eq 1 ]; then
 +
    exec tmux new
 +
    exit
 +
  else
 +
    exec tmux attach
 +
    exit
 +
  fi
 +
fi
 +
</syntaxhighlight>
  
<code>d</code> - För att deattacha en session.
+
=Tips'n'trix=
<code>page up/down</code> - För att scrolla upp och ner.
+
====För att skriva till alla panes samtidigt.====
 +
:setw synchronize-panes
 +
====Clear-history====
 +
:clear-history
 +
Eller binda det till {{key press|Ctrl|K}}
 +
bind -n C-k clear-history
  
 +
====Problem att piltangenterna inte fungerar?====
 +
Upptäckte problemet när jag var ansluten till senare versioner av [[Juniper_JunOS|JunOS]]. Att jag var tvungen att skriva om alla kommandon igen för att jag inte kunde trycka fram det senast körda kommandona. Efter att ha lagt till följande i min '''.tmux.conf''' fil så fungera det igen.
 +
set -g default-terminal "xterm-256color"
  
 +
====Byt pane snabbt utan prefix====
 +
Lägg till följande i din tmux.conf för att kunna byta pane med {{key press|ALT|Left|Down|Right|Up}}.
 +
bind -n M-Left select-pane -L
 +
bind -n M-Right select-pane -R
 +
bind -n M-Up select-pane -U
 +
bind -n M-Down select-pane -D
 +
====Byt window utan prefix====
 +
Lägg till följande för att byta window med {{key press|Shift|Left|Right}}
 +
bind -n S-Left  previous-window
 +
bind -n S-Right next-window
  
 
[[Category:Tools]]
 
[[Category:Tools]]

Latest revision as of 16:29, 25 September 2019

Tmux är en terminal multiplexer precis som screen. En fördel med att använda terminal multiplexers är att du inte tappar dina shell fönster om du skulle tappa anslutningen eller vill fortsätta jobbet på en annan dator.

Installation

Tmux är enkelt att installera och finns redan färdig packat i dom flesta distars repos.

Debian baserade

apt-get install tmux

RHEL baserade

yum install epel-release
yum install tmux

Kommandon

Starta tmux,

tmux

Lista tmux sessioner,

tmux ls

Attach till en session

tmux attach

Attach till en session och detach andra som är anslutna till samma session.

tmux attach -d

Attach till en session om man har flera igång.(Byt # mot siffra)

tmux a -t #

Stäng en session(Byt # mot en siffra)

tmux kill-session -t #

Keybinds

Default prefix för tmux är Ctrl+b.

Ctrl+b+c - Skapa ett nytt fönster.

Ctrl+b+n/p - Gå till nästa eller föregående fönster.

Ctrl+b+0-9 - Byt fönster.

Ctrl+b+w - Meny med alla fönster.

Ctrl+b+& - Stäng ett fönster.

Ctrl+b+, - Byt namn på ett fönster.


Ctrl+b+⇧ Shift+2 - Splitta fönster horisontellt.

Ctrl+b+⇧ Shift+5 - Splitta fönster vertikalt.

Ctrl+b++++ - För att hoppa imellan paneler.

Ctrl+b+x - Stäng den aktiva panelen.

Ctrl+b+⇧ Shift+1 - Skapa ett nytt fönster med den aktiva panelen.

Ctrl+b+z - Zooma in ett fönster.


Ctrl+b+alt+8 - Copy läge.

  • Ctrl+space - För att börja markera text i copy läget.
  • alt+w För att kopiera den markerade texten.

Ctrl+b+alt+9 - Klistra in den kopierade texten.


Ctrl+b+d - För att deattacha en session.

Ctrl+b+page up - För att scrolla upp och ner.

Tmux Plugin Manager

Kräver version 1.9 eller högre. Plugins som gör ditt Tmux fönster lite trevligare.

Installera

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

Skapa filen .tmux.conf i din home folder.

# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'

# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin 'git@github.com/user/plugin'
# set -g @plugin 'git@bitbucket.com/user/plugin'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'

Ladda sedan TPM genom att starta om din tmux session eller ladda om confen med.

tmux source ~/.tmux.conf

Lägga till plugins

Plugins finns på TPM's Github

Lägg sedan till pluginet i .tmux.conf med kommandot set -g @plugin '...'

Öppna sedan Tmux och tryck för att installera.

prefix + I

Ta bort plugin genom att ta bort raden kommentera ut den i .tmux.conf och tryck.

prefix + alt + u

Bra plugins

Sensible - Ett gäng inställningar som man bör ha.

Resurrect - Spara din nuvarande Tmux session.

Continuum - Autosparar din nuvarande Tmux session.(Kräver resurrect)

Sidebar - Öppnar en tree liknande sidebar.

Vim-tmux - Fixar visa saker i vim som inte funkar så bra annars.

tmux-logging - Toggla av/på för att logga en pane till textfil, "screencapture" på en pane, eller spara all historik i en pane till textfil.

Auto attach

Lägg detta i din .bashrc för att automatiskt starta tmux och attacha till en session vid inloggning.

if  -z "$TMUX" ; then
   tmux has-session &> /dev/null
   if [ $? -eq 1 ]; then
     exec tmux new
     exit
   else
     exec tmux attach
     exit
   fi
fi

Tips'n'trix

För att skriva till alla panes samtidigt.

:setw synchronize-panes

Clear-history

:clear-history

Eller binda det till Ctrl+K

bind -n C-k clear-history

Problem att piltangenterna inte fungerar?

Upptäckte problemet när jag var ansluten till senare versioner av JunOS. Att jag var tvungen att skriva om alla kommandon igen för att jag inte kunde trycka fram det senast körda kommandona. Efter att ha lagt till följande i min .tmux.conf fil så fungera det igen.

set -g default-terminal "xterm-256color"

Byt pane snabbt utan prefix

Lägg till följande i din tmux.conf för att kunna byta pane med ALT++++.

bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

Byt window utan prefix

Lägg till följande för att byta window med ⇧ Shift++

bind -n S-Left  previous-window
bind -n S-Right next-window