原生tmux 环境安装配置 环境 macos12.5
终端配置:zsh
安装
版本查看
配置文件路径默认是在家目录
配置文件立即生效
1 echo "tmux source-file ~/.tmux.conf.local" >> ~/.tmux.conf.local
安装插件
vim ~/.tmux.conf
命令对tmux配置文件进行编辑
1 2 3 4 5 6 7 8 9 10 11 # Display color set -g default-terminal "screen-256color" # List of plugins set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' set -g @plugin 'tmux-plugins/tmux-logging' set -g history-limit 10000000 run -b '~/.tmux/plugins/tpm/tpm'
tmux下载插件下载
按下<prefix> + shift + i
后tmux
会自动下载插件到~/.tmux/plugins/
目录 改过程我执行的时没有回显,是看到有plugins/目录生成。
tmux cheetsheets 指的是没有经过修改的原生的tmux 配置
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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 tmux tmux new -S name tmux ls tmux a/at/attach tmux a/at/attach -t num tmux kill-ses -t myses tmux kill-ses -a tmux kill-ses -a -t myses <prefix> + key <prefix> + c <prefix> + ? <prefix> + c <prefix> + n <prefix> + p <prefix> + w <prefix> + & <prefix> + num[1 -9 ] <prefix> + f <prefix> + , <prefix> + . <prefix> + % <prefix> + " # 横向分裂 <prefix> + 方向键 # 在一个 window 中切换 pane <prefix> + ctrl-方向键 # 调整 pane 大小 <prefix> + z # 全屏化当前 pane, 再次执行退出全屏 <prefix> + x # 关闭当前 pane <prefix> + q # 显示 pane 编号 <prefix> + o # 跳到下一个 pane <prefix> + { # 跟前一个编号的 pane 交换 <prefix> + } # 跟后一个编号的 pane 交换 <prefix> + ; # 跳转到上一个活跃的 pane <prefix> + ! # 将 pane 转化为 window <prefix> + <Space> # 改变 pane 的布局 ############################################################################## # session ############################################################################## <prefix> + d # detach 整个session, 后续可以重新连接 <prefix> + s # 列出 session <prefix> + $ # 重命名 session <prefix> + ( # 跳到上一个 seesion <prefix> + ) # 跳到下一个 seesion ############################################################################## # Misc ############################################################################## <prefix> + t # 显示时钟 <prefix> + : # 命令行 ############################################################################## # pane 同步 ############################################################################## :setw synchronize-panes # 打开(关闭) pane 同步模式, 发送命令到所有的 pane 中 # 只影响当前 window 的 pane ############################################################################## # 复制模式 (copy-mode) ############################################################################## 添加下面一行到 $HOME/.tmux.conf, 通过 vim 的快捷键实现浏览, 复制等操作; setw -g mode-keys vi 更多 vim 快捷键可参考 ../editors/vim.txt, 以下列出一些常用快捷键. <prefix> + [ # 进入 copy mode vi emacs 功能 ^ M-m # 跳转到一行开头 Escape C-g # 放弃选择 k Up # 上移 j Down # 下移 h Left # 左移 l Right # 右移 L # 最后一行 M M-r # 中间一行 H M-R # 第一行 $ C-e # 跳转到行尾 : g # 跳转至某一行 C-d M-Down # 下翻半页 C-u M-Up # 上翻半页 C-f Page down # 下翻一页 C-b Page up # 上翻一页 w M-f # 下一个字符 b M-b # 前一个字符 q Escape # 退出 ? C-r # 往上查找 / C-s # 往下查找 n n # 查找下一个 Space C-Space # 进入选择模式 Enter M-w # 确认选择内容, 并退出 <prefix> + ] # 粘贴选择内容(粘贴 buffer_0 的内容) :show-buffer # 显示 buffer_0 的内容 :capture-buffer # 复制整个能见的内容到当前的 buffer :list-buffers # 列出所有的 buffer :choose-buffer # 列出所有的 buffer, 并选择用于粘贴的 buffer :save-buffer buf.txt # 将 buffer 的内容复制到 buf.txt :delete-buffer -b 1 # 删除 buffer_1 ############################################################################## # mouse-mode ############################################################################## :setw -g mode-mouse on # 打开鼠标模式 :set -g mouse-select-pane on # 通过鼠标选择 pane :set -g mouse-resize-pane on # 通过鼠标更改 pane 大小 :set -g mouse-select-window on # 通过鼠标选择 window ############################################################################## # References ############################################################################## https://gist.github.com/MohamedAlaa/2961058 https://tmuxcheatsheet.com/ 所有的快捷键都有对应的 command, 参考: http://man.openbsd.org/OpenBSD-current/man1/tmux.1 可以通过 $HOME/.tmux.conf 更改配置, 参考一些比较好的 tmux 配置: https://github.com/gpakosz/.tmux
Fix zsh shell 中使用了 zsh-autosuggestions 之后进入 tmux 新建的sessin 会导致输入和显示的字符不匹配
只需要在命令行中导出一个环境变量就可以正常使用了。
1 export TERM =xterm-256color
Oh-my-tmux 安装配置 按照以下命名执行或在家目录创建一个.tmux 的隐藏文件 并且创建了一个.tmux.conf
软链接到用户的家目录,并且家目录中存在一个 tmux.conf.local 后期只要对这个文件进行修改就可以
1 2 3 4 $ cd $ git clone https://github.com/gpakosz/.tmux.git $ ln -s -f .tmux/.tmux.conf$ cp .tmux/.tmux.conf.local .
关于oh-my-tmux 的配置的详情
请查看tmux 项目主页
tmux 的自定义配置
1 2 3 4 5 6 7 8 9 10 11 12 $ tmux list-keys $ tmux list-commands $ tmux info $ tmux source-file ~/.tmux .conf
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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 # 终端颜色设置为 tmux-256colo # 参考https://zhuanlan.zhihu.com/p/293788971 # 参考git https://gist.github.com/bbqtd/a4ac060d6f6b9ea6fe3aabe735aa9d95 set-option default-terminal "tmux-256color" set-option -a terminal-overrides ",*256col*:RGB" # 基础配置 set -g display-time 3000 set -g history-limit 65535 ## 鼠标支持 set -g mouse on ## 面板相关 # 分隔面板 unbind '"' bind - splitw -v -c '#{pane_current_path}' unbind % bind | splitw -h -c '#{pane_current_path}' # 面板(pane)切换 bind -r k select-pane -U bind -r j select-pane -D bind -r h select-pane -L bind -r l select-pane -R bind -r e lastp # 选择最后一个面板 bind -r ^e last # 选择最后一个窗口 bind -r ^u swapp -U # 与前一个面板交换位置 bind -r ^d swapp -D # 与后一个面板交换位置 # -r表示可重复按键,大概500ms之内,重复的h、j、k、l按键都将有效,完美支持了快速切换的Geek需求 # 调整面板大小:绑定 Ctrl + h/j/k/l 键调整pane边缘 bind -r ^k resizep -U 10 # upward (prefix Ctrl+k) bind -r ^j resizep -D 10 # downward (prefix Ctrl+j) bind -r ^h resizep -L 10 # to the left (prefix Ctrl+h) bind -r ^l resizep -R 10 # to the right (prefix Ctrl+l) ## 其他杂项配置 bind r source-file ~/.tmux.conf \; display-message "source-file ~/.tmux.conf done" # 绑定重载 settings 的热键 ## 一些锦上添花的优化 # 设置窗口面板起始序号 set -g base-index 1 # 设置窗口(window)的起始下标为1 set -g pane-base-index 1 # 设置面板(pane)的起始下标为1 # 关闭默认的rename机制 setw -g automatic-rename off # tmux默认会自动重命名窗口,频繁的命令行操作,将频繁触发重命名,比较浪费CPU性能 setw -g allow-rename off # 关闭默认窗口标题 #set -g set-titles off # 自定义状态栏 set -g status-position top # 状态栏在顶部 set -g status-utf8 on # 状态栏支持utf8 set -g status-interval 1 # 状态栏刷新时间 set -g status-justify left # 状态栏列表左对齐 setw -g monitor-activity on # 非当前窗口有内容更新时在状态栏通知 #set -g status-bg black # 设置状态栏背景黑色 #set -g status-fg yellow # 设置状态栏前景黄色 #set -g status-style "bg=black, fg=yellow" # 状态栏前景背景色 set -g status-left "#[bg=#88cc44] Sess: #S " # 状态栏-左侧内容 (#S: 会话(session)名称) #set -g status-right 'Continuum status: #{continuum_status}' # 状态栏右侧内容 set -g status-left-length 300 # 状态栏-左边长度300 set -g status-right-length 500 # 状态栏-左边长度500 set -wg window-status-format " #I:#W " # 状态栏-(当前窗口除外的其他)窗口名称格式 set -wg window-status-separator "" # 状态栏-窗口名称之间的间隔 set -wg window-status-current-format " #I:#W #F " # 状态栏-当前窗口名称格式(#I:序号,#w:窗口名称,#F:间隔符) set -wg window-status-current-style "bg=black, fg=yellow" # 状态栏-当前窗口名称的背景色 #set -wg window-status-last-style "fg=black" # 状态栏最后一个窗口名称的样式 set -g message-style "bg=#202529, fg=#91A8BA" # 指定消息通知的前景、后景色 # customize plugins 自定义tmux 插件 set -g @plugin 'tmux-plugins/tmux-resurrect' set -g @plugin 'tmux-plugins/tmux-continuum' set -g @continuum-restore 'on' set -g @continuum-save-interval '30' ########## 插件 ########## set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' # tmux-resurrect 插件,用于手动保存和恢复 tmux 环境信息。 # 使用方式:按 PREFIX,Ctrl+s 保存 session,按 PREFIX,Ctrl+r 恢复 session set -g @plugin 'tmux-plugins/tmux-resurrect' # 使 tmux-resurrect 支持保存和恢复 tmux 中的 vim 会话: set -g @resurrect-strategy-vim 'session' # 需要 VIM 先安装 https://github.com/tpope/vim-obsession 插件 # tmux-continuum 插件。依赖: tmux>=1.9, bash, tmux-resurrect # 每隔15分钟自动保存 tmux 环境信息(不需要任何配置,默认就有) set -g @plugin 'tmux-plugins/tmux-continuum' # 使得机器启动时,自动启动 tmux server: set -g @continuum-boot 'on' # This is only for Linux. For MacOSX, see: https://github.com/tmux-plugins/tmux-continuum/blob/master/docs/automatic_start.md # tmux server 启动时,自动加载上次保存的环境信息 set -g @continuum-restore 'on' # 初始化 tmux 插件管理器(保证这行在 ~/.tmux.conf 的非常靠后的位置) run '~/.tmux/plugins/tpm/tpm' # 安装插件: # 1. 在 ~/.tmux.conf 中增加新的插件,如: set -g @plugin 'GitHub用户名/仓库名'。 # 2. 按 PREFIX + I(大写) 键,将自动下载插件,并刷新tmux环境。 # 更新插件: 按 PREFIX + U(大写) 键,选择要更新的插件后,回车确认。 # 卸载插件: # 1. 在 ~/.tmux.conf 中移除插件所在行。 # 2. 按下 PREFIX + Alt + u(小写) 移除插件。
使用256色 配置 https://zhuanlan.zhihu.com/p/293788971
参考配置
1 2 3 4 5 6 7 https://gi thub.com/gpakosz/ .tmux https:// zhuanlan.zhihu.com/p/ 112426848 https://gi thub.com/Johnny4Fun/ .tmux/blob/m aster/.tmux.conf.local https://gi tee.com/zhang_qu/ zq_ohmyzsh/blob/m aster/.tmux.conf.local https:// www.jianshu.com/p/ a032c09fc7c0 https://gi tee.com/zhang_qu/ zq_ohmyzsh/blob/m aster/.tmux.conf.local Tmux使用手册 - http:// louiszhai.github.io/2017/ 09 /30/ tmux/