User Tools

Site Tools


tmux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tmux [2021/03/10 20:24] – [Multiple sessions] hc9tmux [2022/12/05 06:18] (current) – [Resources] hc9
Line 57: Line 57:
 Tmux is configured by a file located at $HOME/.tmux.conf, and a sample configuration file is presented below. Tmux is configured by a file located at $HOME/.tmux.conf, and a sample configuration file is presented below.
  
-<code> +<file config $HOME/.tmux.conf>
-  # makes window's indexes start from 1 +
-  set -g base-index 1+
  
-  resize windows only when a smaller client is using a session +makes window's indexes start from 1 
-  setw -g aggressive-resize on+set -g base-index 1
  
-  disables panel selection using mouse +resize windows only when a smaller client is using a session 
-  set -g mouse-select-pane off+setw -g aggressive-resize on
  
-  # open a man page in a separated split pane +# disables panel selection using mouse 
-  bind m command-prompt -p "man page:" "split-window -h 'exec man %%'"+set -g mouse-select-pane off 
 + 
 +# open a man page in a separated split pane 
 +bind m command-prompt -p "man page:" "split-window -h 'exec man %%'" 
 + 
 +# set default terminal 
 +set -g default-terminal "screen-256color" 
 + 
 +</file>
  
-  # set default terminal 
-  set -g default-terminal "screen-256color" 
-</code> 
 ===== Reset Lost Sessions ===== ===== Reset Lost Sessions =====
  
Line 80: Line 83:
  
 ''$ tmux attach'' ''$ tmux attach''
 +
 +===== Emulating Emacs-like registers =====
 +
 +If you have a need for multiple clipboard-like buffers for storing and retrieving text (akin to registers in Emacs or Vim), Tmux already supports that, although this functionality is not well exposed by default. Below is a sample piece of configuration that makes available 26 registers designated by single lower-case letters //a-z//.
 +
 +<file>
 +
 +# Initialize alphanumerical registers to avoid the problem with 'delete-buffer'
 +run "tmux set-buffer -b a \"$(echo ' ')\""
 +run "tmux set-buffer -b b \"$(echo ' ')\""
 +run "tmux set-buffer -b c \"$(echo ' ')\""
 +run "tmux set-buffer -b d \"$(echo ' ')\""
 +run "tmux set-buffer -b e \"$(echo ' ')\""
 +run "tmux set-buffer -b f \"$(echo ' ')\""
 +run "tmux set-buffer -b g \"$(echo ' ')\""
 +run "tmux set-buffer -b h \"$(echo ' ')\""
 +run "tmux set-buffer -b i \"$(echo ' ')\""
 +run "tmux set-buffer -b j \"$(echo ' ')\""
 +run "tmux set-buffer -b k \"$(echo ' ')\""
 +run "tmux set-buffer -b l \"$(echo ' ')\""
 +run "tmux set-buffer -b m \"$(echo ' ')\""
 +run "tmux set-buffer -b n \"$(echo ' ')\""
 +run "tmux set-buffer -b o \"$(echo ' ')\""
 +run "tmux set-buffer -b p \"$(echo ' ')\""
 +run "tmux set-buffer -b q \"$(echo ' ')\""
 +run "tmux set-buffer -b r \"$(echo ' ')\""
 +run "tmux set-buffer -b s \"$(echo ' ')\""
 +run "tmux set-buffer -b t \"$(echo ' ')\""
 +run "tmux set-buffer -b u \"$(echo ' ')\""
 +run "tmux set-buffer -b v \"$(echo ' ')\""
 +run "tmux set-buffer -b w \"$(echo ' ')\""
 +run "tmux set-buffer -b x \"$(echo ' ')\""
 +run "tmux set-buffer -b y \"$(echo ' ')\""
 +run "tmux set-buffer -b z \"$(echo ' ')\""
 +    
 +</file>
 +
 +<file>
 +
 +# Copy to user-selected register
 +bind -T copy-mode r command-prompt -1 -p '(register)' 'delete-buffer -b %1 ; send -X copy-pipe "tmux set-buffer -n %1"'
 +# Paste from user-selected register
 +bind -T prefix C-] command-prompt -1 -p '(register)' 'paste-buffer -b %1'
 +    
 +</file>
 +
 +The way it works is this: when in //copy-mode// you get an additional key binding //r// which prompts you for a single-letter named register in which to store the marked region. In normal mode you get a prefix command //C-b C-]// which prompts for the name of the register whose contents will be pasted at the cursor. You can also list the contents of all buffers by running //C-b :list-buffers//. Manual initializing of all the buffers seems necessary, because otherwise //delete-buffer// complains about trying to delete a nonexistent buffer when used for the first time for a given letter.
 +
 +===== Troubleshooting Colors =====
 +
 +If colors are not working in your tmux session try running tmux with the -2 flag.
 +
 +''$ tmux -2''
 +
 +To persist 256color support in your terminal you can add the following line to your ~/.bashrc
 +
 +''TERM=screen-256color''
  
 ===== Resources ===== ===== Resources =====
Line 87: Line 147:
   * [[https://wiki.archlinux.org/index.php/Tmux| https://wiki.archlinux.org/index.php/Tmux]]   * [[https://wiki.archlinux.org/index.php/Tmux| https://wiki.archlinux.org/index.php/Tmux]]
   * [[http://robots.thoughtbot.com/post/2641409235/a-tmux-crash-course| http://robots.thoughtbot.com/post/2641409235/a-tmux-crash-course]]   * [[http://robots.thoughtbot.com/post/2641409235/a-tmux-crash-course| http://robots.thoughtbot.com/post/2641409235/a-tmux-crash-course]]
-  * [[http://en.wikipedia.org/wiki/Tmux| http://en.wikipedia.org/wiki/Tmux]]+  * [[wp>Tmux|https://en.wikipedia.org/wiki/Tmux]]
  
 ---- ----
  
-$Id: tmux.html,v 1.6 2014/06/09 06:08:42 ike Exp $ [[http://sdf.org/?tutorials/tmux|Tmux: multiple terminals; terminal multiplexer]] - legacy link+$Id: tmux.html,v 1.6 2014/06/09 06:08:42 ike Exp $ [[http://sdf.org/?tutorials/tmux|Tmux: terminal multiplexer; multiple terminals]] - traditional link (using [[wp>Revision_Control_System|RCS]])
  
tmux.1615407899.txt.gz · Last modified: 2021/03/10 20:24 by hc9