跳转至

05 - Vim / nano 编辑器使用

前提条件

  • 已完成 Debian 12 Bookworm 基础安装 + apt 源优化 + 时间同步
  • 以 root 身份登录,或 ops 用户执行 sudo -i 切换至 root 环境
  • 虚拟机环境:VMware Workstation Pro,已安装 open-vm-tools
  • 熟悉基本的 Linux 命令行操作(cdlsmkdir 等)

详细步骤

1. nano —— 简单,适合新手

Debian 默认已安装 nano,直接使用:

nano /etc/hosts

常用快捷键(nano 底部有提示栏):

操作 快捷键 说明
保存当前文件 Ctrl + O 回车确认文件名
保存并退出 Ctrl + OEnterCtrl + X 最常用组合
不保存退出 Ctrl + X 若有修改会询问是否保存
搜索 Ctrl + W 输入关键字,回车查找
搜索并替换 Ctrl + \ 输入原文和替换文
跳转到行号 Ctrl + _ 输入行号后回车
撤销 Alt + U 撤销上一步修改
重做 Alt + E 恢复被撤销的操作
显示行号 Alt + N 切换显示 / 隐藏行号

2. vim —— 功能强大,生产环境首选

Debian 默认安装的是轻量版 vim-tiny,建议升级为完整版:

apt install -y vim

Vim 三种模式:

模式 进入方式 主要用途
普通模式(Normal) 默认启动 / Esc 移动光标、删除、复制、粘贴
插入模式(Insert) i / a / o / O 输入与编辑文字
命令行模式(Command) 普通模式下按 : 保存、退出、搜索替换、设置选项

普通模式常用命令:

功能 命令 说明
光标移动 h j k l 左下上右
行首 / 行尾 0 / $
文件首 / 文件尾 gg / G
删除字符 x 删除光标处字符
删除行 dd / 5dd 删除 1 行 / 5 行
删除单词 dw
复制行 yy / 3yy 复制 1 行 / 3 行
粘贴 p / P 光标后 / 光标前粘贴
撤销 / 重做 u / Ctrl+r
搜索 /keyword + Enter n 下一个,N 上一个

命令行模式常用命令:

命令 说明
:w 保存
:q 退出(未修改时)
:wqZZ 保存并退出
:q! 强制退出不保存
:%s/old/new/g 全文替换
:%s/old/new/gc 全文替换(逐个确认)
:set number 临时显示行号
:source ~/.vimrc 重新加载配置

3. 推荐 vimrc 配置

为 ops 用户(或 root)创建基础配置文件:

vim ~/.vimrc

写入以下内容(普通模式下按 i 进入插入模式,粘贴后按 Esc,再输入 :wq 保存退出):

set number              " 显示行号
set relativenumber      " 相对行号(方便多行操作)
set autoindent          " 自动缩进
set smartindent         " 智能缩进
set tabstop=4           " Tab 宽度 4 个空格
set shiftwidth=4        " 缩进宽度 4 个空格
set expandtab           " Tab 转为空格
set cursorline          " 高亮当前行
syntax on               " 语法高亮
set hlsearch            " 搜索结果高亮
set incsearch           " 增量搜索(实时显示匹配)
set ignorecase          " 搜索忽略大小写
set smartcase           " 含大写字母时区分大小写
set backspace=indent,eol,start  " 修复退格键行为

检查点

重新打开任意文件(如 vim /etc/hosts),应看到左侧行号、语法高亮、当前行高亮生效。

4. 编辑器选择建议

场景 推荐编辑器
临时快速修改配置文件 nano
日常运维、脚本编写、批量编辑 vim
需要代码补全、插件支持 neovim(进阶,可选)

vim 学习建议

初学 vim 时可运行内置教程:vimtutor(约 30 分钟完成),覆盖所有基本操作。坚持 2 周后效率将远超 nano。

实践任务

  1. 用 nano 编辑 /etc/hosts,添加一行 192.168.1.100 linuxdc,保存退出
  2. 用 vim 创建文件 ~/test.vimrc,输入上面推荐配置,保存退出
  3. 用 vim 打开 /etc/apt/sources.list,练习查找替换(把一个镜像地址替换成另一个镜像地址)
  4. 在 vim 中练习:打开文件 → 插入模式输入文字 → Escdd 删除一行 → u 撤销 → :wq 保存退出

自测问题

1. nano 中如何快速保存并退出而不提示确认?

Ctrl+O 保存(直接回车确认文件名)→ Ctrl+X 退出。若文件未修改,直接 Ctrl+X 即可退出无需确认。若已修改但想保存并退出,也可以直接 Ctrl+X,nano 会询问是否保存,按 Y 后回车即完成。

2. vim 中如何在不进入插入模式的情况下删除当前行?

在普通模式下按 dd 即可删除当前行并将其存入寄存器(可用 p 粘贴找回)。若要删除多行,在 dd 前加数字,如 5dd 删除当前及之后共 5 行。

3. vim 的 :%s/old/new/g 命令的作用是什么?加 c 参数后有何不同?

:%s/old/new/g 表示在整个文件(%)范围内,将所有(g = global)old 字符串替换为 new。加 c 参数(即 :%s/old/new/gc)后,每处替换前都会高亮显示匹配内容并询问是否替换(y 替换、n 跳过、a 全部替换、q 退出),适合需要逐个审查的场景,防止误替换重要内容。

4. 如何让 vim 默认显示行号和语法高亮?

在用户主目录创建 ~/.vimrc 文件并写入:

set number
syntax on

该文件在每次 vim 启动时自动加载,无需每次手动执行 :set number。若要对系统所有用户生效,可写入 /etc/vim/vimrc.local

总结

nano 适合快速、临时编辑;vim 是 Linux 运维人员的核心工具,熟练掌握后能极大提升配置文件管理效率。本章配置的 ~/.vimrc 是后续大量配置文件编辑操作的基础,建议立即为 ops 用户和 root 用户同步应用。