文本编辑 #
nano - 简单易用的编辑器 #
基本用法 #
bash
# 打开文件
$ nano file.txt
# 打开文件并定位到指定行
$ nano +10 file.txt
# 打开文件并定位到指定行和列
$ nano +10,5 file.txt
# 以只读模式打开
$ nano -v file.txt
# 启用鼠标支持
$ nano -m file.txt
界面说明 #
text
┌─────────────────────────────────────────────────────────────┐
│ GNU nano 5.4 file.txt │
├─────────────────────────────────────────────────────────────┤
│ │
│ 这是文件内容区域 │
│ 你可以在这里编辑文本 │
│ │
│ │
│ │
├─────────────────────────────────────────────────────────────┤
│^G Help ^O WriteOut ^W WhereIs ^K Cut ^T Execute │
│^X Exit ^R ReadFile^\ Justify ^U Paste ^J WhereIs │
└─────────────────────────────────────────────────────────────┘
^ 表示 Ctrl 键
M- 表示 Alt 键
常用快捷键 #
text
┌─────────────────────────────────────────────────────────────┐
│ nano 快捷键 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 文件操作 │
│ Ctrl + G 显示帮助 │
│ Ctrl + O 保存文件 │
│ Ctrl + X 退出编辑器 │
│ Ctrl + R 读取文件 │
│ │
│ 编辑操作 │
│ Ctrl + K 剪切当前行 │
│ Ctrl + U 粘贴 │
│ Ctrl + J 对齐段落 │
│ Ctrl + T 拼写检查 │
│ Ctrl + _ 跳转到指定行 │
│ │
│ 搜索替换 │
│ Ctrl + W 搜索 │
│ Ctrl + \ 搜索并替换 │
│ │
│ 其他 │
│ Ctrl + C 显示光标位置 │
│ Alt + U 撤销 │
│ Alt + E 重做 │
│ │
└─────────────────────────────────────────────────────────────┘
搜索和替换 #
bash
# 搜索
Ctrl + W
输入搜索内容
按 Enter 确认
按 Alt + W 查找下一个
# 搜索并替换
Ctrl + \
输入搜索内容
输入替换内容
按 A 替换所有,按 Y 替换当前
配置文件 #
bash
# ~/.nanorc 配置文件
$ cat ~/.nanorc
set autoindent # 自动缩进
set constantshow # 显示光标位置
set linenumbers # 显示行号
set mouse # 启用鼠标
set softwrap # 软换行
set tabsize 4 # Tab 宽度
set tabstospaces # Tab 转空格
# 语法高亮
include /usr/share/nano/*.nanorc
vim - 强大的文本编辑器 #
模式介绍 #
text
┌─────────────────────────────────────────────────────────────┐
│ vim 模式 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 普通模式 (Normal Mode) │
│ ├── 默认模式 │
│ ├── 用于导航和操作 │
│ └── 按 Esc 进入 │
│ │
│ 插入模式 (Insert Mode) │
│ ├── 用于输入文本 │
│ ├── 按 i/a/o 等进入 │
│ └── 按 Esc 退出 │
│ │
│ 可视模式 (Visual Mode) │
│ ├── 用于选择文本 │
│ ├── 按 v/V/Ctrl+v 进入 │
│ └── 按 Esc 退出 │
│ │
│ 命令模式 (Command Mode) │
│ ├── 用于执行命令 │
│ └── 按 : 进入 │
│ │
└─────────────────────────────────────────────────────────────┘
启动和退出 #
bash
# 打开文件
$ vim file.txt
# 打开多个文件
$ vim file1.txt file2.txt
# 打开文件并定位到指定行
$ vim +10 file.txt
# 打开文件并定位到第一个匹配
$ vim +/pattern file.txt
# 以只读模式打开
$ vim -R file.txt
$ view file.txt
退出方式 #
text
# 在普通模式下
:q 退出(未修改时)
:q! 强制退出(放弃修改)
:w 保存
:wq 保存并退出
:x 保存并退出(仅修改时保存)
ZZ 保存并退出
ZQ 强制退出
插入模式 #
text
┌─────────────────────────────────────────────────────────────┐
│ 进入插入模式 │
├─────────────────────────────────────────────────────────────┤
│ │
│ i 在光标前插入 │
│ I 在行首插入 │
│ a 在光标后插入 │
│ A 在行尾插入 │
│ o 在下方新建一行插入 │
│ O 在上方新建一行插入 │
│ s 删除光标字符后插入 │
│ S 删除整行后插入 │
│ c 修改(配合动作) │
│ C 修改到行尾 │
│ │
└─────────────────────────────────────────────────────────────┘
光标移动 #
text
┌─────────────────────────────────────────────────────────────┐
│ 基本移动 │
├─────────────────────────────────────────────────────────────┤
│ │
│ h 左移一个字符 │
│ j 下移一行 │
│ k 上移一行 │
│ l 右移一个字符 │
│ │
│ w 移动到下一个单词开头 │
│ W 移动到下一个空格分隔的单词 │
│ b 移动到上一个单词开头 │
│ B 移动到上一个空格分隔的单词 │
│ e 移动到当前单词末尾 │
│ E 移动到空格分隔的单词末尾 │
│ │
│ 0 移动到行首 │
│ ^ 移动到行首第一个非空字符 │
│ $ 移动到行尾 │
│ │
│ gg 移动到文件开头 │
│ G 移动到文件末尾 │
│ 10G 移动到第 10 行 │
│ :10 移动到第 10 行 │
│ │
│ % 跳转到匹配的括号 │
│ │
└─────────────────────────────────────────────────────────────┘
屏幕移动 #
text
┌─────────────────────────────────────────────────────────────┐
│ 屏幕移动 │
├─────────────────────────────────────────────────────────────┤
│ │
│ Ctrl + f 向下翻一页 │
│ Ctrl + b 向上翻一页 │
│ Ctrl + d 向下翻半页 │
│ Ctrl + u 向上翻半页 │
│ │
│ H 移动到屏幕顶部 │
│ M 移动到屏幕中间 │
│ L 移动到屏幕底部 │
│ │
│ zz 当前行居中 │
│ zt 当前行置顶 │
│ zb 当前行置底 │
│ │
└─────────────────────────────────────────────────────────────┘
删除操作 #
text
┌─────────────────────────────────────────────────────────────┐
│ 删除操作 │
├─────────────────────────────────────────────────────────────┤
│ │
│ x 删除光标字符 │
│ X 删除光标前一个字符 │
│ dd 删除整行 │
│ D 删除到行尾 │
│ d$ 删除到行尾 │
│ d0 删除到行首 │
│ dw 删除一个单词 │
│ dW 删除到空格 │
│ db 删除到单词开头 │
│ dG 删除到文件末尾 │
│ dgg 删除到文件开头 │
│ d} 删除到段落末尾 │
│ 3dd 删除 3 行 │
│ │
└─────────────────────────────────────────────────────────────┘
复制和粘贴 #
text
┌─────────────────────────────────────────────────────────────┐
│ 复制粘贴 │
├─────────────────────────────────────────────────────────────┤
│ │
│ yy 复制整行 │
│ Y 复制整行 │
│ yw 复制一个单词 │
│ y$ 复制到行尾 │
│ y0 复制到行首 │
│ yG 复制到文件末尾 │
│ 3yy 复制 3 行 │
│ │
│ p 在光标后粘贴 │
│ P 在光标前粘贴 │
│ │
│ dd + p 剪切粘贴 │
│ │
└─────────────────────────────────────────────────────────────┘
撤销和重做 #
text
┌─────────────────────────────────────────────────────────────┐
│ 撤销重做 │
├─────────────────────────────────────────────────────────────┤
│ │
│ u 撤销 │
│ U 撤销当前行所有修改 │
│ Ctrl + r 重做 │
│ │
└─────────────────────────────────────────────────────────────┘
搜索 #
text
┌─────────────────────────────────────────────────────────────┐
│ 搜索 │
├─────────────────────────────────────────────────────────────┤
│ │
│ /pattern 向下搜索 │
│ ?pattern 向上搜索 │
│ n 下一个匹配 │
│ N 上一个匹配 │
│ * 搜索光标下的单词(向下) │
│ # 搜索光标下的单词(向上) │
│ │
│ :noh 取消高亮 │
│ :set hlsearch 启用搜索高亮 │
│ :set nohlsearch 禁用搜索高亮 │
│ │
└─────────────────────────────────────────────────────────────┘
替换 #
text
┌─────────────────────────────────────────────────────────────┐
│ 替换 │
├─────────────────────────────────────────────────────────────┤
│ │
│ :s/old/new/ 替换当前行第一个 │
│ :s/old/new/g 替换当前行所有 │
│ :%s/old/new/g 替换全文所有 │
│ :%s/old/new/gc 替换全文(逐个确认) │
│ :10,20s/old/new/g 替换第 10-20 行 │
│ :.,$s/old/new/g 替换当前行到末尾 │
│ │
│ 标志: │
│ g 全局替换(一行中所有匹配) │
│ c 确认每个替换 │
│ i 忽略大小写 │
│ I 区分大小写 │
│ n 只显示匹配数量 │
│ │
└─────────────────────────────────────────────────────────────┘
可视模式 #
text
┌─────────────────────────────────────────────────────────────┐
│ 可视模式 │
├─────────────────────────────────────────────────────────────┤
│ │
│ v 字符选择 │
│ V 行选择 │
│ Ctrl + v 块选择 │
│ │
│ 选择后操作: │
│ d 删除选中 │
│ y 复制选中 │
│ c 修改选中 │
│ > 增加缩进 │
│ < 减少缩进 │
│ u 转小写 │
│ U 转大写 │
│ │
└─────────────────────────────────────────────────────────────┘
多文件编辑 #
text
┌─────────────────────────────────────────────────────────────┐
│ 多文件编辑 │
├─────────────────────────────────────────────────────────────┤
│ │
│ :e file.txt 打开文件 │
│ :bn 下一个缓冲区 │
│ :bp 上一个缓冲区 │
│ :bd 关闭缓冲区 │
│ :ls 列出缓冲区 │
│ :b1 切换到缓冲区 1 │
│ │
│ 分屏: │
│ :sp file.txt 水平分屏 │
│ :vsp file.txt 垂直分屏 │
│ Ctrl + w h/j/k/l 切换分屏 │
│ Ctrl + w w 循环切换 │
│ Ctrl + w q 关闭当前分屏 │
│ Ctrl + w o 只保留当前分屏 │
│ │
└─────────────────────────────────────────────────────────────┘
配置文件 #
bash
# ~/.vimrc 配置文件
$ cat ~/.vimrc
" 基本设置
set nocompatible " 不兼容 vi
set number " 显示行号
set relativenumber " 相对行号
set cursorline " 高亮当前行
set showcmd " 显示命令
set wildmenu " 命令补全菜单
set showmatch " 显示匹配括号
" 缩进设置
set tabstop=4 " Tab 宽度
set shiftwidth=4 " 缩进宽度
set expandtab " Tab 转空格
set autoindent " 自动缩进
set smartindent " 智能缩进
" 搜索设置
set incsearch " 增量搜索
set hlsearch " 高亮搜索
set ignorecase " 忽略大小写
set smartcase " 智能大小写
" 外观设置
syntax on " 语法高亮
set background=dark " 深色背景
set t_Co=256 " 256 色
" 其他设置
set mouse=a " 启用鼠标
set clipboard=unnamed " 系统剪贴板
set encoding=utf-8 " UTF-8 编码
set fileencoding=utf-8
实用技巧 #
bash
# 加密文件
: X
输入密码
# 执行外部命令
:! ls -la
# 插入外部命令输出
:r !date
# 排序
:sort
# 去重
:sort u
# 执行宏
qa 开始录制宏 a
... 执行操作
q 停止录制
@a 执行宏 a
10@a 执行 10 次
# 重复上次操作
.
# 自动补全
Ctrl + n 向下补全
Ctrl + p 向上补全
小结 #
通过本节学习,你应该掌握:
- nano:简单易用的编辑器
- vim 模式:普通、插入、可视、命令模式
- vim 移动:光标移动、屏幕移动
- vim 编辑:删除、复制、粘贴、撤销
- vim 搜索:搜索和替换
- vim 高级:多文件、分屏、配置
下一步,我们将学习文本处理命令。
最后更新:2026-04-11