Linux学习笔记——vim

vim分为三种模式,分别是普通模式、编辑模式和命令模式

一、简述三种模式
(1)普通模式
使用vim打开一个文档文件时,首先进入的就是普通模式。在普通模式中用户可以使用↑↓←→键来移动光标,可以使用“删除字符"或”删除整行“来处理文件内容,还可以复制粘贴用户的文件数据
(2)编辑模式
普通模式中可以进行删除、复制、粘贴等操作,但是却无法向文档中输入字符。此时可以按下i、I、o、O、A、a、r、R其中之一,就进入了编辑模式,这时屏幕左下面出现insert或者replace的字样,这时就可以向文档中输入字符。在整个过程结束后,按下Esc就可以返回到普通模式
(3)命令模式
在普通模式中输入 “:”、"?"、"/",编译器就从普通模式进入了命令模式,此时屏幕左下角将出现":"、"/"、"?"的标志。在命令模式下,用户可以搜索、替换、高亮 显示、行号显示、保存、退出甚至可以执行shell命令等操作

二、vim的基本操作
(1)vim 文件:进入vim编译器普通模式,如果系统内没用这个文件,意味着创建这个文件;如果系统有这个文件这表示编辑该文件。
例1:vim vim_character.txt文件(事先文件中已经有文字)
在这里插入图片描述
Linux学习笔记——vim_第1张图片
最后退出的时候先按Esc然后输入:再输入wq最后Enter键就可以退出了
例2:vim vim_two_character.txt(当打开的文件不存在时,创建该文件)
首先document文件夹里,只有一个vim_character.txt文件
在这里插入图片描述
然后用vim vim_two_character.txt来编辑
在这里插入图片描述
可见用vim 编辑一个不存在的文件时,就会创建一个文件。
三、普通模式的操作
普通模式下,可以完成光标的移动、复制、删除、粘贴、重做、撤销等常用的操作。
(1)光标移动命令

命令 说明
↑↓←→ 方向键,可以控制光标的上下左右移动一个字符的位置
hjkl 功能和方向键完全相同,分别控制光标 左移、下移、上移或右移一个字符位置
- 把光标移至上一行的第一个起始字符位置(第一个非空白字符位置)
Enter键 把光标移至下一行的第一个起始字符位置(第一个非空白字符位置)
退格键 光标左移一个字符位置
空格键 光标右移一个字符位置
ctrl+f 往后滚动一屏,编辑窗口将会显示文件下一页内容
ctrl+b 往前滚动一屏,编辑窗口将会显示文件下一页内容
ctrl+u 往后滚动半屏
ctrl+d 往后滚动半屏
H 把光标移至编辑窗口顶端第一行的起始字符位置(第一个非空白字符位置)
M 把光标移至编辑窗口中间第一行的起始字符位置(第一个非空白字符位置)
L 把光标移至编辑窗口底部第一行的起始字符位置(第一个非空白字符位置)
w 光标右移一个字,如果相邻两个字之间有标点符号,光标就移动到标点符号位置
W 光标右移一个字,如果相邻两个字之间有标点符号,则忽略
b 光标左移一个字,如果相邻两个字之间有标点符号,光标就移动到标点符号位置
B 光标右移一个字,如果相邻两个字之间有标点符号,则忽略
e 光标移至当前字(或下一个)的最后一个字符位置
E 同上,只是把空格字符作为字的分隔符
^ 把光标移至当前行的起始位置(第一个非空格字符位置)
0 把光标移至当前行的起始位置(不忽略空格字符)
$ 把光标移至当前行的行尾

(2)复制、删除和粘贴
在vim中,复制和粘贴是先用yy复制当前行,再用p或P实现粘贴剪切和粘贴是先dd删除当前行,再用p或P实现粘贴;如果在yy或dd之前再输入适当的数字,还可以实现若干行 的复制和删除操作。

命令 说明
x 删除光标所在位置的一个字符,并把该字符存在剪切板中
nx 删除光标所在位置的后面n个字符,并把这些字符存放在粘贴板中
X 删除光标所在位置的前面一个字符,并把这些字符存在粘贴板中
yy 复制光标所在行,并把该行内容存在剪切板中
nyy 复制光标所在行开始的n行,并把该行内容存在剪切板中
dd== 删除光标所在行==,并把该行内容存在剪切板中
ndd 删除光标所在行开始的n行,并把该行内容存在剪切板中
P 把剪切板中的文本数据复制到光标所在行的下面
p 把剪切板中的文本数据复制到光标所在行的上面

