个人tmux配置

Endless_daydream Lv4

tmux的用户级配置文件为~/.tmux.conf(没有的话就创建一个)

快捷键

前缀键prefix:C-a

1
2
3
4
# prefix: C-a
unbind C-b
set -g prefix C-a
bind C-a send-prefix

窗格(pane)切换:hjkl

1
2
3
4
5
# 绑定hjkl键为面板切换的上下左右键
bind -r k select-pane -U # 绑定k为↑
bind -r j select-pane -D # 绑定j为↓
bind -r h select-pane -L # 绑定h为←
bind -r l select-pane -R # 绑定l为→

-r表示可重复按键,大概500ms之内,重复的hjkl按键都将有效

窗格(pane)大小调整:C-hjkl

1
2
3
4
5
# 绑定Ctrl+hjkl键为面板上下左右调整边缘的快捷指令
bind -r ^k resizep -U 10 # 绑定Ctrl+k为往↑调整面板边缘10个单元格
bind -r ^j resizep -D 10 # 绑定Ctrl+j为往↓调整面板边缘10个单元格
bind -r ^h resizep -L 10 # 绑定Ctrl+h为往←调整面板边缘10个单元格
bind -r ^l resizep -R 10 # 绑定Ctrl+l为往→调整面板边缘10个单元格

以上,resizepresize-pane的别名。

复制模式默认是emacs的移动方式,切换成vi模式:

1
setw -g mode-keys vi

复制模式粘贴到系统剪贴板

需要下载命令行工具xsel或xclip,它们将输入放到系统剪贴板。通常的用法是管道接住其他命令的输出。

1
sudo apt install xsel

tmux重新映射copy mode的复制键为 管道输出到xsel/xclip 即可。

1
2
# copy to system clipboard
bind -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xsel -i --clipboard"

打开新窗格/窗口时保持工作目录在当前位置

1
2
3
bind c new-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind '"' split-window -c "#{pane_current_path}"

ssh远程连接

对于ssh有额外的问题:只复制到了远程的系统剪贴板,没复制到本地。这是另外一个话题,详见 todo

在tmux中修改了配置,要立刻应用到当前窗口中,用:source ~/.tmux.conf

完整个人配置文档

~/.tmux.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 设置支持256color
set -g default-terminal "xterm-256color"
set-option -a terminal-overrides ",*256col*:RGB"

# prefix: C-a
set -g prefix C-a
bind C-a send-prefix
unbind C-b

# 绑定hjkl键为面板切换的上下左右键
bind -r k select-pane -U # 绑定k为↑
bind -r j select-pane -D # 绑定j为↓
bind -r h select-pane -L # 绑定h为←
bind -r l select-pane -R # 绑定l为→

# 绑定Ctrl+hjkl键为面板上下左右调整边缘的快捷指令
bind -r ^k resizep -U 10 # 绑定Ctrl+k为往↑调整面板边缘10个单元格
bind -r ^j resizep -D 10 # 绑定Ctrl+j为往↓调整面板边缘10个单元格
bind -r ^h resizep -L 10 # 绑定Ctrl+h为往←调整面板边缘10个单元格
bind -r ^l resizep -R 10 # 绑定Ctrl+l为往→调整面板边缘10个单元格

# vi mode
setw -g mode-keys vi
# set -g status-keys vi

# copy to system clipboard
bind -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xsel -i --clipboard"

# 打开新窗格/窗口时保持工作目录在当前位置
bind c new-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind '"' split-window -c "#{pane_current_path}"

参考:

Tmux使用手册

  • Title: 个人tmux配置
  • Author: Endless_daydream
  • Created at : 2024-04-06 14:42:45
  • Updated at : 2024-04-06 15:51:03
  • Link: https://endless_daydream.gitee.io/2024/04/06/linux/个人tmux配置/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
个人tmux配置