Linux-vim
- 一、什么是vim
- 二、安装
- 三、格式和参数
- 四、案例参考
-
-
- [1. 启动与退出 vim](#1. 启动与退出 vim)
-
- [(1)启动 vim 并编辑文件](#(1)启动 vim 并编辑文件)
- [(2)退出 vim(命令模式下执行)](#(2)退出 vim(命令模式下执行))
-
- 五、报错处理
一、什么是vim
vim 是 Linux/Unix 系统中最核心的文本编辑器之一,全称 Vi IMproved(Vi 编辑器的增强版)。它继承了原始 Vi 编辑器的轻量、高效特性,同时新增了语法高亮、多级撤销、分屏编辑、插件扩展等实用功能,是 Linux 运维、开发、系统管理的 "必备工具"------ 尤其在无图形界面(终端 / SSH 远程)场景下,vim 几乎是无可替代的编辑方案。
二、安装
bash
# Ubuntu/Debian 系列
sudo apt update && sudo apt install vim -y
# CentOS/RHEL 系列
sudo yum install vim -y
# 验证安装(查看版本)
vim --version
三、格式和参数
模式切换
vim 的核心设计是"多模式编辑"------不同模式下,键盘按键的功能完全不同。新手最容易困惑的就是"模式切换",掌握后才能真正上手 vim。
1. 三大核心模式
| 模式 | 作用 | 进入方式 | 退出/切换方式 |
|---|---|---|---|
| 普通模式(Normal) | 核心操作模式:移动光标、复制/粘贴、删除、查找、执行命令(如保存/退出)。 | 启动 vim 后默认进入;或从其他模式按 Esc 键。 |
按 i/a/o 进入插入模式;按 : 进入命令模式。 |
| 插入模式(Insert) | 输入文本:与普通编辑器的"编辑状态"一致,键盘按键直接输入字符。 | 普通模式下按 i(光标前插入)、a(光标后插入)、o(光标下新建行插入)。 |
按 Esc 键返回普通模式。 |
| 命令模式(Command) | 执行高级命令:保存、退出、查找替换、分屏、配置设置等(需输入 : 开头的命令)。 |
普通模式下按 :(光标会跳到屏幕底部输入框)。 |
执行命令后按 Enter,自动返回普通模式;或按 Esc 取消命令。 |
启动默认普通模式,
i/a/o进入编辑(插入模式);编辑完按
Esc回普通,:进入命令行(保存/退出)。
2. 普通模式:核心操作
普通模式是 vim 的"效率核心",所有高频操作(移动、复制、删除)都在此模式下通过快捷键完成,无需鼠标。
(1)光标移动(高频快捷键)
| 快捷键 | 作用 |
|---|---|
h/j/k/l |
左/下/上/右移动光标(替代方向键,手不用离开键盘主区域)。 |
w |
跳到下一个单词的开头(按空格/标点分隔)。 |
b |
跳回上一个单词的开头。 |
$ |
跳到当前行的末尾。 |
^ |
跳到当前行的第一个非空白字符(避免行首空格)。 |
gg |
跳到文件的第一行。 |
G |
跳到文件的最后一行。 |
nG |
跳到第 n 行(如 10G 跳转到第10行,等价于命令模式 :10)。 |
Ctrl+f |
向下翻一页(forward)。 |
Ctrl+b |
向上翻一页(backward)。 |
(2)复制/粘贴/删除(核心编辑动作)
| 快捷键 | 作用 |
|---|---|
yy |
复制当前行("yank",拉取)。 |
nyy |
复制从当前行开始的 n 行(如 3yy 复制当前行+下两行)。 |
dd |
删除当前行("delete",剪切功能------删除后可粘贴)。 |
ndd |
删除从当前行开始的 n 行(如 5dd 删除5行)。 |
p |
粘贴到光标所在行的下方(粘贴复制/删除的内容)。 |
P |
粘贴到光标所在行的上方。 |
x |
删除光标所在位置的单个字符(等价于"删除键")。 |
dw |
删除从光标位置到下一个单词开头的内容(如删除单个单词)。 |
D |
删除从光标位置到当前行末尾的内容。 |
(3)查找与替换
-
查找(普通模式下直接输入):
/关键词:向下查找(如/error查找日志中的"error"),按n跳下一个匹配,N跳上一个。?关键词:向上查找(如?warning从当前位置往上找"warning")。:noh:命令模式下执行,取消查找高亮。
-
替换(命令模式下执行):
bash# 格式::%s/原字符串/新字符串/[选项] :%s/old/new/g # 替换整个文件中所有"old"为"new"(g=global,全局替换) :%s/old/new/gc # 全局替换,但每次替换前询问确认(c=confirm,适合精准替换) :10,20s/old/new/g # 替换第10-20行中的"old"为"new"(局部替换)
3. 插入模式:文本输入(简单直接)
普通模式下按以下键进入插入模式,输入文本即可(和记事本操作一致):
i:在光标前插入(insert)。a:在光标后插入(append)。o:在光标下一行新建行插入(open)。O:在光标上一行新建行插入(大写 O)。Esc:输入完成后按Esc返回普通模式。
命令模式
1. 分屏编辑(同时编辑多个文件)
命令模式下执行,适合对比文件、同时修改关联配置:
- 横向分屏(上下窗口):
split 文件名或:sp 文件名(如:sp /etc/nginx/nginx.conf)。 - 纵向分屏(左右窗口):
vsplit 文件名或:vsp 文件名。 - 分屏切换:
Ctrl+w+w(在多个窗口间循环切换)。 - 关闭当前分屏:
:q(或普通模式按ZZ)。
2. 编辑大文件/日志(高效技巧)
- 快速定位到指定行:命令模式
:行号(如:500跳转到第500行)。 - 删除大段内容:普通模式下先定位到起始行,按
ma标记(a为标记名),再定位到结束行,执行d'a(删除从标记a到当前行的内容)。 - 不打开文件快速替换:
vim -c "%s/old/new/g" -c "wq" 文件名(批量修改配置文件,无需手动编辑)。
3. 自定义配置(~/.vimrc)
vim 的默认配置较简洁,可通过用户配置文件 ~/.vimrc 自定义功能(修改后立即生效,无需重启 vim)。示例常用配置:
bash
# 编辑配置文件
vim ~/.vimrc
# 加入以下内容(复制粘贴即可)
set number # 显示行号
set syntax on # 开启语法高亮
set tabstop=4 # Tab 键缩进4个字符
set shiftwidth=4 # 自动缩进4个字符(代码换行时生效)
set autoindent # 开启自动缩进(复制多行代码时保持缩进一致)
set hlsearch # 查找结果高亮
set incsearch # 实时查找(输入关键词时即时匹配)
set ignorecase # 查找时忽略大小写
set mouse=a # 启用鼠标支持(终端中可点击切换窗口、选中文本)
四、案例参考
1. 启动与退出 vim
(1)启动 vim 并编辑文件
bash
# 1. 编辑已存在的文件(若文件不存在则新建)
vim 文件名 # 例:vim /etc/profile(编辑系统环境变量配置)
# 2. 新建并编辑文件(编辑后保存即创建)
vim new_file.txt
# 3. 启动时定位到文件指定行(适合大文件编辑,如日志文件)
vim +行号 文件名 # 例:vim +100 /var/log/nginx/access.log(直接跳转到第100行)
(2)退出 vim(命令模式下执行)
| 命令 | 作用 |
|---|---|
:q |
退出(仅当文件未修改时生效,若已修改会提示"未保存")。 |
:q! |
强制退出,丢弃所有修改(慎用!适合编辑错误文件时放弃更改)。 |
:w |
保存文件(不退出,继续编辑)。 |
:w 新文件名 |
另存为新文件(如 :w backup_profile.txt,原文件不变)。 |
:wq |
保存并退出(最常用,等价于 :x)。 |
ZZ |
普通模式下直接按 ZZ(大写),快速保存并退出(无需进入命令模式)。 |