Tmux 学习摘要6--工作流

高效使用窗口和窗格

将窗格转变成窗口

将当前窗格升级为一个独立的窗口,使用快捷键 PREFIX !,此后,当前会话中会多出一个窗口。

将窗口转变成一个窗格

在命令模式下使用 join-pane 命令,该命令的格式为:

join-pane -s [souce-window-no] -t [target-window-no]

-s-t 两个参数都可以忽略,表示为当前的窗口或窗格。

最大化窗格与还原

将当前窗格放大,放在一个独立的窗口中显示,查看完之后再还原。

实现此功能,先将当前的窗格通过 break-pane 命令分离出来,再将它放到一个临时的窗口中显示。将该操作绑定到方向键上:

unbind Up
bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp

它使用 swap-pane 命令实现窗格的互换。 同理,要将窗口从当前的临时窗口还原到的原来窗口,还是使用 swap-pane 命令,并绑定到方向键:

unbind Down
bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp

由于它是使用 last-window 来查找原来的窗口,因此有一定的缺陷,我们在放大查看后,不可切换到其它窗口,只能立即还原回来。

在创建窗口和窗格时启动命令

可以指定 tmux 在创建会话中的第一个窗口时启动什么命令,命令写在创建会话的最后,如:

$ tmux new-session -s servers -d "ssh [email protected]"

也可以在创建窗格时指定启动什么命令,如:

$ tmux split-window -v "ssh [email protected]"

但是这两种方式指定的自动启动命令,当命令结果或退出后,其关联的窗口或窗格也会自动关闭。

会话管理

在会话间移动

一台机器上的所有会话都由同一个 tmux 服务器管理。而每个开启会话的终端只是一个 tmux 客户端。我们使用 switch-client 命令在各会话间进行切换。或者使用快捷键 PREFIX (PREFIX ) 在各会话间进行切换关联。也可以用 PREFIX s 列出所有的会话,供我们选择后切换。

创建或者关联到一个现有会话

可以使用 has-session 命令进行判断,只有当会话不存在时才创建会话:

if ! tmux has-session -t remote; then
    exec tmux new-session -s development -d
    # other setup commands before attaching ...
fi
exec tmux attach -t development

在会话间移动窗口

可以将一个会话中的窗口移到到另一个会话中。使用 move-window 命令,该命令绑定到快捷键 PREFIX .,可以按下该快捷键,选择要移动的窗口,然后输入目标会话名。例如:

先创建两个会话:

$ tmux new -s editor -d vim
$ tmux new -s processes -d top

关联到 processes 会话,在其中按下 PREFIX . ,然后在命令行中输入 editor,此时会将 processes 会话中的唯一窗口移到 editor 会话中,这些意味着 processes 会话将会关闭。移动窗口对应的命令如下:

$ tmux move-window -s processes:1 -t editor

tmux 与操作系统

使 tmux 与操作系统紧密集成。

使用不同的 Shell

默认使用的是 bash, 如果要改成 zsh,可以在 .tmux.conf 中配置:

set -g default-command /bin/zsh
set -g default-shell /bin/zsh

启动终端时自动运行 tmux

可以在 Linux 上的 .bashrc 或者 OS X 上的 .bash_profile 上进行配置,并将会话设置为用户名:

if [[ "$TERM" != "screen-256color" ]]
then
    tmux attach-session -t "$USER" || tmux new-session -s "$USER"
    exit
fi

将程序的输出记录到日志文件

使用 pipe-pane 命令将窗格的输出保存到一个文件中,在命令模式下开启该功能:

pipe-pane -o "mylog.txt"

当使用相同的参数重新执行时,输出保存到日志的功能会被关闭,即该功能像一个开关。

可以将它绑定到一个快捷键:

bind P pipe-pane -o "cat >>~/#W.log" \; display "Toggled logging to ~/#W.log"

参考资源:

tmux: Productive Mouse-Free Development

原文地址:https://www.cnblogs.com/haiiiiiyun/p/12565498.html

时间: 2024-10-09 05:42:00

Tmux 学习摘要6--工作流的相关文章

Tmux 学习摘要7--补遗

PREFIX ?: 列出所有的快捷键,它对应的命令行命令为 :list-keys. :list-commands 列出所有的 tmux 命令. :info 命令显示有关当前会话的信息:w. 将命令前缀改为 CTRL-SPACE 更加容易使用,但是输入法切换可能也会用这两个键,因此要进行修改设置. unbind C-b set -g prefix C-Space 方便切换到上一个窗口. bind-key L last-window :resize-pane -Z 命令将当前窗格进行最大化,当再次运

Tmux 学习摘要5--结对编程

