Linux之tmux学习

前言

在Linux的世界中,命令行是最优雅的交互方式。

但是,只会使用一个交互终端的程序员,是不足以成为Linux下的大牛的。

那么tmux是什么,引用一下原文介绍

tmux is a "terminal multiplexer", it enables a number of terminals (or windows)
to be accessed and controlled from a single terminal. tmux is intended to be a
simple, modern, BSD-licensed alternative to programs such as GNU screen.

tmux可以让你在一个终端中同时交互多个命令,而不用多开终端和不断切换窗口,同屏显示的效率也更高一些。

正文

tmux的原生触发键是Ctrl + b,但是由于它的bash原生的后退字符快捷键冲突了,所以我修改了一下键位配置。

触发键:修改为Ctrl + v,该快捷键仅和vim中的block-visual模式冲突,但该模式使用频率低,而且冲突后可以再次触发进入block-visual,所以不用太介意

左右分屏:修改为|,形象生动,竖线表达左右分屏,避免记忆原生%才是左右分屏的快捷键

上下分屏:修改为-,形象生动,横线表达上下分屏,避免记忆原生"才是上下分屏的快捷键

面板切换:修改为hjkl,配合vim的操作方式,避免移动手掌和误操作性,分别对应上下左右

窗口切换:修改为序号1为第一窗口(默认0),切换第一个窗口的时候不用在找0的位置,切换方式为触发键后加窗口的序号Ctrl + v,<index>,序号默认显示在终端的最下方

窗口自动重排列:退出2号窗口后,3号窗口会自动序号变为2号,4号及后面的同理

调整面板大小:按住触发键Ctrl + v,不断按hjkl即可调整面板的大小

显示效果:

附录

.tmux.conf文件内容,放置在~/.tmux.conf路径下,建议重定向tmux命令为tmux -2才能启动256色彩方案

# =====> TMUX general <=====
# reload settings message
bind R source-file ~/.tmux.conf \; display-message "Config reloaded..." # remap prefix from 'C-b' to 'C-v'
unbind C-b
set-option -g prefix C-v
bind-key C-v send-prefix # =====> TMUX display <=====
# use 256 colors
set -g default-terminal "screen-256color"
# use vi mode
setw -g mode-keys vi # start window indexing at one instead of zero
set -g base-index 1
# auto reorder windows number
set-option -g renumber-windows on # =====> TMUX key bindings <=====
# split window to two horizontal panes
bind | split-window -h
# split window to two vertical panes
bind - split-window -v
# resize-pane with hjkl
bind -r C-h resize-pane -L
bind -r C-j resize-pane -D
bind -r C-k resize-pane -U
bind -r C-l resize-pane -R
# select-pane with hjkl
bind -r h select-pane -L
bind -r j select-pane -D
bind -r k select-pane -U
bind -r l select-pane -R

Linux之tmux学习的更多相关文章

  1. 20135231 —— Linux 基础入门学习

    20135231 何佳 学习计时:共12小时 读书:5 代码:2 作业:2 博客:3 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Li ...

  2. Linux系统新手学习的11点建议

    随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.这里介绍学习Linux的一些建议. 一.从基础开始:常常有些朋友在Linux论 ...

  3. Linux进程间通信IPC学习笔记之同步二(SVR4 信号量)

    Linux进程间通信IPC学习笔记之同步二(SVR4 信号量)

  4. Linux进程间通信IPC学习笔记之同步二(Posix 信号量)

    Linux进程间通信IPC学习笔记之同步二(Posix 信号量)

  5. Linux进程间通信IPC学习笔记之消息队列(SVR4)

    Linux进程间通信IPC学习笔记之消息队列(SVR4)

  6. Linux进程间通信IPC学习笔记之有名管道

    基础知识: 有名管道,FIFO先进先出,它是一个单向(半双工)的数据流,不同于管道的是:是最初的Unix IPC形式,可追溯到1973年的Unix第3版.使用其应注意两点: 1)有一个与路径名关联的名 ...

  7. Linux进程间通信IPC学习笔记之管道

    基础知识: 管道是最初的Unix IPC形式,可追溯到1973年的Unix第3版.使用其应注意两点: 1)没有名字: 2)用于共同祖先间的进程通信: 3)读写操作用read和write函数 #incl ...

  8. Linux防火墙iptables学习笔记(三)iptables命令详解和举例[转载]

     Linux防火墙iptables学习笔记(三)iptables命令详解和举例 2008-10-16 23:45:46 转载 网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能 ...

  9. linux的视频学习4(网络配置和rpm)

    linux的视频学习: 1.网络配置的三种方式的介绍. 第一种方式: setup 命令--选择network configuration-->配置固定ip(tab键)和自动分配IP(长空格) / ...

随机推荐

  1. 微信wx.request

    官方 wx.request 代码,Post 没成功过,使用Get 方式成功了. wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 data: { x: '' ...

  2. C#DataTable添加列、C#指定位置添加列

    DataSet ds = SQlHelper.GetDataTable(Con, sb.ToString()); ds.Tables[].Columns.Add("Check", ...

  3. HTML5 常用标签整理

    <!--1.  html5 文本 --> <div> <header> <hgroup> <h1>h1</h1> <h2& ...

  4. es6 语法 (Proxy和Reflect 的对比)

    { //原始对象 let obj={ time:'2017-03-11', name:'net', _r:123 }; //(代理商)第一个参数代理对象,第二个参数真正代理的东西 let monito ...

  5. HDU 1527 取石子游戏(威佐夫博弈)

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...

  6. 洛谷P4577 [FJOI2018]领导集团问题(dp 线段树合并)

    题意 题目链接 Sol 首先不难想到一个dp,设\(f[i][j]\)表示\(i\)的子树内选择的最小值至少为\(j\)的最大个数 转移的时候维护一个后缀\(mx\)然后直接加 因为后缀max是单调不 ...

  7. 在C++的函数中如何指定一个数组,使得这个数组的大小由函数的输入值来决定

    今天调试一个C++程序,在一个函数中定义了一个一维数组,设定数组的大小由函数的输入值来决定. 是这样子的: ]; 然后发现:报错! 报错是这样的: 那么问题来了,在C++中定义数组一定要指定数组大小么 ...

  8. android笔试题二

    1.android系统架构: Linux内核——标准库——Framework层——应用层 Linux层包括:Android系统的核心服务,硬件驱动,进程管理,系统安全等等 (现在又加了一层变成了:Li ...

  9. 【linux】Can't connect to local MySQL server through socket和Plugin 'auth_socket' is not loaded报错

    真的是一次吐血的经历,弄了两个多小时才弄好. 问题1:直接登陆root用户报错 ERROR 2002 (HY000): Can't connect to local MySQL server thro ...

  10. 列表转换为字典(setdefault())

    li=[11,22,33,44,66,77,88] dict={} li_less=[] li_large=[] for i in li: if i == 66:continue if i < ...