许久之前就听说过tmux
,但是一直没上手,直到最近需要一直在linux下完成一些任务,我才切实感受到了tmux
的优点:任意分屏、保存工作
就单单这两点,就足够实用了。分屏,曾今还十分痴迷i3wm
和dwm
这样的窗口管理工具,尤其是dwm
的操作逻辑,大大提升linux
工作效率。其他详情可以查看阮一峰大佬的文章非常的通俗易懂且详细
效果
安装
brew install tmux #mac
sudo apt install tmux #Debian/Ubuntu
sudo yum install tmux #CentOS
美化
cd
git clone https://github.com/gpakosz/.tmux.git
ln -s -f .tmux/.tmux.conf
cp .tmux/.tmux.conf.local .
#开启鼠标
set-option -g mouse on
关于字体
若实现如下效果:
最好使用nerd fonts
这里推荐一款我一直在使用的nerd font
同时修改~/.tmux.conf.local
153-156行,删除前面的#
tmux_conf_theme_left_separator_main='\uE0B0' # /!\ you don't need to install Powerline
tmux_conf_theme_left_separator_sub='\uE0B1' # you only need fonts patched with
tmux_conf_theme_right_separator_main='\uE0B2' # Powerline symbols or the standalone
tmux_conf_theme_right_separator_sub='\uE0B3' # PowerlineSymbols.otf font, see README.md
tmux采用C/S模型构建,输入tmux命令就相当于开启了一个服务器,此时默认将新建一个会话,然后会话中默认新建一个窗口,窗口中默认新建一个面板。会话、窗口、面板之间的联系如下:
一个tmux session
(会话)可以包含多个window
(窗口),窗口默认充满会话界面,因此这些窗口中可以运行相关性不大的任务。
一个window
又可以包含多个pane
(面板),窗口下的面板,都处于同一界面下,这些面板适合运行相关性高的任务,以便同时观察到它们的运行情况。
#新建会话
tmux # 新建一个无名称的会话
tmux new -s demo # 新建一个名称为demo的会话
#断开当前会话
tmux detach # 断开当前会话,会话在后台运行
#进入之前的会话
tmux a # 默认进入第一个会话
tmux a -t demo # 进入到名称为demo的会话
#关闭会话
tmux kill-session -t demo # 关闭demo会话
tmux kill-server # 关闭服务器,所有的会话都将关闭
#查看所有会话
tmux list-session # 查看所有会话
tmux ls # 查看所有会话,提倡使用简写形式
切换会话也可以使用ctrl b
+ w
/s
查看会话列表,按上下键(⬆︎⬇︎)或者鼠标滚轮,可选中目标会话,按左右键(⬅➡)可收起或展开会话的窗口,选中目标会话或窗口后,按回车键即可完成切换。
常用指令
系统指令
窗口(window)指令
面板(pane)指令
tmux new -s "name" #创建session
tmux attach -t "name" #重新连接session
tmux switch -t "name" #切换会话
tmux kill-session -t "name" #杀死会话
ctrl b % #横向分屏
ctrl b " #纵向分屏
ctrl b o #选择窗格
ctrl d #关闭
ctrl b d #隐藏所有session
ctrl b s/w #选择session
ctrl b m #打开/关闭鼠标控制
前缀 | 指令 | 描述 |
---|---|---|
Ctrl+b | ? | 显示快捷键帮助文档 |
Ctrl+b | d | 断开当前会话 |
Ctrl+b | D | 选择要断开的会话 |
Ctrl+b | Ctrl+z | 挂起当前会话 |
Ctrl+b | r | 强制重载当前会话 |
Ctrl+b | s | 显示会话列表用于选择并切换 |
Ctrl+b | : | 进入命令行模式,此时可直接输入ls等命令 |
Ctrl+b | [ | 进入复制模式,按q退出 |
Ctrl+b | ] | 粘贴复制模式中复制的文本 |
Ctrl+b | ~ | 列出提示信息缓存 |
前缀 | 指令 | 描述 |
---|---|---|
Ctrl+b | c | 新建窗口 |
Ctrl+b | & | 关闭当前窗口(关闭前需输入y or n确认) |
Ctrl+b | 0~9 | 切换到指定窗口 |
Ctrl+b | p | 切换到上一窗口 |
Ctrl+b | n | 切换到下一窗口 |
Ctrl+b | w | 打开窗口列表,用于且切换窗口 |
Ctrl+b | , | 重命名当前窗口 |
Ctrl+b | . | 修改当前窗口编号(适用于窗口重新排序) |
Ctrl+b | f | 快速定位到窗口(输入关键字匹配窗口名称 |
前缀 | 指令 | 描述 |
---|---|---|
Ctrl+b | " | 当前面板上下一分为二,下侧新建面板 |
Ctrl+b | % | 当前面板左右一分为二,右侧新建面板 |
Ctrl+b | x | 关闭当前面板(关闭前需输入y or n确认) |
Ctrl+b | z | 最大化当前面板,再重复一次按键后恢复正常(v1.8版本新增) |
Ctrl+b | ! | 将当前面板移动到新的窗口打开(原窗口中存在两个及以上面板有效) |
Ctrl+b | ; | 切换到最后一次使用的面板 |
Ctrl+b | q | 显示面板编号,在编号消失前输入对应的数字可切换到相应的面板 |
Ctrl+b | { | 向前置换当前面板 |
Ctrl+b | } | 向后置换当前面板 |
Ctrl+b | Ctrl+o | 顺时针旋转当前窗口中的所有面板 |
Ctrl+b | 方向 | 键 移动光标切换面板 |
Ctrl+b | o | 选择下一面板 |
Ctrl+b | 空格 | 键 在自带的面板布局中循环切换 |
Ctrl+b | Alt+方向键 | 以5个单元格为单位调整当前面板边缘 |
Ctrl+b | Ctrl+方向键 | 以1个单元格为单位调整当前面板边缘(Mac下被系统快捷键覆盖) |
Ctrl+b | t | 显示时钟 |
本文作者:ZGGSONG
本文链接:https://cloud.tencent.com/developer/article/2100725
版权声明:本站所有未注明转载的文章均为原创,并采用CC BY-NV-SA 4.0授权协议,转载请注明来源