vim及其模式的操作
vim介绍
Vim是一个强大的文本编辑器,全称叫Vi IMproved,而vi则是Visual Interface的缩写,他们处理都是ASCII码字符数据;vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。
vim的基础操作
vim打开文件操作
操作 | 作用 |
vim 文件名 | 打开文件,如果没有该文件就自动创建一个文件 |
vim -r 文件名 | 当vim崩溃时,打开因崩溃没保存的文件 |
vim -R 文件名 | 以只读方式打开文件 |
vim -On 文件名1 文件名2 ... | 左右分屏并同时打开或创建文件夹1,文件夹2... |
vim -on 文件名1 文件名2 ... | 上下分屏并同时打开或创建文件夹1,文件夹2... |
vim的三种模式功能
正常/普通/命令模式(Normal mode)
控制屏幕光标的移动,字符,字或行的删除,移动复制某区域及进入Insert mode下,或到last line mode。
插入模式(Insert mode)
只有在Insert mode下,才能进行文本输入,按【esc】键返回命令行模式。
末行/底行模式(last line mode)
用于文本的保存退出,也可以进行文件替换,找字符串,列行号等操作
vim的三种基础模式的切换方式
vim的操作
注意,所有的 shift + 小写字母 命令都可自行切换成大写输入,如 shift 键 + a 命令可直接通过键盘的大写输入输入 A 也可实现命令
(输入前请确认键盘的大小写输入)
命令行模式的操作
如何进入命令行模式?任意模式下点按esc键即可进入命令行模式。
进入命令行模式后,可直接通过键盘输入指定命令实现指定功能
光标操作
操作 | 作用 |
h | 左 |
j | 下 |
k | 上 |
l | 右 |
shift 键 + g | 移动到文本末尾 |
gg | 移动到文本首位 |
shift 键 + 4 | 移动到所在光标行的行尾 |
shift 键 + 6 | 移动到所在光标行的行首 |
w | 光标移动到下一个词(字段)的首字母(字) |
e | 光标移动到下一个词(字段)的结尾字母(字) |
b | 光标回到上一个词(字段)的首字母(字) |
n + l | n为数字,光标移到该行第n个字符位置 |
ctrl 键 + b | 屏幕向上移一页 |
ctrl 键 + f | 屏幕向下移一页 |
ctrl 键 + u | 屏幕向上移半页 |
ctrl 键 + d | 屏幕向下移半页 |
删除操作
操作 | 作用 |
x | 删除光标所在字符 |
n + x | n为数字,删除光标所在位置及之后共n个字符 |
shift 键 + x | 删除光标所在字符的前一个字符 |
n + shift 键 + x | n为数字,删除光标所在位置的前n个字符 |
dd | 删除光标所在行 |
n + dd | n为数字,删除光标所在行及以下共n行 |
复制操作
操作 | 作用 |
yw | 将从光标所在处到行尾复制到缓冲区 |
n + yw | n为数字,将从光标起往后共n个字符复制到缓冲区 |
yy | 将光标所在行复制到缓冲区 |
n + yy | n为数字,将从光标所在行起往下共n行复制到缓冲区 |
p | 将缓冲区内的字符粘贴到光标所在位置(即粘贴功能) |
n + p | n为数字,将缓冲区的字符粘贴n次 |
替换操作
操作 | 作用 |
r + 字符 | 可对光标所在字符进行修改替换 |
n + r + 字符 | n为数字,在当前行内,替换光标起n个字符 |
shift 键 + r | 进入替换功能,在光标处输入时变为替换功能,esc键退出 |
撤销操作
操作 | 作用 |
u | 返回上一次操作 |
shift键 + u | 撤销当前行所有编辑 |
ctrl 键 + r | 撤销 u 的撤销操作 |
更改操作
操作 | 作用 |
cw | 更改光标所在处的字符起到该段字符串尾的字符 |
c + n + w | n为数字,修改光标字符起到其后n个字符串,如c3w为修改三个字符串 |
跳至指定行操作
操作 | 作用 |
ctrl 键 + g | 右下角显示所在行数 |
n + shift 键 + g | n为数字,光标跳转至n行行首 |
窗口操作
注意:关于窗口操作,所有的 ctrl 键 + w + XXX 的操作,都需要先按住 ctrl 键 + w 后再输入后面的字母
操作 | 作用 |
shift 键 + ` | 快速切换光标所在位置字母的大小写 |
ctrl 键 + w + s | 上下分割当前文件 |
ctrl 键 + w + v | 左右分割当前文件 |
ctrl 键 + w + q | 关闭窗口,如果剩最后一个窗口,则退出vim |
ctrl 键 + w + w | 把光标移动到下一个窗口 |
ctrl 键 + w + h/j/k/l | 光标移动到(左、下、上、右)边窗口 |
ctrl 键 + w + H/J/K/L | (左、下、上、右)移动窗口 |
插入模式
如何进入插入模式?可通过命令行模式输入i、a、o等进入插入模式。
进入插入模式后即可对文本进行编辑。
命令行进入插入模式的命令操作
操作 | 作用 |
i | 直接在光标处进入插入模式 |
a | 从光标后一位进入插入模式 |
o | 在光标下边新开一行再进入插入模式 |
shift 键 + i | 从当前行首进入插入模式 |
shift 键 + a | 从当前行尾进入插入模式 |
shift 键 + o | 在光标上边新开一行再进入插入模式 |
底行模式的操作
如何进入底行模式?可通过命令模式下通过输入命令 shift 键 + ; 进入底行模式。
进入底行模式后可在底行输入命令然后按回车键来实现指定功能。
底行模式的基本操作
操作 | 用处 |
w | 保存 |
w! | 强制 |
q | 退出 |
q! | 强制退出 |
wq | 保存并退出 |
wq! | 保存并强制退出 |
set nu | 行号显示 |
set nonu | 取消行号显示 |
n | n为数字,光标跳转至文件的第n行行首 |
/ + 关键字 | 查找关键字,回车键后可通过按 n 跳至下一个关键词位置 |
?+ 关键字 | 查找关键字,回车键后可通过按 n 跳至上一个关键词位置 |
替换操作
操作 | 作用 |
s/a1/a2 | 替换光标所在行的第一个a1成a2 |
s/a1/a2/g | 替换光标所在行的所有a1成a2 |
%s/a1/a2 | 替换所有行的第一个a1成a2 |
%s/a1/a2/g | 替换所有行的a1成a2 |
n1,n2 + s/a1/a2 | n1,n2为数字,替换n1到n2行所有行的第一个a1成a2 |
n1,n2 + s/a1/a2/g | n1,n2为数字,替换n1到n2行所有的a1成a2 |
窗口操作
操作 | 作用 |
sp | 水平分屏 |
vsp | 垂直分屏 |
qall | 同时退出多个屏幕 |
wqall | 同时保存退出多个屏幕 |
vsp 文件名 | 左右分割并打开一个新文件 |
sp 文件名 | 上下分割并打开一个新文件 |
额外知识
当vim文件未保存退出,而是闪退和或直接关闭vim时,再打开该文件会出现以下情况
这是系统自动保存的临时文件,避免了因为意外造成的奋斗很久的成果“付之东流”
此时需要你选择如何处理该文件(看最后一行选项)
O:以只读方式打开文件。
E:不管交换文件,强制编辑文件。
R:复文件(利用交换文件恢复之前的编辑内容)。
D:删除交换文件(如果确认不需要恢复,且不会有冲突)。
Q:退出 Vim,不打开文件。
A:中止当前操作,回到之前的状态。
此外,在之后打开这个文档时还会弹出这个选项框,这是因为你的文件夹中存在着这个文件的隐藏临时文件
如果在保存好文档后,后续打开时想关闭这个选项框,我们可以在当前文件夹下输入 ls -al 查看这个隐藏的临时文件,如我的文档全名加后缀为 a.c,而我的临时文件的名为 .a.c.swp
我们可以通过 rm .a.c.swp 命令来删除 .a.c.swp 这个临时文件,删除后每次进入就不会出现选择栏
批量化注释
批量化注释
原理:通过视图模式,可对文本进行插入修改和删除,而我们可以通过对代码前方加入 // 来实现注释的效果
1.在命令行模式下通过 ctrl 键 + v 进入视图模式(看图片左下角单词为进入视图模式标志)
2.通过h、j、k、l选择区域
刚进入视图模式如1图片一样,接下来通过 h j k l(左下上右)控制方向选择代码,如下图为选择好的
3.shift 键 + i
按完 shift键 + i 就如下图一样
4.直接输入 //
5.按esc退出,即可对之前选择的区域自动进行同样的操作
批量化删除注释
1.命令行模式通过 ctrl 键 + v 进入视图模式
2. h、j、k、l 选择区域,把所有注释都选择
3.按 d 后直接删除
今天的学习就到这吧,下次见( •̀ ω •́ )✧