(3)撤销和重做

命令 说明
u 撤销命令,使用u命令撤销上一步的编辑命令
ctrl+r 重做命令

四、编辑模式
vim在编辑模式下才能输入字符,要进入编辑模式,必须要在普通模式下输入i、I、o、O、A、a、r、R中得到一个才能进入编辑模式。
例如
Linux学习笔记——vim_第2张图片
这时右下角会出现INSERT或者REPLACE。退出编辑模式按ESC键
(1)进入编辑模式的命令

命令 说明
a 可在光标当前位置的下一个位置开始输入文字
A 可在光标当前行的行尾输入数据
i 可在光标当前位置输入数据
I(大写i) 可在光标当前行的行首输入数据
o 可在光标当前行之后插入一个新行
O 可在光标当前行之前插入一个新行
r 替换光标当前位置的字符
R 替换从光标当前位置开始的字符,直到按下ESC键为止
s 删除光标当前位置的一个字符,然后进入编辑模式
S(大s) 删除光标当前行,然后进入编辑模式

例1:a和A
打开vim_character.txt文件
在这里插入图片描述
Linux学习笔记——vim_第3张图片
可见光标在t下面,这时按下a键
在这里插入图片描述
可见光标在当前位置的下一个位置开始输入文字,如果按下A键
在这里插入图片描述
可见光标在当前行的行尾输入数据
例2:i和I
和例1的步骤一样,当按下i键时
在这里插入图片描述
可见可在光标当前位置输入数据
当按下I键的时候
Linux学习笔记——vim_第4张图片
可见可在光标当前行的行首输入数据其他的命令和例1,例2的操作步骤相似,大家可以试一下
五、命令模式
在普通模式下输入":"、"?"、"/"其中之一就进入了命令模式。在命令模式中,可以完成搜索、替换、高亮显示、行号显示、保存、退出甚至可以执行shell命令等操作
(1)搜索和替换

命令 说明
/word 向下搜索/word,就是光标当前位置向下搜索。在普通模式下输入"/"进入命令模式,再输入要查询的字符串word,就可以搜索在当前光标之后的为word的字符串(例1)
?word 向上搜索,就是在光标当前位置向上搜索。在普通模式下输入"?"进入命令模式,再输入要查询的字符串word,就可以搜索在当前光标之前的为word的字符串(例2)
n 重复前一个搜索动作,按下n后就可以重复之前的搜索动作
N 和n相反,反向进行前一个搜索动作。例(2)
:s/word1/word2/g 在光标当前行中,把字符word1用word2来替换。s和/之间有空格
:s/word1/word2/gc 在光标当前行中,把字符word1用word2来替换,并在替换之前提示用户确认是否要替换。s和/之间有空格
:%s/word1/word2/g 把文档中所有的字符串word1用word2替换。s和/之间有空格
:%s/word1/word2/gc 把文档中所有的字符串word1用word2替换,并在替换之前提示用户确认是否要替换。s和/之间有空格
:n1,n2 s/word1/word2/g n1和n2是数字,在第n1和n2行之间寻找字符串word1,并用word2来替换。s和/之间有空格
:n1,n2 s/word1/word2/gc n1和n2是数字,在第n1和n2行之间寻找字符串word1,并用word2来替换,并在替换之前提示用户确认是否要替换。s和/之间有空格
:set ic 搜索时忽略大小写
:set noic 搜索时不忽略大小写

