指点成金-最美分享吧

登录

2019-05-23 tmux 分屏指令(通过命令行分屏)

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了2019-05-23 tmux 分屏指令(通过命令行分屏)相关的知识,希望对你有一定的参考价值。

参考技术A Tmux是很强大的一个终端工具。

在接触它的时候项目需要实现自动分屏,但它的文档和使用教程都只介绍了如何用快捷键分屏操作。后面试过模拟键盘进行操作来自动分屏,但模拟的键盘很容易出现bug,所以想要实现精准的控制自动分出想要的布局,只能通过指令来实现。

这里只介绍tmux的分屏(pane)有关的指令:

左右分屏: tmux split-pane -h  对应快捷键: Ctrl+b    %

上下分屏:tmux spilt-pane -v     对应快捷键: Ctrl+b    "

查看各个分屏(pane)的编号: 快捷键: Ctrl + b    q

选择指定 pane :确定编号后(这里假设要选择0号pane): tmux  select-pane -t 编号

关闭分屏: 快捷键 Ctrl + b    x

设置pane的尺寸:resize-pane -t 编号 -x width -y width   快捷键:Ctrl+b  方向键

下面为网上能搜索到的一些基本指令:

vi emacs 功能

^              M-m          反缩进

Escape        C-g          清除选定内容

Enter          M-w          复制选定内容

j              Down        光标下移

h              Left        光标左移

l              Right        光标右移

L                          光标移到尾行

M              M-r          光标移到中间行

H              M-R          光标移到首行

k              Up          光标上移

d              C-u          删除整行

D              C-k          删除到行末

$              C-e          移到行尾

:              g            前往指定行

C-d            M-Down      向下滚动半屏

C-u            M-Up        向上滚动半屏

C-f            Page down    下一页

w              M-f          下一个词

p              C-y          粘贴

C-b            Page up      上一页

b              M-b          上一个词

q              Escape      退出

C-Down or J    C-Down      向下翻

C-Up or K      C-Up        向下翻

n              n            继续搜索

?              C-r          向前搜索

/              C-s          向后搜索

0              C-a          移到行首

Space          C-Space      开始选中

 C-t          字符调序

启动新会话:

tmux [new -s 会话名 -n 窗口名]

恢复会话:

tmux at [-t 会话名]

列出所有会话:

tmux ls

关闭会话:

tmux kill-session -t 会话名

关闭所有会话:

tmux ls | grep : | cut -d. -f1 | awk "print substr($1, 0,

length($1)-1)" | xargs kill

调整窗口排序

swap-window -s 3 -t 1  交换 3 号和 1 号窗口

swap-window -t 1      交换当前和 1 号窗口

move-window -t 1      移动当前窗口到 1 号

终端分屏tmux

分屏效果

? tmux并不是一个类似bash的终端,而是管理在管理会话,使用tmux后,其他配置还是和bash或zsh一样。

效果如图:

安装tmux

在centOS中,安装tmux只需要一句话

yum install tmux

等待片刻即可安装完成,安装完后,使用的依然是默认的bash或自己配置的zsh。执行下一步的打开窗口后,才可以进行分屏,多窗口等操作。

打开一个新的会话,使用命令

tmux

即可打开一个新的会话,在打开的tmux创建的窗口的时候,才可以分屏,多个窗口等操作。

在博客园看到这样一张图片,对tmux解释的很详细

用tmux可以新建多个窗口,每次只能显示一个窗口,新建的其他窗口进入后台,看不见,但却存在。

一个窗口中可以分割出多个窗格,多个窗格显示在同一个窗口,这就是常见的分屏。

tmux的基本命令

在bash或zsh中输入tmux打开新的会话。可以配置在bash后zsh的配置文件中,启动bash自动运行tmux命令

默认前缀ctrl+b(命令中替换prefix)

tmux中,使用分割窗格等需要使用快捷键。使用每个快捷键前,会先键入前缀, 使得tmux开始监听后面的命令。没有键入前缀,直接使用命令是不会触发tmux。

目前经常使用:

窗格命令作用
prefix %水平方向创建窗格
prefix "垂直方向创建窗格
prefix Up,Down,Left,Right根据箭头方向切换窗格
prefix }{与下上一个窗格交换位置
prefix x关闭当前窗格
prefix space(空格键)重新排列当前窗口下的所有窗格
窗口命令作用
prefix c创建一个新窗口
prefix w列出所有窗口,可进行切换
prefix np进入下上一个窗口
prefix 0~9选择编号0~9对应的窗口
prefix &关闭当前窗口

窗格管理**

prefix %  水平方向创建窗格

prefix "  垂直方向创建窗格

prefix Up|Down|Left|Right  根据箭头方向切换窗格

prefix q  显示窗格编号

prefix o  顺时针切换窗格

prefix }  与下一个窗格交换位置

prefix {  与上一个窗格交换位置

prefix x  关闭当前窗格

prefix space(空格键)  重新排列当前窗口下的所有窗格

prefix !  将当前窗格置于新窗口

prefix Ctrl+o  逆时针旋转当前窗口的窗格

prefix t  在当前窗格显示时间

prefix z  放大当前窗格(再次按下将还原)

prefix i  显示当前窗格信息

会话管理 

*常用命令*

tmux new  创建默认名称的会话(在tmux命令模式使用new命令可实现同样的功能,其他命令同理,后文不再列出tmux终端命令)

tmux new -s mysession  创建名为mysession的会话

tmux ls  显示会话列表

tmux a  连接上一个会话

tmux a -t mysession  连接指定会话

tmux rename -t s1 s2  重命名会话s1为s2

tmux kill-session  关闭上次打开的会话

tmux kill-session -t s1  关闭会话s1

tmux kill-session -a -t s1  关闭除s1外的所有会话

tmux kill-server  关闭所有会话

常用快捷键

prefix s  列出会话,可进行切换

prefix $  重命名会话

prefix d  分离当前会话

prefix D  分离指定会话

  

窗口管理

prefix c  创建一个新窗口

prefix ,  重命名当前窗口

prefix w  列出所有窗口,可进行切换

prefix n  进入下一个窗口

prefix p  进入上一个窗口

prefix l  进入之前操作的窗口

prefix 0~9  选择编号0~9对应的窗口

prefix .  修改当前窗口索引编号

prefix "  切换至指定编号(可大于9)的窗口

prefix f  根据显示的内容搜索窗格

prefix &  关闭当前窗口

 

其他命令

tmux list-key  列出所有绑定的键,等同于prefix ?

tmux list-command  列出所有命令

以上参考自: https://www.cnblogs.com/liuguanglin/p/9290345.html


zsh的安装和配置可以参考 https://www.cnblogs.com/to-red/p/11580160.html

centOS安装zsh时,使用命令

yum install zsh

Ubuntu安装zsh时,使用命令

apt-get install zsh

在zsh的配置文件~/.zshrc或bash的~/.bashrc配置文件的最后一行加上启动tmux的命令(使用的是哪个终端,编辑哪个终端的配置文件,查看自己使用的终端的命令echo $SHELL)

如我的最后几行配置文件

# Example aliases# alias zshconfig="mate ~/.zshrc"# alias ohmyzsh="mate ~/.oh-my-zsh"# myinit pluginssource ~/.oh-my-zsh/plugins/incr/incr*.zshtmuxclear

以上是关于2019-05-23 tmux 分屏指令(通过命令行分屏)的主要内容,如果未能解决你的问题,请参考以下文章