vim使用指南

来源:互联网 发布:php经常用的代码 编辑:程序博客网 时间:2024/04/29 12:22

使用Vim操作命令

最近在弄Linux服务器,突然发现Linux上面用Vim编辑器创建文件、编辑文件简直不要太方便,话说咱大Mac也有吧,顺带就去学了一些基本命令,现在记录写来给大家分享。

1.光标移动

在Vim中,一般使用hjkl来移动光标,h表示光标向左,l表示光标向右,k表示光标向上,j表示光标向下。

2.插入模式

当我们使用vim命令打开或者创建一个文件是,默认进入的是普通模式,在普通模式我们可以进行光标移动,那么如何输入文本了?

当我们按下iIaAoOsS时就会进入插入模式,只不过会有一些不同而已:

i表示在当前光标前插入文本;
I表示在当前光标所在行的行首插入文本;
a表示在当前光标后插入文本;
A表示在当前光标所在行的行末插入文本;
o表示在当前光标所在行的下方另开一行插入文本;
O表示在当前光标所在行的上方另开一行插入文本;
s表示删除当前光标所指定的字符插入文本;
S表示删除当前光标所在的行并插入文本。

当我们输入完文本以后,按下ESC按钮就会推出插入模式。

3.保存和不保存

当我们进入到普通模式后,如何保存或者不保存文件了?很简单,同时按下shift分号按键,这时候在终端商左下角会显示一个冒号,表示进入了命令行模式,输入wq然后按下enter就会保存文件,输入q!则会不保存文件。

but,有没有觉得很麻烦,为什么我编辑文本还要切换模式啊,这好麻烦,有没有更简单的一步到位的模式?
必须有啊,那就是普通模式,接下来,让我们进入到神奇的普通模式去吧。

4.普通模式的编辑

4.1删除

在普通模式下,使用x可以删除光标所在字符,那么如何删除大量字符了?比如删除一行,删除一段甚至删除整个文本。

首先我们需要了解表示操作范围的命令,在vim中,0(^)$bewggG来进行范围操作:

0(^)表示将光标移到当前行的行首;
$表示将光标移到当前行的行末;
b表示将光标移到当前光标所在单词的起始处;
e表示将光标移到当前光标所在单词的结尾处;
w表示将光标移到下一个单词的的起始处;
gg表示将光标移到文本开头;
G表示将光标移到文本末尾。

注意:上面的单词,如果是英文就指的是英文单词,并且如果英文单词和数字放一起会被认为是一个单词。特殊符号也会被当做一个单词。如果是中则指的是一句不含标点的话,标点符号也是一个单词,但是空格不算,不过空格分开的两边可以看做是两个单词。举个例子,“你好我是单词”这句话是一个单词,“你好 我是单词”这句话则是两个单词,“你好,我是单词。”这句话则有四个单词。

了解了范围命令以后,我们就可以进行选择删除了,选择删除命令是d + 范围命令,即:

d0(d^)表示删除当前光标所在字符(不包含该字符)到光标所在行行首的所有字符;
d$表示删除当前光标所在字符(包含该字符)到光标所在行行末的所有字符;
de表示删除当前光标所在字符(包含该字符)到单词末尾的所有字符;
db表示删除当前光标所在字符(不包含该字符)到单词开头的所有字符;
dw表示表示删除当前光标所在字符(包含该字符)到下一个单词起始处的所有字符;
dgg表示删除光标所在行到文本开头的所有字符;
dG表示删除光标所在行到文本末尾的所有字符;
dd表示删除当前光标所在行的所有字符;
dh表示删除当前光标所在字符的前一个字符;
dl表示删除当前光标所在字符;
dj表示删除当前光标所在行以及下一行的所有字符;
dk表示删除当前光标所在行以及上一行的所有字符;

好难记。。。

4.2 粘贴命令

上面我们学习了删除命令,其实在vim中,不是删除了内容,而是对内容进行了剪切而已,所以我们可以使用pP来进行粘贴:

如果剪切的是整行字符,那么:

p表示将内容粘贴光标所在行的下一行;
P表示将内容粘贴到光标所在行的上一行。

如果剪切的是一部分字符,那么:

p表示将内容粘贴到光标后;
P表示将内容粘贴到光标前。

4.3 拷贝命令

如果想要复制一段字符,则需要使用y命令,格式为:y+数字+范围选择符