例1
在vim_character.txt中有三行文本,现在搜索其中的third字
第一 打开文件
在这里插入图片描述
第二 输入“/”命令
在这里插入图片描述
第三 在"/"后面输入third就可以搜索在当前光标下面的third单词了
在这里插入图片描述
Linux学习笔记——vim_第5张图片
最后可以按ZQ(功能和:q!一样)(不保存直接退出)或者:wq(保存后退出)退出。
例2
第一次在光标下搜索fifth,然后高亮显示
Linux学习笔记——vim_第6张图片
Linux学习笔记——vim_第7张图片
第二次搜寻second,然后高亮显示
Linux学习笔记——vim_第8张图片
可见当前光标是在s处,现在输入/txt
Linux学习笔记——vim_第9张图片
可见光标在第三个line处,然后按下N键
在这里插入图片描述
下面就会出现?line向上搜寻的字样。
(2)高亮显示和取消高亮显示
默认情况下,vim编译器自动高亮显示,也可以通过修改/etc/vimrc文件来取消高亮显示。
Linux学习笔记——vim_第10张图片
如上图可以在syntax on前加上注释,这样就取消了高亮显示。
(3)显示和取消行号

命令 说明
:set nu 在文件中的每一行前面列出行号
:set nonu 不在文件中的每一行前面列出行号

(4)保存和退出

命令 说明
:w 在冒号后面输入"w",就可将文件保存起来
:q 在冒号后面输入"q",就可以退出vim。如果修改过使用这个命令就不能退出,需要使用q!表示强制退出,不保存
:wq 存盘后退出vim

(4)在vim中运行shell命令

命令 说明
:!command 在普通模式下输入:!,并在后面输入运行的命令(例1)
:r!command 执行命令并把命令运行的结果插入当前行的下一行(例2)
:sh 保留vim状态,切换到字符模式,此时可以正常输入各种shell命令,输入结束后可用exit或ctrl+d,回到vim编辑器中,继续编辑刚才的文档(例2)

注意:输入命令前要在普通模式
例1:
首先进入普通
Linux学习笔记——vim_第11张图片
然后后面输入:! ls -lih /etc 得到下图
Linux学习笔记——vim_第12张图片
例2
在普通模式下输入:r!date
在这里插入图片描述
得到下图
在这里插入图片描述
例3
首先输入:sh
在这里插入图片描述
在这里插入图片描述
系统保留vim的状态,并且切换到字符模式,在字符模式下输入exit,可回到vim编译器中,继续编译刚才的文档

六、其他常用功能
(1)编译多个文件
vim允许用户同时编译多个文件。
例如,想要编译vim_character.txt和vim_two.character.txt,可以使用下图命令
在这里插入图片描述
此时,vim首先显示第一个文件vim_character.txt,编辑结束后输入:w命令,保存vim_character.txt文件。
Linux学习笔记——vim_第13张图片
若要编辑vim_two.character.txt可以输入":n"或者":n vim_two.character.txt",也可以不保存vim_character.txt文件直接进入vim_two.character.txt文件
Linux学习笔记——vim_第14张图片
(2)区块选择和操作
有时需要对文档中的某些区块进行操作,这时就用到了以下的命令

命令 说明
v 字符选择,将光标经过的地方反白选择
V 行选择,将光标经过的行反白选择
ctrl+v 区块选择,可反白选择所需要的矩形字符块
y 将反白选择的地方复制
d 将反白选择的地方删除

例1
如下图,按下ctrl+v键,屏幕左下角显示VISUAL BLOCK的字样,这样光标经过的地方会别选白
Linux学习笔记——vim_第15张图片
如果按下d键,会把选白的地方删除,同理如果按下y会把选白的地方复制。如果按下V键将光标经过的行反白选择,其它的也类似。
(3)多窗口显示
多窗口显示是说可以在同一个屏幕上同时打开多个文件,也可以重复打开一个文件。

命令 说明
:sp[文件名] 开启一个新窗口,如果加上文件名,表示在新窗口打开名为文件名的文档;如果不加文件名,文档就会在新窗口上再次打开当前文档
ctrl+w+j 移动光标到下面的窗口
ctrl+w+k 移动光标到上面的窗口
:wq 保存退出系统所在的窗口。用ctrl+w+j或ctrl+w+k移动到需要关闭的窗口,然后输入:wq再按ENTER进行保存退出

例1
在vim_character.txt的 普通模式下输入:sp vim_two_character.txt
在这里插入图片描述
Linux学习笔记——vim_第16张图片
可见在屏幕上打开一个新的窗口,并且窗口的名字是vim_two_character.txt

本笔记如有问题欢迎交流[email protected]

你可能感兴趣的:(Linux学习笔记——vim)