Linux 常用快捷键及文本编辑器

一、终端/Shell 快捷键

1.1 光标移动

bash 复制代码
# 基本移动
Ctrl + A          # 移动到行首
Ctrl + E          # 移动到行尾
Ctrl + B          # 向左移动一个字符(同左箭头)
Ctrl + F          # 向右移动一个字符(同右箭头)
Alt + B           # 向左移动一个单词
Alt + F           # 向右移动一个单词

# 跳转
Ctrl + XX         # 在当前光标和行首之间跳转
Esc + T           # 交换光标前两个单词的位置

1.2 编辑操作

bash 复制代码
# 删除
Ctrl + H          # 删除光标前一个字符(同Backspace)
Ctrl + D          # 删除光标后一个字符(如果没有字符则退出终端)
Ctrl + W          # 删除光标前一个单词
Alt + D           # 删除光标后一个单词
Ctrl + U          # 删除从光标到行首的内容
Ctrl + K          # 删除从光标到行尾的内容
Ctrl + Y          # 粘贴刚才删除的内容

# 复制粘贴(部分终端支持)
Ctrl + Shift + C   # 复制选中文本
Ctrl + Shift + V   # 粘贴文本

# 其他编辑
Ctrl + T          # 交换光标前后两个字符
Ctrl + _          # 撤销上一次编辑操作

1.3 历史命令

bash 复制代码
Ctrl + P          # 上一个命令(同上箭头)
Ctrl + N          # 下一个命令(同下箭头)
Ctrl + R          # 反向搜索历史命令
  # 按Ctrl+R后输入关键词搜索
  # 再次按Ctrl+R继续向前搜索
  # Ctrl+G退出搜索
Ctrl + S          # 正向搜索历史命令(需先禁用stty -ixon)
Alt + .           # 插入上一个命令的最后一个参数
Alt + 0-9 Alt + . # 插入历史命令的第N个参数
!!                # 执行上一条命令
!$                # 上一条命令的最后一个参数
!string           # 执行最近以string开头的命令

1.4 进程控制

bash 复制代码
Ctrl + C          # 终止当前运行的程序
Ctrl + Z          # 暂停当前程序(挂起)
  # 暂停后可以使用:
  fg              # 恢复前台运行
  bg              # 后台继续运行
  jobs            # 查看后台任务
Ctrl + D          # 发送EOF(文件结束符),退出当前shell
Ctrl + L          # 清屏(同clear命令)
Ctrl + S          # 暂停屏幕输出(需配合Ctrl+Q恢复)
Ctrl + Q          # 恢复屏幕输出

1.5 标签页与窗口

bash 复制代码
# 通用终端快捷键
Ctrl + Shift + T   # 新建标签页
Ctrl + Shift + W   # 关闭当前标签页
Ctrl + PageUp      # 切换到上一个标签页
Ctrl + PageDown    # 切换到下一个标签页
Ctrl + Shift + N   # 新建终端窗口
Ctrl + Shift + Q   # 关闭终端窗口

# GNOME Terminal特有
F11               # 全屏切换
Ctrl + Shift + F   # 搜索
Ctrl + Shift + +   # 放大字体
Ctrl + -          # 缩小字体
Ctrl + 0          # 恢复默认字体大小

1.6 自动补全与帮助

bash 复制代码
Tab               # 自动补全命令/文件名/路径
Tab Tab           # 显示所有可能的补全选项
Alt + ?           # 显示所有可能的补全(同按两次Tab)
Alt + *           # 插入所有可能的补全
man 命令          # 查看命令手册
命令 --help       # 查看命令帮助
Ctrl + Alt + H    # 在终端显示快捷键帮助(部分终端)

二、Vim 文本编辑器

2.1 Vim的基本概念

Vim是一个模式编辑器,主要分为四种模式,其模式架构如下:

bash 复制代码
普通模式 (Normal Mode)
  ├── 插入模式 (Insert Mode)
  ├── 可视模式 (Visual Mode)
  └── 命令模式 (Command-line Mode)

2.1.1 普通模式 (Normal Mode)