yyp(P)表示复制在当前行下(上)一行复制当前行的字符;
y2yp(P)表示复制在当前行下(上)一行复制当前行以及下一行的字符;
y0p(P)表示复制光标当前字符至行首所有字符到指定光标后(前);
y$p(P)表示复制光标当前字符在内至行末所有字符到指定光标后(前);
ybp(P)表示复制光标当前字符到单词起始处到指定光标后(前);
yep(P)表示复制光标当前字符在内到单词结尾处到指定光标后(前);
yGp(P)表示复制当前光标所在行至文本结尾所有字符到当前光标所在行下(上)一行;
yggp(P)表示复制当前光标所在行至文本起始处所有字符到当前光标所在行下(上)一行;

4.4 替换命令

如果想要替换某一个字符,则需要使用数字+r命令:

r+新字符表示将光标所在字符替换为新字符;
数字n+r+新字符表示将从光标开始到下n个字符统一替换为新字符。

那么问题来了,我要批量替换字符怎么办?
只需要按下R,然后就可以从光标处开始批量替换字符了。

soeasy!

4.5 查看文件信息

当你使用vim编辑文件时,加入你想查看当前文件状态,可以使用control(ctrl)+g查看当前文件状态。

这里写图片描述

从左向右会显示文件名、光标所在行数、总行数、光标所在行数比、光标所在位置

4.6 快捷键

在vim中,有一些很方便的快捷键可以供我们使用:

当我们要跳转到指定行数,则需要使用行数+G跳转。当然也可以使用:行数跳转。

当我们在用vim编辑代码时,发现有很多对括号,我们可以使用%来定位指定括号的另一半,这对代码人士简直方便极了。

当我们用vim查看代码时,发现需要缩进,则可以使用>这个按钮来进行缩进,使用<按钮进行反缩进。

4.7 搜索和替换

在vim中,我们可以使用/+字符+enter来搜索内容,搜索的内容将会以高亮显示,并且在底部会显示内容的位置。当搜索内容不止一个时,按n跳转下一个,N跳转到上一个。

注意:当搜索的内容不止一个时,vim默认会以光标所在位置作为开头来显示,所以如果我们想要从头搜索,则先需要按gg跳转至文本起始处。

不过我们还可以使用?+字符+enter来搜索内容,只不过这种搜索与上面的搜索功能完全相反。何谓相反,意思就是按n跳转上一个,N跳转到下一个,而且会从光标处向前搜索。

那么问题来了,当我们搜索完了,发现,还是有很多会以高亮显示,怎么办了?

只需要:nohl就可以取消高亮了

在vim中,如果我们搜索.、*、[]、%、/、?、$、~这几个字符时,需要在前面添加反斜杠\才可以搜索。

既然搜索到了结果,那么如何替换了?

:s/旧字符/新字符+enter就可以将旧字符替换为新字符,需要注意的是,此方法只会替换光标所在行行的字符,如果光标所在行没有旧字符就会报错,如果光标所在行存在多个搜索结果,则只会替换第一个结果。

如果需要替换整行则只需要在后面添加/g即可,即:s/旧字符/新字符/g

如果我们要替换整个文本,则需要%s/旧字符/新字符/g

当替换内容较多,但是有一些内容又不能替换时,我们可以使用:%s/旧字符/新字符/gc,这时候vim则会显示一些选项供我们选择:

这里写图片描述

第一个y表示yes即替换这个字符;
第二个n表示no即不替换这个字符;
第三个a表示从此光标所在字符开始替换后面所有的字符;
第四个q表示放弃替换;
第五个l表示替换第一个并且进入插入模式。

后两个,哎,我还不知道。。。

除此之外,我们可以使用开始行数,结束行数+s/旧字符/新字符/g来替换指定行数间的字符。

4.8 shell命令

使用:w 文件名可以将当前文件另存为另一个文件。

但是如果我们只需要将局部文件另存为怎么办了?这时候首先需要按v进入可视化模式,然后使用光标移动命令选择文件,选择完成后,按:w 文件名就会将选中内容另存为另一个文件。

使用:w! 文件名可以覆盖另一个文件。

使用:r 文件名可以在当前文件光标处打开另一个文件,并且可以将二者合并。

使用vim -o(-O) 文件1 文件2 文件3 …可以以垂直(水平)模式打开多个文件。使用control(ctrl)+w可以切换文件。

使用:qa可以快速关闭所有文件,如果有修改则需要:wqa!

5.结语

至此差不多就学完了vim的所有命令,当然这是我总结的,有不对的地方还请大家指出来,感谢!

0 0
原创粉丝点击