前言

本文整理了一套适用于 Windows / WSL 环境的终端开发配置方案,主要涵盖:

  • tmux 的安装与个性化配置(基于 oh-my-tmux)
  • 无前缀快捷键体系与状态栏美化
  • WSL apt 代理穿透配置及常见问题排查

⚠️ 以下 tmux 配置针对 Windows / WSL 环境优化,不推荐直接用于 macOS,部分无前缀快捷键可能与系统产生冲突。


一、tmux 安装与配置

1.1 安装 oh-my-tmux

oh-my-tmux 是一套开箱即用的 tmux 配置框架,执行以下命令完成安装:

1
2
3
4
cd ~
git clone --single-branch https://github.com/gpakosz/.tmux.git
ln -s -f .tmux/.tmux.conf
cp .tmux/.tmux.conf.local .

安装完成后,将下方自定义配置追加到 ~/.tmux.conf.local 中即可生效。


1.2 完整配置内容

将以下内容粘贴到 ~/.tmux.conf.local

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# ==============================================================================
# Tmux 终极体验配置 (全自动化、无 Prefix 快捷键版)
# ==============================================================================

# ------------------------------------------------------------------------------
# 1. 基础全局配置
# ------------------------------------------------------------------------------
set-window-option -g xterm-keys on
set-option -g status-keys emacs
set-window-option -g mode-keys vi
set -g mouse on # 开启鼠标支持
set -g base-index 1 # 窗口编号从 1 开始(符合键盘布局)
set -g pane-base-index 1 # 面板编号从 1 开始
set -g renumber-windows on # 关闭窗口后自动重新编号
set -s escape-time 0 # 解决 Vim 模式切换延迟

# ------------------------------------------------------------------------------
# 2. 极速分屏(无 Prefix 直接触发)
# 使用 Alt+\ 和 Alt+- 避免与终端字体快捷键冲突
# ------------------------------------------------------------------------------
unbind %
unbind '"'
bind-key -n M-\\ split-window -h -c "#{pane_current_path}" # Alt+\ 左右分屏
bind-key -n M-- split-window -v -c "#{pane_current_path}" # Alt+- 上下分屏

# ------------------------------------------------------------------------------
# 3. 无前缀切换分屏(Direct Pane Navigation)
# Ctrl + h/j/k/l 切换当前 Tab 内的分屏
# ------------------------------------------------------------------------------
bind-key -n C-h select-pane -L
bind-key -n C-j select-pane -D
bind-key -n C-k select-pane -U
bind-key -n C-l select-pane -R

# ------------------------------------------------------------------------------
# 4. 无前缀切换 Tab
# Alt + 数字 切换不同 Tab
# ------------------------------------------------------------------------------
bind-key -n M-1 select-window -t 1
bind-key -n M-2 select-window -t 2
bind-key -n M-3 select-window -t 3
bind-key -n M-4 select-window -t 4
bind-key -n M-5 select-window -t 5
bind-key -n M-6 select-window -t 6
bind-key -n M-7 select-window -t 7
bind-key -n M-8 select-window -t 8
bind-key -n M-9 select-window -t 9

# ------------------------------------------------------------------------------
# 5. 新建 / 关闭 Tab
# ------------------------------------------------------------------------------
bind-key -n C-t new-window -c "#{pane_current_path}" # Ctrl+t 新建 Tab
bind-key -n C-w kill-pane # Ctrl+w 关闭当前分屏

# ------------------------------------------------------------------------------
# 6. 状态栏视觉增强
# ------------------------------------------------------------------------------
set -g status-style bg=default,fg=white
set -g status-left-length 20
set -g status-left '#[fg=green,bold] #S ⮕ '
set -g status-right '#[fg=yellow] %H:%M '
set-window-option -g window-status-current-format '#[fg=white,bg=blue,bold] #I:#W '
set-window-option -g window-status-format '#[fg=brightblack,bg=default] #I:#W '

# ------------------------------------------------------------------------------
# 7. 配置重载快捷键
# ------------------------------------------------------------------------------
bind r source-file ~/.tmux.conf \; display-message "Tmux 配置已重载!"

1.3 快捷键速查表

功能 快捷键
左右分屏 Alt + \
上下分屏 Alt + -
切换分屏(左/下/上/右) Ctrl + h/j/k/l
切换 Tab Alt + 1~9
新建 Tab Ctrl + t
关闭当前分屏 Ctrl + w
重载配置 Prefix + r

二、WSL 代理配置

2.1 apt 代理设置

WSL 中 apt 不受全局 http_proxy 环境变量影响,需单独配置代理文件:

1
sudo nvim /etc/apt/apt.conf.d/proxy.conf

写入以下内容(将 IP 替换为宿主机实际 IP):

1
2
Acquire::http::Proxy "http://172.24.144.1:7890/";
Acquire::https::Proxy "http://172.24.144.1:7890/";

其他命令行工具(如 curlwget)继续使用 http_proxy 环境变量即可,无需额外配置。


2.2 代理不生效的排查方法

如果配置代理后 apt 仍无法访问外网,可按以下步骤排查:

  1. 删除 WSL 网络配置文件:

    1
    del C:\Users\<用户名>\.wslconfig
  2. 在 PowerShell 中重启 WSL:

    1
    2
    wsl --shutdown
    wsl
  3. 重新验证代理是否生效。


三、延伸阅读

工具 说明 链接
LazyVim 开箱即用的 Neovim 配置框架 lazyvim.org/installation
oh-my-tmux tmux 配置美化框架 github.com/gpakosz/.tmux