普通模式是Vim的默认模式,当打开Vim时,就处于普通模式。在这个模式下,键盘上的每个键都是一个命令,而不是直接输入字符。

  • 特点:

    • 键盘按键执行命令,而非输入文本。
    • 可以高效地移动、编辑文本。
    • 是其他所有模式的"家"模式。
    • 大多数时间应该停留在此模式。
  • 如何进入普通模式

    bash 复制代码
    " 启动Vim时默认进入普通模式
    vim filename.txt       " 启动后即为普通模式
    
    " 从其他模式返回普通模式:
    ESC                    " 最常用,左上角键
    Ctrl+[                 " 替代ESC,更易按到(无需移动手)
    Ctrl+C                 " 在某些情况下也有效(但不是所有情况)

2.1.2 插入模式(Insert Mode)

在插入模式下,可以像在普通文本编辑器中一样输入文本。

  • 如何进入插入模式

    在普通模式下,按以下键可以进入插入模式:

    • i:在光标前插入
    • I:在行首插入
    • a:在光标后插入
    • A:在行尾插入
    • o:在当前行下方新建一行并插入
    • O:在当前行上方新建一行并插入
  • 如何退出插入模式

    • Esc键或Ctrl+[返回普通模式。

2.1.3 可视模式(Visual Mode)

可视模式用于选择文本。可以选择字符、行或块,然后对选中的文本执行操作,比如删除、复制、替换等。

  • 如何进入可视模式

    在普通模式下,按以下键进入不同的可视模式:

    • v:字符可视模式(以字符为单位选择)
    • V:行可视模式(以行为单位选择)
    • Ctrl+v:块可视模式(矩形选择)
  • 在可视模式中可以:

    • 移动光标来调整选择区域。
    • 对选中的文本执行命令,比如d(删除)、y(复制)、c(修改)等。
  • 如何退出可视模式

    • Esc键或v、V、Ctrl+v(如果当前已经是对应的可视模式,则按一次退出)返回普通模式。

2.1.4 命令模式(Command Mode)

在命令模式下,可以输入命令来执行各种操作,比如保存文件、退出Vim、搜索替换等。

  • 如何进入命令模式

    在普通模式下,按:键进入命令模式。

  • 常用命令:

    • 保存::w
    • 退出::q
    • 保存并退出::wq:x
    • 强制退出(不保存)::q!
    • 搜索:/关键词(然后按n下一个,N上一个)
    • 换::%s/旧文本/新文本/g(全局替换)
  • 如何退出命令模式

    • 执行完命令后自动返回普通模式,或者按Esc键取消命令并返回普通模式。

2.2 启动与退出

bash 复制代码
# 启动Vim
vim               # 启动Vim
vim file.txt      # 打开文件
vim +10 file.txt  # 打开文件并跳转到第10行
vim +/pattern file.txt  # 打开文件并搜索pattern

# 退出Vim
:q                # 退出(如果文件已保存)
:q!               # 强制退出,不保存修改
:wq               # 保存并退出
:x                # 保存并退出(仅当有修改时保存)
ZZ                # 保存并退出(普通模式下)
ZQ                # 不保存退出(普通模式下)

2.3 模式切换

模式切换关系图:

模式切换命令:

bash 复制代码
i                # 插入模式(在光标前插入)
I                # 在行首插入
a                # 在光标后插入
A                # 在行尾插入
o                # 在当前行下方新建一行插入
O                # 在当前行上方新建一行插入
v                # 进入可视模式(字符选择)
V                # 进入可视模式(行选择)
Ctrl + V         # 进入可视块模式
:                # 进入命令模式
ESC              # 返回普通模式

模式切换总结:

  • 普通模式 → 插入模式:按i、I、a、A、o、O等键
  • 插入模式 → 普通模式:按EscCtrl+[
  • 普通模式 → 可视模式:按v、V、Ctrl+v
  • 可视模式 → 普通模式:按Escv、V、Ctrl+v(如果当前已经是对应的可视模式,则按一次退出)
  • 普通模式 → 命令模式:按:
  • 命令模式 → 普通模式:按Esc或执行命令后自动返回

2.4 光标移动

bash 复制代码
# 基本移动
h     " 左
j     " 下
k     " 上
l     " 右
0     " 行首
$     " 行尾
^     " 行首第一个非空白字符
_     " 行首第一个非空白字符(同^)
g_    " 行尾最后一个非空白字符

# 单词移动
w     " 移动到下一个单词开头
W     " 移动到下一个单词开头(忽略标点)
e     " 移动到单词结尾
E     " 移动到单词结尾(忽略标点)
b     " 移动到上一个单词开头
B     " 移动到上一个单词开头(忽略标点)
ge    " 移动到上一个单词结尾
gE    " 移动到上一个单词结尾(忽略标点)

# 行内移动
f{char}   " 向前移动到字符char
F{char}   " 向后移动到字符char
t{char}   " 向前移动到字符char前
T{char}   " 向后移动到字符char前
;     " 重复上次f/F/t/T命令
,     " 反向重复上次f/F/t/T命令

# 屏幕移动
gg    " 文件开头
G     " 文件末尾
:{n}  " 跳转到第n行,如:10
{n}G  " 跳转到第n行,如10G
Ctrl+f " 向下翻页
Ctrl+b " 向上翻页
Ctrl+d " 向下翻半页
Ctrl+u " 向上翻半页
H     " 屏幕顶部
M     " 屏幕中间
L     " 屏幕底部
zt    " 当前行置顶
zz    " 当前行置中
zb    " 当前行置底

# 标记和跳转
m{a-zA-Z} " 设置标记,如ma
`{mark}   " 跳转到标记的精确位置,如`a
'{mark}   " 跳转到标记行的行首,如'a
``    " 返回上次跳转的位置
''    " 返回上次跳转的行
`.    " 返回上次修改的位置
'.    " 返回上次修改的行
:marks   " 显示所有标记
:delmarks a b c  " 删除标记

2.5 编辑操作

bash 复制代码
# 删除操作
x     " 删除当前字符
X     " 删除前一个字符
dd    " 删除当前行
D     " 删除到行尾(同d$)
d{motion} " 删除移动命令覆盖的区域
  dw      " 删除一个单词
  d$      " 删除到行尾
  d0      " 删除到行首
  dgg     " 删除到文件开头
  dG      " 删除到文件末尾
  di"     " 删除引号内的内容
  da"     " 删除引号及内容
  dit     " 删除HTML标签内的内容
  dat     " 删除HTML标签及内容

# 复制操作
yy    " 复制当前行
Y     " 复制当前行(同yy)
y{motion} " 复制移动命令覆盖的区域
  yw      " 复制一个单词
  y$      " 复制到行尾
  ygg     " 复制到文件开头
  yG      " 复制到文件末尾

# 粘贴操作
p     " 粘贴到光标后
P     " 粘贴到光标前
]p    " 粘贴并自动缩进
]P    " 粘贴到光标前并自动缩进

# 剪切板
"*y   " 复制到系统剪贴板
"+y   " 复制到系统剪贴板(Linux)
"*p   " 从系统剪贴板粘贴
"+p   " 从系统剪贴板粘贴(Linux)

# 撤销与重做
u     " 撤销
Ctrl+r " 重做
U     " 撤销整行修改
:undo " 撤销树
:redo " 重做

# 重复操作
.     " 重复上一次修改操作
@:    " 重复上一次命令
@@    " 重复上一次宏

2.6 搜索替换

bash 复制代码
# 搜索
/pattern      " 向前搜索pattern
?pattern      " 向后搜索pattern
n             " 下一个匹配项
N             " 上一个匹配项
*             " 向前搜索当前光标下的单词
#             " 向后搜索当前光标下的单词
/\<word\>     " 搜索完整单词word
/\v           " 使用very magic模式(简化正则)
/\c           " 忽略大小写
/\C           " 大小写敏感
/\V           " 原义匹配(关闭特殊字符)

# 搜索高亮
:set hlsearch " 启用搜索高亮
:set nohlsearch " 禁用搜索高亮
:nohlsearch   " 临时关闭高亮
:set incsearch " 实时搜索

# 替换
:s/old/new/           " 当前行第一个old替换为new
:s/old/new/g          " 当前行所有old替换为new
:%s/old/new/g         " 全文替换
:%s/old/new/gc        " 全文替换,每次询问
:10,20s/old/new/g     " 10-20行替换
:'<,'>s/old/new/g     " 可视模式下选择区域替换
:%s/\<old\>/new/g     " 替换完整单词
:%s/old/new/ge        " 忽略错误继续替换

# 正则表达式替换示例
:%s/\s\+$//           " 删除行尾空白
:%s/^\s\+//           " 删除行首空白
:%s/\n\{3,}/\r\r\r/   " 多个空行替换为三个空行
:%s/foo/bar/g         " 所有foo替换为bar
:%s/\d\+/NUM/g        " 所有数字替换为NUM
相关推荐
wniuniu_16 分钟前
运维运维运维
java·运维·dubbo
柏木乃一18 分钟前
库的制作与原理(2)ELF格式,程序地址空间part2,程序加载
linux·服务器·c++·进程·elf··进程地址空间
杜子不疼.23 分钟前
【Linux】基础IO(三):文件描述符与重定向
linux·c语言·开发语言·人工智能
猫猫的小茶馆2 小时前
【Linux 驱动开发】七. 中断下半部
linux·arm开发·驱动开发·stm32·嵌入式硬件·mcu
cyber_两只龙宝2 小时前
LVS-DR模式实验配置及原理详解
linux·网络·云原生·智能路由器·lvs·dr模式
好好学习啊天天向上7 小时前
C盘容量不够,python , pip,安装包的位置
linux·python·pip
二十雨辰8 小时前
[python]-循环语句
服务器·python
li_wen018 小时前
文件系统(八):Linux JFFS2文件系统工作原理、优势与局限
大数据·linux·数据库·文件系统·jffs2
wypywyp8 小时前
2.虚拟机一直显示黑屏,无法打开,可能是分配的硬盘空间不够
linux·运维·服务器
SongYuLong的博客8 小时前
TL-WR710N-V2.1 硬改刷机OpenWRT源码编译固件
linux·物联网·网络协议