您尚未充分使用tmux!(大概)

哈Ha!请注意以下文章的翻译:“(たん)君だtmuxの真の力引引き出せいいい”



内容



  • 什么是tmux
  • 开始和开始新的会话
  • 开启新视窗
  • 窗口过渡
  • 分割视窗并建立面板
  • 在面板之间移动
  • 在会话之间移动
  • [实用]重定向tmux中显示的内容
  • [实际使用]在信息字段中显示Git分支的名称
  • [实际使用]显示当前操作的路径
  • [实用]调用代码段
  • 链接到设置.tmux.conf
  • Tmux版本兼容性


什么是tmux



tmux是终端多路复用器。当您在使用SSH的计算机上工作,运行沉重的程序但又想继续执行其他任务等而不停止执行时,tmux可能会非常有用。



但是tmux的功能并不止于此。tmux有很多方便的用例,我想在下面的示例中进行演示。



基本思想类似于Vim中的mods。借助prefix'a(保留的键绑定或键绑定),您可以更改mod,默认值为ctrl + b。



开始和开始新的会话



如果您的操作系统是Ubuntu或Debian,则可以使用命令sudo apt-get install tmux安装tmux。在MacOS上-brew安装tmux。



运行命令:



$ tmux


如果要启动tmux并立即命名新会话,请使用以下命令:

$ tmux new -s {   }


图片



开启新视窗



在tmux中创建会话后,您还可以创建新窗口。标准链接为“ ctrl + b + c”。如果保留了前缀,则可以使用“前缀+ c”链接。很可能会创建“ c”的值,因此会产生这样的捆绑。



图片



窗口过渡



您也可以在创建的窗口之间自由切换。为此的标准绑定是“前缀+ p”(p-上一个)和“前缀+ n”(n-下一个)。



使用前缀并不总是很方便,因此我为在窗口之间切换定制了键绑定:下一个窗口的shift + rightKey和上一个窗口的shift + leftKey。



图片



分割视窗并建立面板



在tmux中分割窗口类似于在vim中分割窗口。您将窗口分为几个面板,因此可以在一个窗口中打开vim,在另一个窗口中单击htop,然后在第三个窗口中执行程序。



如果不使用键绑定,则用于拆分窗口的命令为前缀+“ split-window -h”,前缀+“ split-window -v”。



因为我真的不想每次都开这个处方,所以我以前缀+“-”,前缀+“ |”的形式为自己创建了热键。



图片



在面板之间移动



在面板之间移动的标准命令很复杂,使用起来不是很容易,因此在这种情况下,我还分配了我的热键:ctrl + shift + upKey,ctrl + shift + downKey,ctrl + shift + rightKey,ctrl + shift + leftKey。



图片



在会话之间移动



使用ctrl + t组合键,可以调用会话列表,并使用↑↓键选择所需的会话。



图片



[实用]重定向tmux中显示的内容



基本上,tmux是一种虚拟终端,包含在/ dev / pts / {fooBar}目录中。将为每个面板创建相同格式的目录。



换句话说,如果我们为每个面板定义{fooBar},我们可以分别从面板X重定向stdout和stderr流-一个重定向到面板Y,另一个重定向到面板Z。



因此,您可以输出编写到不同stderr和stdout面板的程序,并且还可以将终端用作操作日志。



图片



[实际使用]在状态栏中显示Git分支的名称



这是一个生活黑客,利用该功能可以从.tmux.conf-tmux配置文件读取Shellscript和Python脚本。



可以使用以下命令配置状态栏:



set-option -g status-right '#{host} #(tmux run-shell "tmux_hook --default true --git-path #{pane_current_path}")'


#{host}显然是主机名,并且tmux run-shell运行一个自定义脚本,该脚本将值返回到状态栏设置。



tmux_hook是我创建的用于显示时间和当前Git分支的文件,但它实际上可以返回任何文本信息。例如,如果配置正确,您甚至可以在状态栏中显示Twitter时间轴。



图片



[实际使用]显示当前操作的路径



通常,在终端上跳转时,您想了解您所在的目录,包含在哪个路径中。



我不想为此再次写pwd,因此您可以在显示当前面板路径的同一位置显示当前操作的路径。



setw -g pane-border-format '#{pane_tty} | #{pane_current_path}'


图片



[实用]调用代码段



即使tmux是具有终端共享功能的会话管理器,它也可以执行一些IDE的功能(不是吗?)。您可以将热键绑定到特殊的发送键设置,然后在终端中调用它们。



例如,如果按照下面的示例设置send-key,则只需按prefix + 1并显示使用python所需的导入命令。



bind -T prefix -n 1 send-keys "import os\nimport sys\n"


图片



链接到设置.tmux.conf



在这里



Tmux版本兼容性



有时会发生某些tmux设置不起作用的情况-在这种情况下,其版本可能太新或太旧。



以上所有内容以及我离开链接的配置均适用于2.8和更高版本的tmux。如果某些内容不适合您,请检查此版本是否适合您。



如果您要自己调试某些东西,那么首先应该查阅man tmux-目前有关tmux的最可靠的文档。



指向本文原文的链接位于此处。



如果您告诉我们您是否喜欢本文,我们将非常高兴,翻译是否清晰,对您有用吗?



All Articles