配置工具篇(tmux+ranger+lazygit)

news/2024/11/14 15:24:35/

Tmux

简介

官网解释:tmux是一个终端多路复用器:它允许在单个屏幕上创建、访问和控制多个终端。tmux可以从屏幕上分离出来,继续在后台运行,然后再重新连接。

此版本在Open BSD、Free BSD、Net BSD、Linux、mac OS和Solaris上运行。

官网地址:tmux/tmux: tmux source code (github.com)

基本用法

安装

# Ubuntu 或 Debian
$ sudo apt-get install tmux# CentOS 或 Fedora
$ sudo yum install tmux# Mac
$ brew install tmux

启动

tmux

上面命令会启动 Tmux 窗口,底部有一个状态栏。状态栏的左侧是窗口信息(编号和名称),右侧是系统信息。

image-20230523160429119

按下Ctrl+d或者显式输入exit命令,就可以退出 Tmux 窗口。

前缀键

Tmux 窗口有大量的快捷键。所有快捷键都要通过前缀键唤起。默认的前缀键是Ctrl+b,即先按下Ctrl+b,快捷键才会生效。

举例来说,帮助命令的快捷键是Ctrl+b ?。它的用法是,在 Tmux 窗口中,先按下Ctrl+b,再按下?,就会显示帮助信息。

然后,按下 ESC 键或q键,就可以退出帮助。

会话管理

新建会话

第一个启动的 Tmux 窗口,编号是0,第二个窗口的编号是1,以此类推。这些窗口对应的会话,就是 0 号会话、1 号会话。

使用编号区分会话,不太直观,更好的方法是为会话起名。

tmux new -s <session-name>

分离会话

Tmux 窗口中,按下Ctrl+b d或者输入tmux detach命令,就会将当前会话与窗口分离。

$ tmux detach

上面命令执行后,就会退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行。

tmux ls命令可以查看当前所有的 Tmux 会话。

$ tmux ls
# or
$ tmux list-session

接入会话

tmux attach命令用于重新接入某个已存在的会话。

# 使用会话编号
$ tmux attach -t 0# 使用会话名称
$ tmux attach -t <session-name>

杀死会话

tmux kill-session命令用于杀死某个会话。

# 使用会话编号
$ tmux kill-session -t 0# 使用会话名称
$ tmux kill-session -t <session-name>

切换会话

tmux switch命令用于切换会话。

# 使用会话编号
$ tmux switch -t 0# 使用会话名称
$ tmux switch -t <session-name>

重命名会话

tmux rename-session命令用于重命名会话。

$ tmux rename-session -t 0 <new-name>

上面命令将0号会话重命名。

会话快捷键

下面是一些会话相关的快捷键。

  • Ctrl+b d:分离当前会话。
  • Ctrl+b s:列出所有会话。
  • Ctrl+b $:重命名当前会话。

最简流程

  1. 新建会话tmux new -s my_session
  2. 在 Tmux 窗口运行所需的程序。
  3. 按下快捷键Ctrl+b d将会话分离。
  4. 下次使用时,重新连接到会话tmux attach-session -t my_session

窗格操作

划分窗格

tmux split-window命令用来划分窗格。

# 划分上下两个窗格
$ tmux split-window# 划分左右两个窗格
$ tmux split-window -h

移动光标

tmux select-pane命令用来移动光标位置。

# 光标切换到上方窗格
$ tmux select-pane -U# 光标切换到下方窗格
$ tmux select-pane -D# 光标切换到左边窗格
$ tmux select-pane -L# 光标切换到右边窗格
$ tmux select-pane -R

交换窗格位置

tmux swap-pane命令用来交换窗格位置。

# 当前窗格上移
$ tmux swap-pane -U# 当前窗格下移
$ tmux swap-pane -D

窗格快捷键

