文章目录
1. 了解vim
vim是岁Linux和UNIX系统分发的vi编辑器的改进版本。vi / vim的区别简单来说,他们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。
2.vim的基本概念
vim共有12种基本模式,其中6种基本模式,6种条件模式。在这里主要链接3种模式,分别是命令/普通/正常模式(command mode)、插入模式(Insert mode)、底行模式(last line mode)。
2.1 普通模式
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入insert mode下,或者到last line mode
2.2 插入模式
只有在insert mode下,才可以在做文字输入,按下[ESC]键可回到command mode模式下。这一模式是使用最频繁的编辑器。
2.3 底行模式
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。在命令模式下,shift + : 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入 :help vim-modes
3. vim的基本操作
第一次打开vim时,这里的第一次不是初次使用,而是每次刚打开时的状态,vim以命令模式启动。可用于导航、剪切和粘贴,以及其他文本操作。通过单个字符几件操作进入各个其他的模式,访问特定的编辑功能。
- 按 i 键进入插入模式,其中从键盘输入的所有文本变为文件的文本内容。按 ESC 键返回到命令模式。
- 按 v 键(V、Ctrl + v)进入可视化模式,可在其中选多个字符进行文本操作。使用 v 键进行多行,使用Ctrl+v键可选择文本块。v,V,Ctrl + v也可用于退出可视化模式返回普通模式。
- 按 : 键启动扩展命令模式,可执行的任务包括写入文件进行保存,以及退出vim编辑器。
3.1 如何进入vim
使用 vim filename,打开文件,进入vim全屏幕画面。
vim test.c
需注意,进入vim以后处于 [ 普通模式 ],要切换到 [ 插入模式 ] 才能输入文字。
3.2 从普通模式进入插入模式
提示:以下操作都必须在普通模式下才可进行操作
i 从光标当前位置开始输入,进入插入模式
I 光标回到行首开始插入,进入插入模式
a 从光标所在位置的下一个位置开始输入,进入插入模式
A 光标移动到行尾开始插入,进入插入模式
o 从光标所在行的下一行添加新行,进入插入模式
O 从光标所在行上行添加新行,进入插入模式
s 删除光标所在行,进入插入模式
3.3 从插入模式进入普通模式
直接按 [ESC] 键
3.4 从普通模式进入底行模式
[ shift + ; ],其实就是输入 [ : ]
4. vim普通模式命令集
4.1 进入插入模式
在这里推荐三种常用的按键:
i 从光标当前位置开始输入,进入插入模式
a 从光标所在位置的下一个位置开始输入,进入插入模式
o 从光标所在行的下一行添加新行,进入插入模式
4.2 移动光标
h 上
j 下
k 左
l 右
$ 移动到光标所在行的“行尾”
^ 移动到光标所在行的“行首”
w 光标按单词向后移动(光标跳到下一个单词的开头)
b 光标按单词向前移动(光标跳到上一个单词的开头)
e 光标调到下一个单词的尾部
#l 光标移到该行第#个位置,如:5l(跳到该行的第5个位置,这个第几个位置时以光标所在的位置开始)
gg 进入到文本开始
shift + g 进入到文本末端(最后一行的行首)
Ctrl + b 屏幕往后移动一页
Ctrl + f 屏幕往前移动一页
Ctrl + u 屏幕往后移动半页
Ctrl + d 屏幕往前移动半页
4.3 删除文字
x 每按一次,删除光标所在位置的一个单词
X 每按一次删除光标所在位置前面一个字符
dd 删除(剪切)光标所在行
注意:
- 以上三种操作,在操作前面加上 # 都有对应操作删除 # 个/行字符
- #x:删除光标所在位置的后面(包含自己在内)# 个字符
- #X:删除光标所在位置前面 # 个字符
- #dd:从光标所在行开始删除
- dd 操作一般意义上来说起剪切作用,将光标所在行剪切到缓冲区,当配合 p (粘贴) 操作时就为剪切操作,当不配合 p 操作时就为删除操作。
4.4 复制
yw 复制一个单词(复制至缓冲区)
yy 复制光标所在行(复制至缓冲区)
p 将缓冲区内的字符粘贴至光标所在位置。
注意:
- #yw :复制 # 个字到缓冲区
- #yy :拷贝从光标所在行的该行往下数 # 行的文字
4.5 替换
r 替换光标所在字符
R 替换光标所到之处的字符
注意:
所有与 y 有关的复制命令都必须与 p 配合才能完成复制与粘贴功能。
4.6 撤销上一次操作、更改、跳至指定的行
u 如果误执行一个命令,可以马上按下 u,回到上一个操作。按多次 u 可以执行多次恢复。
Ctrl + r 反撤销,如果误按了 u ,但又不想撤销,可以按 Ctrl + r 来反撤销。
cw 更改光标所在处的字到字尾处。这项操作会将光标所在出的字删除,并进入插入模式。
Ctrl + g 列出光标所在行的行号。
#G 移动光标至文本的第 # 行行首。
5. vim的底行模式命令集
使用底行模式之前,一定要先按 ESC 键确定已经处于普通模式,再按 : 冒号即可进入到底行模式
5.1 列出行号、跳到文件中的某一行
set nu 输入 ste nu 后,会在文件中的每一行列列出行号。
# 跳到文件中的第 # 行。在冒号之后输入一个数字#,再按回车键就可以跳到该行了。
5.2 查找字符
/关键字 先按 / 键,再输入想寻找的字符,如果第一次找的关键字不是想要的,可以一直按 n 会往后寻找到要的关键字为止。
?关键字 先按?键,再输入想寻找的字符,如果第一次找的关键字不是想要的,可以一直按 n 会往前寻找想要的关键字为止。
5.3 保存文件、离开vim
在普通模式下,按[ : ]进入到底行模式,进行一下操作可以执行以下操作,退出vim及保存文件。
:w 保存当前文件
:q 退出vim
:q! 强制退出vim,不保存文件
:wq 保存当前文件,并退出vim
6. 可视化模式执行拖拉和放置
Ctrl + v 进入列视图选中模式
v 进入行视图选中模式
= 缩进模式
gg 光标移动到文件首行
G 光标移动到文件末尾行
gg = G 全文按C语言语法风格缩进对齐
利用方向键选择多个字符进行复制。
7. 最后
在普通模式下:
- :vnew 文件名 进入分屏模式
- Ctrl + ww 光标在两个界面里面切换