Skip to content

文本编辑器

概述

文本编辑器是 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 vim

Vim 的模式

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 desert

Nano 编辑器

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 学习建议

  1. 使用 vimtutor

    bash
    $ vimtutor

    交互式教程,30 分钟学会基础。

  2. 循序渐进

    • 第一周:学会移动和基本编辑
    • 第二周:学习搜索和替换
    • 第三周:学习可视模式和窗口
    • 持续:学习更多技巧
  3. 在实践中学习

    • 强制自己使用 Vim
    • 遇到重复操作就找更好的方法

小结

本章介绍了 Linux 常用的文本编辑器:

  • Vim:功能强大,学习曲线陡峭,但效率极高
  • Nano:简单易用,适合初学者和快速编辑
  • 其他选择:Emacs、Micro 等

建议至少掌握一种命令行编辑器的基本操作,Vim 的基础知识在系统管理工作中特别有用。


上一章:管道与过滤器

下一章:文本处理工具