下面是一些窗格操作的快捷键。

  • Ctrl+b %:划分左右两个窗格。
  • Ctrl+b ":划分上下两个窗格。
  • Ctrl+b <arrow key>:光标切换到其他窗格。<arrow key>是指向要切换到的窗格的方向键,比如切换到下方窗格,就按方向键
  • Ctrl+b ;:光标切换到上一个窗格。
  • Ctrl+b o:光标切换到下一个窗格。
  • Ctrl+b {:当前窗格与上一个窗格交换位置。
  • Ctrl+b }:当前窗格与下一个窗格交换位置。
  • Ctrl+b Ctrl+o:所有窗格向前移动一个位置,第一个窗格变成最后一个窗格。
  • Ctrl+b Alt+o:所有窗格向后移动一个位置,最后一个窗格变成第一个窗格。
  • Ctrl+b x:关闭当前窗格。
  • Ctrl+b !:将当前窗格拆分为一个独立窗口。
  • Ctrl+b z:当前窗格全屏显示,再使用一次会变回原来大小。
  • Ctrl+b Ctrl+<arrow key>:按箭头方向调整窗格大小。
  • Ctrl+b q:显示窗格编号。

窗口管理

除了将一个窗口划分成多个窗格,Tmux 也允许新建多个窗口。

新建窗口

tmux new-window命令用来创建新窗口。

$ tmux new-window# 新建一个指定名称的窗口
$ tmux new-window -n <window-name>

切换窗口

tmux select-window命令用来切换窗口。

# 切换到指定编号的窗口
$ tmux select-window -t <window-number># 切换到指定名称的窗口
$ tmux select-window -t <window-name>

重命名窗口

tmux rename-window命令用于为当前窗口起名(或重命名)。

$ tmux rename-window <new-name>

窗口快捷键

下面是一些窗口操作的快捷键。

  • Ctrl+b c:创建一个新窗口,状态栏会显示多个窗口的信息。
  • Ctrl+b p:切换到上一个窗口(按照状态栏上的顺序)。
  • Ctrl+b n:切换到下一个窗口。
  • Ctrl+b <number>:切换到指定编号的窗口,其中的<number>是状态栏上的窗口编号。
  • Ctrl+b w:从列表中选择窗口。
  • Ctrl+b ,:窗口重命名。

其他命令

下面是一些其他命令。

# 列出所有快捷键,及其对应的 Tmux 命令
$ tmux list-keys# 列出所有 Tmux 命令及其参数
$ tmux list-commands# 列出当前所有 Tmux 会话的信息
$ tmux info# 重新加载当前的 Tmux 配置
$ tmux source-file ~/.tmux.conf

Ranger

简介

官方解释:ranger是一个带有VI密钥绑定的控制台文件管理器。它提供了一个简洁美观的curses界面,并提供了目录层次结构视图。它配备了rifle,这是一种文件启动器,能够自动找出要用于何种文件类型的程序。

官房链接:ranger/ranger: A VIM-inspired filemanager for the console (github.com)

安装

ubuntu 安装命令如下

apt install ranger

最终在终端下输入ranger即可打开程序了

image-20230523164316992

使用

使用h,j,k,l来进行光标的移动,来穿越在不同的文件夹中

使用q进行退出程序,使用S来进行当前光标所在的文件夹中(进入文件夹后终端下执行exit命令重新回到ranger程序当中去)

配置

使用ranger --copy-config=all将在~/.config/ranger中生成一系列配置文件

  • rc.conf 常用于设置选项和绑定快捷键.(最常用)
  • scope.sh 常用于设置文件的预览方式
  • rifle.conf 常用于设置使用那个软件来打开文件
  • commands.py python文件,增强和改进ranger的各种功能
ranger --copy-config=all
  • rc.conf-选项设置和快捷键
  • commands.py-能通过:执行的命令
  • commands_full.py-全套命令
  • rifle.conf-指定不同类型的文件的默认打开程序
  • scope.conf-负责各种文件预览

注意:如果要使用~/.config/ranger目录下的配置生效,需要把RANGER_LOAD_DEFAULT_RC变量设置为false

bash
echo "export RANGER_LOAD_DEFAULT_RC=false">>~/.bashrczsh
echo "export RANGER_LOAD_DEFAULT_RC=false">>~/.zshrc

