目录
一、Vi和Vim快速入门
(一)vi和vim的基本介绍
(二)vi和vim常用的三种模式
1、正常模式
2、插入模式
3、命令行模式
(三)vi和vim基本使用
二、Vi和Vim快捷键
(一)模式切换快捷键
(二)光标移动(普通模式)
1. 字符级
2. 单词跳转
3. 行内快速跳转
4. 行间跳转
5. 括号匹配
(三)删除操作(d = delete)
(四)复制粘贴(y = yank)
(五)撤销 & 重做
(六)替换修改(c=change)
(七)可视模式(选中文本)
(八)查找(普通模式)
(九)末行命令(: 开头)
(十)实用组合快捷键
学习来源于B站韩顺平老师 【【小白入门 通俗易懂】韩顺平 一周学会Linux】
一、Vi和Vim快速入门
(一)vi和vim的基本介绍

Linux 系统会内置vi文本编辑器,类似Windows的记事本。
Vim具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
(二)vi和vim常用的三种模式

1、正常模式
以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上 下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用『复制、粘贴』来处理你的文件数据。
2、插入模式
按下i,I,o,O,a,A,r,R等任何一个字母之后才会进人编辑模式,一般来说按i即可。
3、命令行模式
先按ESC,再输入冒号“ : ”
在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim、显示行号等的动作则是在此模式中达成的!
(三)vi和vim基本使用
使用vim开发一个Hello.java程序,保存步骤说明和演示。
实际工作中,以Xshell为主。



二、Vi和Vim快捷键
(一)模式切换快捷键
| i | 光标前插入 |
| I | 行首插入 |
| a | 光标后插入 |
| A | 行尾插入 |
| o | 下方新开一行插入 |
| O | 上方新开一行插入 |
| s | 删除当前字符并插入 |
| S | 删除整行并插入 |
| Esc | 任意插入模式 → 普通模式 |
| : | 普通模式 → 末行模式 |
(二)光标移动(普通模式)
1. 字符级
- h 左、j 下、k 上、l 右
- 方向键 ←↓↑→ 同样可用
2. 单词跳转
- w:下一个单词开头
- e:当前 / 下个单词结尾
- b:上一个单词开头
- W/E/B:以空格分隔大单词(忽略标点)
3. 行内快速跳转
- 0:行首
- $:行尾
- ^:本行第一个非空字符
- fx:跳到本行下一个字符 x
- Fx:跳到本行上一个字符 x
4. 行间跳转
- gg:文件第一行
- G:文件最后一行
- nG / :n:跳到第 n 行(如 10G 到第 10 行)
- Ctrl+u:向上翻半屏
- Ctrl+d:向下翻半屏
- Ctrl+b:向上翻一整页
- Ctrl+f:向下翻一整页
5. 括号匹配
- %:跳到配对 () {} []
(三)删除操作(d = delete)
语法:d + 范围
- x:删除光标当前字符
- X:删除光标前一个字符
- dd:删除整行
- ndd:删除 n 行(3dd 删除 3 行)
- dw:删除光标到单词末尾
- d0:删到行首
- d$ / D:删到行尾
- dG:删除光标到文件末尾
- dgg:删除光标到文件开头
(四)复制粘贴(y = yank)
- yy:复制当前整行
- nyy:复制 n 行
- yw:复制一个单词
- y0:复制到行首
- y$:复制到行尾
- p:粘贴到光标下方
- P:粘贴到光标上方
剪切 = 删除 + 粘贴
dd 删除行后直接 p 就是剪切粘贴
(五)撤销 & 重做
- u:撤销上一步
- Ctrl+r:反撤销 / 重做
- U:撤销当前行所有修改
(六)替换修改(c=change)
删除内容并直接进入插入模式
- cc:清空当前行并插入
- cw:删除当前单词,插入
- c$ / C:删到行尾,插入
- r:替换光标单个字符(不用进插入)
- R:批量替换模式,覆盖文字
(七)可视模式(选中文本)
普通模式下按:
- v:字符可视,逐字符选中
- V:行可视,整行选中
- Ctrl+v:块可视,矩形选中
选中后常用操作:
- d 删除选中
- y 复制选中
- > 缩进
- < 取消缩进
(八)查找(普通模式)
- /关键词:向下搜索,回车确认
- ?关键词:向上搜索
- n:跳到下一个匹配
- N:跳到上一个匹配
- *:搜索光标下当前单词
- #:反向搜索当前单词
高亮关闭
末行::set nohlsearch
(九)末行命令(: 开头)
保存退出
- :w 保存
- :w filename 另存为
- :q 退出(未修改才可)
- :wq / 😡 保存并退出
- :q! 强制退出,丢弃修改
- :wq! 强制保存退出(只读文件)
替换语法
:s/old/new 本行第一个替换 :s/old/new/g 本行全部替换 :%s/old/new/g 全文全部替换 :%s/old/new/gc 全文替换,逐个确认
行操作
- :n,m d 删除 n~m 行(:5,10d 删除 5 到 10 行)
- :n,m y 复制 n~m 行
- :set nu 显示行号
- :set nonu 关闭行号
- :set ts=4 设置 Tab 为 4 空格
多文件
- :e 文件名 打开新文件
- :sp 水平分屏
- :vsp 垂直分屏 分屏切换:Ctrl+w 再按 h/j/k/l



