Tmux
Tmux 的核心功能
多窗口和多面板:
-
在一个终端中创建多个窗口(Windows),每个窗口可以运行不同的任务。
-
在每个窗口中,可以进一步分割成多个面板(Panes),实现分屏操作。
会话管理:
-
Tmux 会话(Session)可以在后台运行,即使断开 SSH 连接,会话仍然保持活动状态。
-
重新连接后,可以恢复之前的会话,继续工作。
快捷键操作:
-
Tmux 通过快捷键实现快速切换窗口、面板和会话。
脚本化操作:
-
Tmux 支持
-
通过脚本自动化操作,适合批量任务和复杂工作流。
Tmux 的基本概念
-
会话(Session):一个 Tmux 会话是一个独立的终端环境,可以包含多个窗口。
-
窗口(Window):一个窗口类似于一个标签页,可以运行一个或多个面板。
-
面板(Pane):一个面板是窗口中的一个分屏区域,可以运行独立的命令。
Tmux 的安装
在大多数 Linux 发行版中,可以通过包管理器安装 Tmux:
-
Debian/Ubuntu:
sudo apt install tmux
-
CentOS/Red Hat:
sudo yum install tmux
-
macOS(使用 Homebrew):
brew install tmux
Tmux 的基本使用
1. 启动 Tmux
-
启动一个新的 Tmux 会话:
tmux
-
启动一个命名会话session:
tmux new -s 会话名称
2. 快捷键前缀
Tmux 的所有快捷键都需要先按 前缀键(默认是 Ctrl + b
),然后按其他键。例如:
-
Ctrl + b
+c
:创建一个新窗口。 -
Ctrl + b
+d
:分离当前会话(会话在后台运行)。
3. 常用快捷键
会话操作
-
Ctrl + b
+d
:分离当前会话。 -
Ctrl + b
+c
:在Session中创建一个新的window -
tmux attach -t 会话名称
:重新连接到指定会话。 -
tmux ls
:列出所有会话。 -
tmux kill-session -t 会话名称
:关闭指定会话。
窗口操作
-
Ctrl + b
+c
:创建一个新窗口。 -
Ctrl + b + d:挂起当前Session
-
tmux a或者tmux attach:恢复Session
-
Ctrl + b
+n
:切换到下一个窗口。 -
Ctrl + b
+p
:切换到上一个窗口。 -
Ctrl + b
+数字
:切换到指定编号的窗口。 -
Ctrl + b
+&
:关闭当前窗口。 -
Ctrl + b
+s:选择其他Session。(上下方向键选择Session,左右方向键选择展开或收起)
Ctrl + b
+ w:选择其他Window.(方法和上述session选择相同)
面板操作
-
Ctrl + b
+%
:垂直分割面板。
-
Ctrl + b
+"
:水平分割面板。
-
Ctrl + b
+方向键
:切换到指定方向的面板。
-
Ctrl + b
+x
:关闭当前面板。 -
Ctrl + b
+z
:最大化当前面板(再按一次恢复)。
4. 自定义配置
Tmux 的配置文件是 ~/.tmux.conf
,可以通过编辑该文件自定义 Tmux 的行为。例如:
# 将前缀键改为 Ctrl + a
unbind C-b
set-option -g prefix C-a
bind C-a send-prefix# 启用鼠标支持
set -g mouse on# 设置面板分割快捷键
bind | split-window -h
bind - split-window -v# 设置状态栏颜色
set -g status-bg blue
set -g status-fg white
修改配置文件后,重新加载配置:
tmux source-file ~/.tmux.conf
5.Tmux的复制
我们会发现在tmux中复制好像不是那么方便
我们通常采用按住shift键再用鼠标拖拽选中
Vim
简介
Vim(Vi Improved)是一款功能强大且高度可定制的文本编辑器,最初由Bram Moolenaar开发,是对经典的vi
编辑器的改进版本。尽管Vim的学习曲线较为陡峭,但它在程序员和高级用户中非常受欢迎,尤其是在Linux和Unix环境中。以下是Vim的主要功能和优点:
1. 功能强大
-
多模式编辑:Vim采用多模式编辑方式,包括普通模式(Normal Mode)、插入模式(Insert Mode)、命令模式(Command Mode)和可视模式(Visual Mode)。这种模式划分使得编辑操作更加高效,用户可以通过快捷键快速切换模式并执行复杂的编辑任务。
-
丰富的文本操作:Vim提供了大量的文本操作命令,如复制(
yank
)、粘贴(put
)、删除(delete
)、替换(change
)、查找(search
)和替换(substitute
)等。这些命令可以通过组合键快速执行,大大提高了编辑效率。 -
宏录制与回放:用户可以录制一系列操作并将其保存为宏,然后通过简单的命令重复执行这些操作。这对于重复性任务非常有用,可以节省大量时间。
-
多窗口和多标签支持:Vim支持多窗口(
split windows
)和多标签(tabs
),允许用户同时打开多个文件,并在它们之间快速切换。这使得代码对比和多文件编辑变得更加方便。 -
语法高亮和代码补全:Vim内置了对多种编程语言的语法高亮支持,并且可以通过插件实现智能代码补全。这对于编写代码非常有帮助,可以提高开发效率并减少错误。
-
强大的正则表达式支持:Vim的查找和替换功能支持复杂的正则表达式,用户可以轻松实现复杂的文本匹配和替换操作。
2. 高度可定制
-
配置文件:Vim允许用户通过
.vimrc
配置文件自定义编辑器的行为,包括键绑定、颜色方案、缩进设置、插件管理等。用户可以根据自己的需求和习惯调整Vim的各个方面。 -
插件生态系统:Vim拥有丰富的插件生态系统,用户可以通过安装插件来扩展其功能。例如,
vim-plug
是一个流行的插件管理器,可以帮助用户轻松安装和管理插件。常见的插件包括代码补全插件(如YouCompleteMe
)、项目管理插件(如NERDTree
)和语法检查插件(如Syntastic
)。 -
自定义命令和函数:用户可以使用Vim脚本语言(Vimscript)编写自定义命令和函数,实现个性化的编辑功能。这使得Vim可以适应几乎任何用户的特定需求。
3. 轻量级和跨平台
-
轻量级:Vim是一个轻量级的文本编辑器,启动速度快,占用系统资源少。它不需要复杂的图形界面或大量的内存,因此在资源受限的环境中表现良好。
-
跨平台支持:Vim可以在多种操作系统上运行,包括Linux、Unix、macOS和Windows。用户可以在不同的平台上使用相同的编辑器,无需重新学习。
-
终端集成:Vim可以在终端中运行,也可以作为独立的图形界面应用程序运行(如
gvim
)。这使得用户可以根据自己的喜好选择使用方式。
4. 提高效率
-
键盘快捷键:Vim的所有操作都可以通过键盘快捷键完成,无需频繁切换到鼠标。这使得用户可以保持双手在键盘上,从而显著提高编辑效率。
-
全局操作:Vim允许用户对整个文件或选定区域执行全局操作,例如一次性替换所有匹配的文本。这比逐个修改要高效得多。
-
命令行模式:Vim的命令行模式允许用户输入复杂的命令来执行各种操作,例如批量替换、文件读写等。这使得Vim可以处理复杂的文本操作,而无需离开编辑器。
5. 社区支持
-
活跃的社区:Vim拥有一个庞大而活跃的用户社区,用户可以在社区中找到大量的教程、配置文件和插件。社区成员也经常分享经验和技巧,帮助新用户快速上手。
-
丰富的文档和资源:Vim的官方文档非常详细,用户可以通过
:help
命令随时查阅。此外,互联网上也有大量的Vim教程、博客和视频资源,可以帮助用户学习和提高。
模式
普通模式(Normal Mode):
-
默认进入的模式,用于导航和操作文本。
-
按
Esc
键可以随时从其他模式回到普通模式。
插入模式(Insert Mode):
-
用于输入和编辑文本。
-
从普通模式按
i
、a
、o
等键进入插入模式。
命令模式(Command Mode):
-
用于执行保存、退出等命令。
-
从普通模式按
:
进入命令模式。
基本操作
1. 启动和退出 Vim
-
启动 Vim:
vim 文件名 # 打开或创建文件
-
退出 Vim:
-
普通模式下按
:q
退出(如果文件未修改)。 -
普通模式下按
:q!
强制退出,不保存修改。 -
普通模式下按
:wq
保存并退出。 -
普通模式下按
:x
或ZZ
保存并退出。
-
2. 光标移动
-
基本移动:
-
h
:左移 -
j
:下移 -
k
:上移 -
l
:右移
-
-
按单词移动:
-
w
:移动到下一个单词的开头。 -
b
:移动到上一个单词的开头。 -
e
:移动到当前单词的末尾。
-
-
行内移动:
-
0
:移动到行首。 -
$
:移动到行尾。 -
^
:移动到行首第一个非空白字符。 -
n【space】:往后移n个字符 (支持自动换行)
-
-
跨行移动:
-
gg
:移动到文件开头。 -
G
:移动到文件末尾。 -
:n
:跳转到第n
行(例如:10
跳转到第 10 行)。
-
3. 插入和编辑
-
进入插入模式:
-
i
:在光标前插入。 -
a
:在光标后插入。 -
o
:在当前行下方插入新行。 -
O
:在当前行上方插入新行。
-
-
删除:
-
x
:删除光标处的字符。 -
dw
:删除从光标到下一个单词开头的字符。 -
dd
:删除整行。 -
D
:删除从光标到行尾的内容。
-
-
复制和粘贴:
-
yy
:复制当前行。 -
yw
:复制当前单词。 -
p
:粘贴到光标后。 -
P
:粘贴到光标前。
-
-
撤销和重做:
-
u
:撤销上一次操作。 -
Ctrl + r
:取消撤销操作。
-
-
整体移动
- 大于号 >:将选中的文本整体向右缩进一次
- 小于号 <:将选中的文本整体向左缩进一次
4. 搜索和替换
-
搜索:
-
/关键词
:向下搜索(例如/hello
)。 -
?关键词
:向上搜索。 -
按
n
跳转到下一个匹配项,按N
跳转到上一个匹配项。
-
-
替换:
- :n1,n2s/word1/word2/g:n1与n2为数字,在第n1行与n2行之间寻找word1这个字符串,并将字符串替换
-
:s/旧内容/新内容
:替换当前行的第一个匹配项。 -
:s/旧内容/新内容/g
:替换当前行的所有匹配项。 -
:1,$s/word1/word2/g:将全文的word1替换为word2
-
:1,$s/word1/word2/gc:将全文的word1替换为word2,且在替换前要求用户确认。
-
:s/旧内容/新内容/gc
:替换当前行的所有匹配项,且在替换前需要用户确认。
-
:%s/旧内容/新内容/g
:替换整个文件中的所有匹配项。
5. 保存和退出
-
:w
:保存文件。 -
:w文件名
:另存为指定文件。 -
:q
:退出 Vim。 -
:q!
:强制退出,不保存修改。 -
:wq
或:x
:保存并退出。 -
gg=G:代码格式化(会占用很大带宽)
6. 分屏和多文件编辑
-
分屏:
-
:sp 文件名
:水平分屏打开文件。 -
:vsp 文件名
:垂直分屏打开文件。 -
Ctrl + w + h/j/k/l
:在分屏间切换。
-
-
多文件编辑:
-
:e 文件名
:打开另一个文件。 -
:bn
:切换到下一个文件。 -
:bp
:切换到上一个文件。 -
:bd
:关闭当前文件。
-
7. 其他实用命令
-
显示行号:
-
:set number
:显示行号。 -
:set nonumber
:隐藏行号。
-
-
语法高亮:
-
:syntax on
:启用语法高亮。 -
syntax off
:关闭语法高亮。 -
:noh 关闭查找关键词高亮
:
-
-
查看帮助:
-
:help
:打开帮助文档。 -
help 命令
:查看特定命令的帮助(例如:help :wq
)。 -
set paste:设置成粘贴模式,取消代码自动缩进
-
set nooaste:取消粘贴模式,开启代码自动缩进
-
8.可视模式
-
进入方式:按下
v
键。 -
功能:允许用户通过方向键(
h
、j
、k
、l
)或鼠标选择文本的任意部分。 -
用途:适合选择不规则的文本片段,例如单词、句子或代码片段。
-
操作示例:
-
按
v
进入普通可视模式。 -
使用方向键选择文本。
-
按
d
删除选中的文本,或按y
复制选中的文本。
-
-
退出可视模式:按两下Esc