可选配置(推荐)

修改配置文件~/.config/ranger/rc.conf

  • 显示边框set draw_borders both
  • 显示序号set line_numbers true
  • 序号从1开始set one_indexed true

配置图标

git clone https://github.com/alexanderjeurissen/ranger_devicons ~/.config/ranger/plugins/ranger_devicons
echo "default_linemode devicons" >> $HOME/.config/ranger/rc.conf
效果

image-20230523171348133

配置文本编辑器

设置默认为nvim

# bash
echo export EDITOR=/usr/bin/nvim >> ~/.bashrc
# zsh
echo export EDITOR=/usr/bin/nvim >> ~/.zshrc

快捷键

文件管理器操作

文件管理器操作作用
h返回上一层
l进入文件
j向下
k向上
Enter打开文件
q退出

获得帮助

您可以在使用Ranger时获得帮助

字符作用
m打开护林员的手册页
k打开键绑定列表
c打开可用命令和描述的列表
s打开设置及其当前值的列表 |

删除

按键说明
dD 或者 F8删除条目(文件或者文件夹),或者 : + delete
DD将条目移动到回收站里。

新建

按键说明
F7新建文件夹,等同于 :mkdir 
INSERT新建文件,等同于 :touch 

重命名

按键说明
cw重命名(含后缀名)
I重命名,光标在最前
A重命名,光标在最后(含后缀名)
a重命名,光标在最后(不含后缀名)

复制

按键说明
yy 或者 F5复制
yaadd 模式,添加光标处文件到复制队列中(文件夹无效)。
yrremove 模式,从复制队列中移除光标处文件(文件夹无效)。
yttoggle 模式,切换光标处文件是否在复制队列中(文件夹无效)。
yk将光标处文件和上一文件添加到复制队列中(文件夹无效)。
yj将光标处文件和下一文件添加到复制队列中(文件夹无效)。
ygg将光标处到顶端的所有文件添加到复制队列中(文件夹无效)
yG将光标处到底端的所有文件添加到复制队列中(文件夹无效)

剪切

按键说明
dd 或者 F6剪切
daadd 模式,同复制。
drremove 模式,同复制。
dttoggle 模式,同复制。
dk同复制
dj同复制
dgg同复制
dG同复制
ud 或者 uy取消剪切

粘贴

按键说明
pp粘贴,默认 append 模式
pPappend 模式,如果该目录中有同名条目,则在条目后面加上 __0_1……。如果条目是文件,则在文件后缀名后加入。
pooverwrite 模式,如果该目录中有同名条目,则覆盖原来的条目。
pOappend 模式 + overwrite 模式。
pl粘贴为符号链接,不在状态栏显示目标条目的相对路径。
pL粘贴为符号链接(相对路径),在状态栏显示目标条目的相对路径。
phl粘贴为硬链接
pht粘贴为硬链接的子目录(hardlinked subtree)

搜索

按键说明
/打开搜索框,输入要搜索的字符串,回车后开始搜索。
f查找,等同于运行满足条件的文件或者打开满足条件的文件夹。
zf与命令行 filter 作用一样,只显示符合条件的条目,区分大小写。
n N查找下一个搜索结果 查找上一个搜索结果
c + 对应字母通过对应属性依次遍历,如:ca:通过 atime属性依次遍历cc:通过 ctime 属性依次遍历ci:通过 mimetype 属性依次遍历cm:通过 mtime 属性依次遍历cs:通过 size 属性依次遍历ct:通过 tag 属性依次遍历

相关插件

ubuntu
sudo apt-get install caca-utils # img2txt 图片
sudo apt-get install highlight  # 代码高亮
sudo apt-get install atool     # 存档预览
sudo apt-get install w3m        # html页面预览
sudo apt-get install mediainfo  # 多媒体文件预览
sudo apt-get install catdoc     # doc预览
sudo apt-get install docx2txt   # docx预览
sudo apt-get install xlsx2csv   # xlsx预览

