文本编辑器
概述
文本编辑器是 Linux 系统中最重要的工具之一。本章介绍几种常用的命令行文本编辑器:Vim、Nano 和其他编辑器。
Vim 编辑器
Vim(Vi IMproved)是最强大的文本编辑器之一,是 Vi 编辑器的增强版本。
为什么学习 Vim?
- 几乎所有 Linux 系统都预装
- 高效的键盘操作
- 强大的文本处理能力
- 高度可定制
- 编程支持
安装 Vim
bash
# Debian/Ubuntu
$ sudo apt install vim
# Fedora
$ sudo dnf install vim
# Arch Linux
$ sudo pacman -S vimVim 的模式
Vim 是模式化编辑器,有以下主要模式:
┌─────────────────────────────────────────────────────────────┐
│ │
│ 普通模式 (Normal) │
│ (默认模式) │
│ │ │
│ ┌───────────────┼───────────────┐ │
│ │ │ │ │
│ i,a,o等 v,V,Ctrl+v : │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 插入模式 │ │ 可视模式 │ │ 命令模式 │ │
│ │ (Insert) │ │ (Visual) │ │(Command) │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │ │ │ │
│ Esc Esc Enter/Esc │
│ │ │ │ │
│ └───────────────┴───────────────┘ │
│ │ │
│ ▼ │
│ 普通模式 │
│ │
└─────────────────────────────────────────────────────────────┘启动和退出
bash
# 打开文件
$ vim filename.txt
# 打开到指定行
$ vim +10 filename.txt
# 打开并搜索
$ vim +/pattern filename.txt
# 以只读模式打开
$ vim -R filename.txt
$ view filename.txt退出 Vim
| 命令 | 功能 |
|---|---|
:q | 退出(未修改) |
:q! | 强制退出(丢弃修改) |
:w | 保存 |
:wq | 保存并退出 |
:x | 保存并退出(同 :wq) |
ZZ | 保存并退出(普通模式) |
ZQ | 强制退出(普通模式) |
普通模式操作
光标移动
| 按键 | 功能 |
|---|---|
h | 左移一个字符 |
j | 下移一行 |
k | 上移一行 |
l | 右移一个字符 |
w | 下一个单词开头 |
b | 上一个单词开头 |
e | 当前/下一个单词结尾 |
0 | 行首 |
^ | 行首(非空白字符) |
$ | 行尾 |
gg | 文件开头 |
G | 文件结尾 |
5G | 跳到第 5 行 |
Ctrl+f | 下一页 |
Ctrl+b | 上一页 |
Ctrl+d | 下半页 |
Ctrl+u | 上半页 |
进入插入模式
| 按键 | 功能 |
|---|---|
i | 在光标前插入 |
I | 在行首插入 |
a | 在光标后插入 |
A | 在行尾插入 |
o | 在下方新建一行 |
O | 在上方新建一行 |
s | 删除字符并插入 |
S | 删除整行并插入 |
删除操作
| 按键 | 功能 |
|---|---|
x | 删除光标处字符 |
X | 删除光标前字符 |
dd | 删除整行 |
dw | 删除到单词结尾 |
d$ 或 D | 删除到行尾 |
d0 | 删除到行首 |
dG | 删除到文件结尾 |
dgg | 删除到文件开头 |
5dd | 删除 5 行 |
复制和粘贴
| 按键 | 功能 |
|---|---|
yy | 复制整行 |
yw | 复制单词 |
y$ | 复制到行尾 |
5yy | 复制 5 行 |
p | 粘贴到光标后/下一行 |
P | 粘贴到光标前/上一行 |
撤销和重做
| 按键 | 功能 |
|---|---|
u | 撤销 |
U | 撤销整行的修改 |
Ctrl+r | 重做 |
. | 重复上一个操作 |
搜索和替换
bash
# 搜索
/pattern # 向下搜索
?pattern # 向上搜索
n # 下一个匹配
N # 上一个匹配
* # 搜索光标处的单词
# 替换(命令模式)
:s/old/new/ # 替换当前行第一个
:s/old/new/g # 替换当前行所有
:%s/old/new/g # 替换全文所有
:%s/old/new/gc # 替换全文所有,逐个确认
:5,10s/old/new/g # 替换第 5-10 行可视模式
bash
v # 字符选择
V # 行选择
Ctrl+v # 块选择(矩形)
# 选择后可以执行操作
d # 删除选中内容
y # 复制选中内容
> # 向右缩进
< # 向左缩进命令模式
bash
:w filename # 另存为
:r filename # 读入文件内容
:e filename # 打开另一个文件
:!command # 执行外部命令
:r !command # 插入命令输出
:set number # 显示行号
:set nonumber # 隐藏行号
:set hlsearch # 高亮搜索结果
:set nohlsearch # 取消高亮
:noh # 临时取消高亮多窗口操作
bash
:split filename # 水平分割
:vsplit filename # 垂直分割
:sp # 水平分割当前文件
:vsp # 垂直分割当前文件
Ctrl+w w # 切换窗口
Ctrl+w h/j/k/l # 向左/下/上/右切换
Ctrl+w c # 关闭当前窗口
Ctrl+w o # 只保留当前窗口多标签页
bash
:tabnew filename # 新标签页打开文件
:tabn # 下一个标签页
:tabp # 上一个标签页
gt # 下一个标签页
gT # 上一个标签页
:tabclose # 关闭标签页常用配置
编辑 ~/.vimrc:
vim
" 显示行号
set number
" 语法高亮
syntax on
" 自动缩进
set autoindent
set smartindent
" Tab 设置
set tabstop=4
set shiftwidth=4
set expandtab
" 搜索设置
set hlsearch
set incsearch
set ignorecase
set smartcase
" 显示光标位置
set ruler
" 高亮当前行
set cursorline
" 显示匹配括号
set showmatch
" 编码设置
set encoding=utf-8
" 启用鼠标
set mouse=a
" 主题
colorscheme desertNano 编辑器
Nano 是一个简单易用的文本编辑器,适合初学者。
安装 Nano
bash
# 通常已预装,如需安装
$ sudo apt install nano基本使用
bash
# 打开文件
$ nano filename.txt
# 打开到指定行
$ nano +10 filename.txt常用快捷键
屏幕底部会显示常用快捷键,^ 表示 Ctrl 键。
| 快捷键 | 功能 |
|---|---|
Ctrl+O | 保存文件 |
Ctrl+X | 退出 |
Ctrl+K | 剪切整行 |
Ctrl+U | 粘贴 |
Ctrl+W | 搜索 |
Ctrl+\ | 搜索替换 |
Ctrl+G | 显示帮助 |
Ctrl+C | 显示光标位置 |
Ctrl+_ | 跳转到指定行 |
Alt+U | 撤销 |
Alt+E | 重做 |
Ctrl+A | 跳到行首 |
Ctrl+E | 跳到行尾 |
Alt+\ | 跳到文件开头 |
Alt+/ | 跳到文件结尾 |
选择和复制
bash
Alt+A # 开始选择
移动光标 # 扩展选择
Ctrl+K # 剪切选中内容
Alt+6 # 复制选中内容
Ctrl+U # 粘贴Nano 配置
编辑 ~/.nanorc:
bash
# 显示行号
set linenumbers
# 自动缩进
set autoindent
# Tab 转空格
set tabstospaces
set tabsize 4
# 平滑滚动
set smooth
# 启用鼠标
set mouse
# 语法高亮(通常已默认启用)
include "/usr/share/nano/*.nanorc"其他编辑器
Emacs
强大的可扩展编辑器,功能丰富。
bash
# 安装
$ sudo apt install emacs
# 启动
$ emacs filename.txt
# 终端模式
$ emacs -nw filename.txt基本操作
Ctrl+x Ctrl+s- 保存Ctrl+x Ctrl+c- 退出Ctrl+g- 取消命令
Micro
现代化的终端编辑器,易于使用。
bash
# 安装
$ sudo apt install micro
# 使用
$ micro filename.txt特点:
- 类似常规编辑器的快捷键(Ctrl+S 保存,Ctrl+Q 退出)
- 语法高亮
- 鼠标支持
- 插件系统
ne (Nice Editor)
简单易用的编辑器。
bash
$ sudo apt install ne
$ ne filename.txt编辑器选择建议
| 场景 | 推荐 |
|---|---|
| 快速编辑配置文件 | Nano |
| 日常开发工作 | Vim / VS Code |
| 远程服务器编辑 | Vim |
| 系统管理任务 | Vim / Nano |
| 学习 Unix 文化 | Vim / Emacs |
Vim 学习建议
使用 vimtutor
bash$ vimtutor交互式教程,30 分钟学会基础。
循序渐进
- 第一周:学会移动和基本编辑
- 第二周:学习搜索和替换
- 第三周:学习可视模式和窗口
- 持续:学习更多技巧
在实践中学习
- 强制自己使用 Vim
- 遇到重复操作就找更好的方法
小结
本章介绍了 Linux 常用的文本编辑器:
- Vim:功能强大,学习曲线陡峭,但效率极高
- Nano:简单易用,适合初学者和快速编辑
- 其他选择:Emacs、Micro 等
建议至少掌握一种命令行编辑器的基本操作,Vim 的基础知识在系统管理工作中特别有用。
上一章:管道与过滤器
下一章:文本处理工具