不止一叶代码屋 个人技术博客 · 代码与生活的记录

工具

把终端变成工作台:我的 tmux 配置

为什么用 tmux

不是为了「看起来很酷」。真正的原因是:SSH 断线,工作不丢。

在远程服务器上跑一个长任务,网络一抖就前功尽弃。tmux 让进程活在会话里,重连后 tmux attach 就回到原样。

必改的前缀键

默认 Ctrl + b 离手指太远,我换成 Ctrl + a:

set -g prefix C-a
unbind C-b
bind C-a send-prefix

从 1 开始编号窗口

set -g base-index 1
setw -g pane-base-index 1

因为键盘上 1 就在 0 旁边,但人的直觉是「第一个是 1」。

切分窗口

bind | split-window -h -c '#{pane_current_path}'
bind - split-window -v -c '#{pane_current_path}'

这两行有两个好处:| 和 - 对应横竖方向,比默认的 % 和 " 直观;-c '#{pane_current_path}' 让新窗口继承当前目录,不用每次都 cd。

鼠标和滚动

set -g mouse on
set -g history-limit 50000

开了鼠标之后,选中复制也方便很多(注意 tmux 内复制要用 Shift 配合)。

历史行数默认只有 2000,跑构建看日志根本不够,我直接拉到 5 万。

一个会话习惯

我现在的习惯是按项目开会话,而不是按服务器:

tmux new -s blog
tmux new -s api

好处是上下文清楚。想切项目时 tmux ls 一眼看到所有任务,tmux attach -t blog 直接回去。

比在同一个会话里开一堆窗口去找要快得多。

小结

tmux 的学习曲线主要卡在默认键位别扭上。改完前缀和切分键,一周就习惯了,然后就再也回不去。

订阅 RSS

← 返回首页