LazyGit

简介

官方解释:git命令的简单终端UI,使用gocui库在Go中编写。

官方链接:jesseduffield/lazygit: simple terminal UI for git commands (github.com)

安装

ubuntu
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
tar xf lazygit.tar.gz lazygit
sudo install lazygit /usr/local/bin

执行lazygit即可启动

可以添加别名

echo "alias lg='lazygit'" >> ~/.zshrc

效果

image-20230523222702767

可以使用数字键或是tab或是hl切换标签

之后在对应tab中使用?查看帮助文档学习相应操作

参考链接:

https://www.ruanyifeng.com/blog/2019/10/tmux.html

https://www.zssnp.top/2021/06/03/ranger/#post-comment


http://www.ppmy.cn/news/93232.html

相关文章

Vue之插值表达式,v-bind(单向绑定),v-model(双向绑定)

文章目录 前言一、插值表达式二、v-bind指令三、v-model指令总结 前言 插值表达式{{…}} v-bind v-model 一、插值表达式 插值表达式支持匿名变量、三目运算符、四则运算符、比较运算符、数值类型的一些内置方法&#xff0c;还有数组的索引取值方法和对象属性。 <!DOCTYPE…

Android Log分析-系统重启

重启原因分类 1.上层造成重启 system_server被杀 watchdog重启 重要线程阻塞 2.kernel造成重启 空指针 非法地址 3.kernel watchdog造成重启,原因不确定 内存原因 nand驱动 log查看步骤及关键字 1. 重启后的kernel.log或misc/cmdline.log 在log最前面…

通过小程序获取公众号openid

需求: 由于小程序不能直接向用户发送模板消息&#xff0c;所以需要用公众号向用户发送模板消息。 于是需要将小程序的openid和公众号的openid绑定在一起。提供两种思路&#xff1a; 方法一&#xff1a; 1.微信小程序和公众号都绑定到微信开放平台上&#xff0c;这样小程序登录…

微服务架构演变

微服务架构演变 认识微服务 服务架构演变 单体架构&#xff1a;将业务的所有功能集中在一个项目种开发&#xff0c;打成一个包部署 优点&#xff1a; 架构简单部署成本低 缺点&#xff1a; 耦合度高 分布式架构&#xff1a;根据业务功能对系统进行拆分&#xff0c;每个业…

devm_of_led_classdev_register 函数

Linux version: 4.14 Code link: Linux source code (v4.14) - Bootlin 1 devm_of_led_classdev_register 函数 int devm_of_led_classdev_register(struct device *parent,struct device_node *np,struct led_classdev *led_cdev) {struct led_classdev **dr;int rc;dr de…

Windows本地快速搭建SFTP文件服务器,并端口映射实现公网远程访问

文章目录 1. 搭建SFTP服务器1.1 下载 freesshd服务器软件1.3 启动SFTP服务1.4 添加用户1.5 保存所有配置 2 安装SFTP客户端FileZilla测试2.1 配置一个本地SFTP站点2.2 内网连接测试成功 3 使用cpolar内网穿透3.1 创建SFTP隧道3.2 查看在线隧道列表 4. 使用SFTP客户端&#xff0…

解读智慧城市建设的关键角色:GIS技术的应用与优势

近年来&#xff0c;随着城市化进程的加快和信息技术的迅猛发展&#xff0c;智慧城市成为了城市发展的重要方向。而在智慧城市建设中&#xff0c;地理信息系统&#xff08;GIS&#xff09;技术的应用正发挥着越来越重要的作用。GIS技术以其独特的地理空间分析能力&#xff0c;为…

结对编程 --- 大部分程序员喜欢的编程方式

一、介绍 结对编程起源时间可以追溯到 1990 年代早期。这种编程方法最初由 Jim Highsmith 和 Alistair Cockburn 等人提出。后来&#xff0c;Kent Beck 和 Ward Cunningham 等人将其发展成为一种敏捷开发方法&#xff0c;被称为“极限编程”&#xff08;Extreme Programming&am…