使用 tmux 进行结对编程的两种方式: 创建一个新帐户.在该新用户下创建 tmux 开发环境,其他组员和你共享这个新帐户,并在其下工作. 使用 tmux 的 sockets,使得其他人能连接到你的 tmux 会话. 这两种方式本质上都有安全隐患:别人会看到你屏幕上的内容.因此,较好的方法是在 VPS 或虚拟机(VirtualBox + Vagrant)上搭建开发环境用于结对编程共享. 共享帐户下的结对编程 这是一种最简单的方法.先在一台主机上开启 SSH 访问,然后在上面安装和配置 tmux,

Tmux 学习摘要1--使用默认配置进行基本操作

tmux 是一个运行于 OS X 和 Unix 上的终端分屏软件 terminal multiplexer. 快捷键的表示及按键规则 CTRL-b: 同时按下 CTRL 键和 b 键 CTRL-R: 同时按下 CTRL.SHIFT 和 r 键 CTRL-b d: 同时按下 CTRL 键和 b 键,再松开,然后再迅速按下 d 键 安装 在 OS X 上: $ brew install tmux 在 Debian 和 Ubuntu 上: $ sudo apt-get install tmux 确定是

Tmux 学习摘要2--配置

配置文件 系统范围的配置文件是 /etc/tmux.conf,而针对个人的配置文件在 ~/.tmux.conf. 通过配置文件,可以定义新的快捷键,定义窗口.窗格布局等. 绑定 CAPS LOCK 键到 CTRL 键 在 OS X 上:打开 Keyboard preference panel->System Preference,按下 Modifier 键,然后将 CAPS LOCK 的动作改为 Control. 在 Linux,需对键盘配置文件进行修改: sudo vi /etc/defaul

a byte of vim -- 学习摘要

说在前面的话 -- a byte of vim 是我见过的最介绍vim 最好的书,想了解强大的vim的人,或者是已经在使用vim而打算进一步了解的人,我感觉都应该看看这个,内容精炼但涵盖很广,--"vim为什么这么强大",当看完这本书时,我想你就能完全的了解了--此外,本书是一英文版,但很简单,学语言的同时学习英语很不多-- 附上最新版的下载链接 http://download.csdn.net/detail/wuzhimang/8933257  ,当然上官网才是硬道理 以下是自己针对

《代码大全》学习摘要(五)软件构建中的设计(下)

这次的学习内容主要是设计过程中的启发式方法和设计实践中的一些经验. 对于具体的编程工作来说,期待确定性的行为是很正常的,由于软件设计是非确定性的,灵活熟练地运用一组有效的启发方法(试探法),便成了合理的软件设计的核心工作. 1.在确定设计方案时,首选且最流行的方法是面向对象的方法,此方法的要点是辨别现实世界中的对象以及人造的对象.这个过程分为以下几步:辨识对象及其属性.确定可以对各个对象进行的操作.确定各个对象能对其他对象进行的操.确定对象的哪些部分对其他对象可见.定义每个对象的公开接口. 2.

《代码大全》学习摘要(四)伪代码编程过程

今天阅读的是<代码大全>的第9章--"伪代码编码过程".看罢本章,我对于编程的方式方法又有了新的认识,可谓是我觉得收获最大的一章,决心按书中的方法去自己实践一下. 正如作者在这一章末尾提到的,"这本书的一个目的就是告诉你怎样脱离那种先东拼西凑,然后通过运行来看代码是否工作的怪圈"(就我自己写代码的过程来看,与这种方式非常相似),在没有完全想好类和子程序的具体功能和流程就开始编码的结果就是做出一个勉强能运行的程序,它可能漏洞百出,但你不知道问题究竟出在哪里

关于优化排名,搜索引擎,站内优化的学习摘要

关于优化排名,搜索引擎,站内优化的学习摘要 你的排名你说了算,学习笔记摘要: 优化排名,不同的人员操作效果不一样,关键词排名行情是变量的,对与不同的网站在操作方式要非常慎重,让你的排名你说了算,掌握专业的SEO优化知识. 排序是有规律的还是没有规律的? 就是人为的为它写一些规则,让电脑去执行,是死的,是有规律的.做SEO就是一直在研究排序的规律. 淘宝也是一个搜索引擎,也有排序规则,与人气.销量.评价.价格这些是它的规则. 搜索引擎也有自己的规律,如何寻找规律呢?我们做调查,人数基数越少越不准确

CSS学习摘要-引入样式

CSS学习摘要-引入样式 注:主要是摘录自MDN 网络开发者这个网站的. CSS 实际上如何工作? 当浏览器显示文档时,它必须将文档的内容与其样式信息结合.它分两个阶段处理文档: 浏览器将 HTML和 CSS转化成 DOM(文档对象模型).DOM在计算机内存中表示文档.它把文档内容和其样式结合在一起. 浏览器显示 DOM 的内容. 如何将你的 CSS 应用到你的 HTML 上 这有你常见的三种不同方式将 CSS 应用到 HTML 文档上,有的方式比其他方式更有用.在这里,我们将简要回顾一下每一种