iterm2上集成tmux,方便是方便,难用也是真难用,需要一种更快乐的方式来使用Tmux。

效果预览: 2020-3-26-4-21-45.png

2020-3-26-4-19-38.png

文档: https://github.com/gpakosz/.tmux

实现每次打开iterm2自启动tmux

打开item2并配置 tmux a -t demo || tmux new -s demo ,实现每次打开iterm2时尝试连接名为demo的session,如果没有则新建后连接。

2020-3-26-3-41-29.png

demo作为入口session,通过 <prefix> C-c 创建新session, <prefix> $ 为session重命名,也可以修改配置文件 tmux.conf.local来实现每次 new session 时为 session 命名

设置mouse mode下每次滚轮的行数

设置为1行,默认5行不太平滑


# 更新配置
echo " \
\nbind -Tcopy-mode WheelUpPane send -N1 -X scroll-up \
\nbind -Tcopy-mode WheelDownPane send -N1 -X scroll-down \
" >> ~/.tmux.conf.local

# 重载配置
<prefix> r

颜色问题

echo " \
\nexport TERM="xterm-256color" \
" >> ~/.zshrc

快捷键

# 显示快捷键帮助文档
<prefix> ?

# Mouse mode allows you to set the active window, set the active pane, resize panes and automatically switches to copy-mode to select text
<prefix> m

# 查看粘贴缓冲区
<prefix> b 
# 大P,选择要粘贴的内容
<prefix> P 

# 列出提示信息缓存
<prefix> ~

命令模式

# 进入命令行模式;此时可输入支持的命令,例如kill-server所有tmux会话
<prefix> :  

# 新建一个名称为demo的会话
tmux new -s demo 
# 默认进入第一个会话,tmux attach-session -t session-name
tmux a 
# 查看所有会话,提倡使用简写形式
tmux ls 
# 进入到名称为demo的会话, tmux attach-session -t session-name
tmux a -t demo 
# 关闭demo会话
tmux kill-session -t demo 
# 关闭服务器,所有的会话都将关闭
tmux kill-server 
# 关闭pane
tmux kill-pane
# 关闭windows 
tmux kill-window
# 列出所有可以的快捷键和其运行的 tmux 命令, 
tmux list-keys
# 列出所有的 tmux 命令及其参数
tmux list-commands
# 流出所有的 session, window, pane, 运行的进程号,等。
tmux info
# 重新加载当前的 tmux 配置(基于一个默认的 tmux 配置)
tmux source-file ~/.tmux.conf

session 会话

# 显示会话列表用于选择并切换, <prefix> w 更方便, x 关闭某个session或window
<prefix> s	
# 断开当前会话,会话在后台运行. 快捷键组合
<prefix> d 
# 选择要断开的会话
<prefix> D 
# 挂起当前会话
<prefix> C-z	
# 强制重载当前会话
<prefix> r	
# 重命名session
<prefix> $

window 窗口

# 新建窗口
<prefix> c
# 关闭当前的窗口
<prefix> &

# 切换窗口
# brings you to the last active window,代替默认的 <prefix> l
<prefix> Tab 
# <prefix> C-h and <prefix> C-l let you navigate windows (default <prefix> n and <prefix> p are unbound)
<prefix> C-h
<prefix> C-l
# 切换到指定窗口
<prefix> [0-9]
# 通过窗口列表切换窗口
<prefix> w
# 前后窗口间互相切换
# <prefix> l
# 切换到上一个window
# <prefix> p
# 切换到下一个window
# <prefix> n

# 重命名当前窗口
<prefix> ,
# 修改当前窗口编号(用于排序)
<prefix> .
# 快速定位到窗口(输入关键字匹配窗口名称)
<prefix> f

pane 面板

# 将面板一分为二,下侧新建面板
<prefix> 双引号
# 将面板一分为二,右侧新建面板
<prefix> %

# 关闭当前面板
<prefix> x
# 最大化当前面板,再重复一次按键后恢复正常(v1.8版本新增)
<prefix> maximizes the current pane to a new window
<prefix> z
# 将当前面板移动到新的窗口打开(原窗口中存在两个及以上面板有效)
<prefix> !

# 切换到上一个面板
<prefix> ;
# 切换到下一个面板
<prefix> o
# 向前置换面板
<prefix> {
# 向后置换面板
<prefix> }
# 移动光标切换面板
<prefix> 方向键
# 显示面板编号,在编号消失前输入对应的数字可切换到相应的面板 
<prefix> q

# 顺时针旋转当前窗口中的所有面板
<prefix> Ctrl+o
# 逆时针旋转当前窗口中的所有面板
<prefix> Ctrl+o

# 可以在默认面板布局中切换,试试就知道了 
<prefix> 空格键

# 以5个单元格为单位调整当前面板边缘 , <prefix> m 开启后可直接鼠标拖动
<prefix> Alt+方向键	
# 以1个单元格为单位调整当前面板边缘(Mac下被系统快捷键覆盖)
<prefix> Ctrl+方向键	

# 显示时钟
<prefix> t