编辑神器VIM命令总结

转载于:https://blog.csdn.net/CoderBruis/article/details/93711591

看着写的不错,就转载来了,再学习一下。

1. 移动
1.1 Vim水平移动
0移动到行首第一个字符,^移动到第一个非空白字符
$移动到行尾,g_移动到行尾非空白字符
记住常用的0和$就可以满足日常需求了
1.2 Vim页面移动
gg/G移动文件的开头和结尾,可以使用ctrl+o快速返回
H/M/L跳转到屏幕的开头(Head),中间(Middle)和结尾(Lower)
Ctrl+u,ctrl+f上下翻页()
输入对应行号的数字+g可以快速跳到对应行号,例如:“55g”,即可跳到55行,这里"1G"也可跳回首行。
1.3 Vim垂直移动
使用括号()在句子间移动,你可以用:help(来查看帮助)
使用{}在段落之间移动
插件章节我们会讲如何用easy-motion插件移动,这些命令就都不用记忆啦
1.4 行间字符搜索移动
使用f{char}可以移动到char字符上,t移动到char的前一个字符,比如"fa"表示要在当前行搜索a符,然后跳到a字符上,同样的"f"命令也可以加入数字前缀
使用t{char}可以吧光标移动到目标字符的前一个字符上
如果第一次没搜到,可以用分号(;)/逗号(,)继续搜该行下一个/上一个
大写的F表示反过来搜前面的字符
1.5 词移动
normal 模式下h左,j下,k上,l右
w/W移动下一个word/WORD开头,e/E下一个word/WORD末尾
b/B回上一个word/WORD开头
word以非空白符分割的单词,WORD以空白符分隔的单词
像大多数vim命令一样,可以在命令面前加数字前缀表示这个命令重复多少次,例如“3w”表示向前移动3个单词
ge移动到前一个单词的末尾
1.6 括号匹配
对于嵌套的()、[]、{}结构,需要在这些嵌套结构的匹配字符上来回切换,比如当前光标在"(“上,需要立即跳到匹配的”)“上时,则只需要输入”%“即可,再按一次”%“即可移动到它的匹配处,也就是说按多次”%",会让光标在"(“和”)"之间来回切换。

2. 操作文件
2.1 分窗口打开文件
vim file1 file2 -O 分窗口打开文件名所涉及的文件
2.2 可以使用Vim启动一堆指定的文件,称之为文件列表
例如当前目录有三个文件:one.txt、two.txt、three.txt,那么就可以使用命令:

vim one.txt two.txt three.txt
来启动这三个文件,但是vim只会显示第一个文件的视图。可以使用以下的命令来切换这三个文件的视图。

切换到下一个文件视图,使用命令::next
切换到上一个文件视图,使用命令::Next
放弃当前编辑的内容,然后切换到下一个文件视图::next!
放弃当前编辑的内容,然后切换回上一个文件视图::Next!
保存当前文件进入下一个文件视图,使用命令::wnext
保存当前文件进入上一个文件视图,使用命令::wNext
如果想知道当前视图是哪一个文件,可以使用命令::args来查看,比如上图所示的:one.txt、two.txt、three.txt,如果当前编辑的是two.txt,使用命令::args就可以查看到如下:one.txt [two.txt] three.txt

2.3 移动列表中的文件
回到前一个文件::previous,和命令:Next相似。
保存并回到前一个文件::wprevious。
移动到列表中的第一个第一个文件::first
移动到列表中的最后一个问价::last
可以在:next和:previous前面加上技术前缀,例如要向后跳两个文件,使用命令::2next
2.2 替换命令
substitute命令允许我们查找并且替换文本,并且支持正则表达式

使用命令```:[range]s[sbstitute]/{pattern}/{string}/{flags}
range表示范围,比如:10,20表示10-20行,%表示全部
pattern是要替换的模式,string是替换后的文本
2.2.1 替换标志位
Flags有几个常用的标志

g(global)表示全局范围内执行
c(confirm)表示确认,可以确认或者拒绝修改
n(number)报告匹配到的次数而不替换,可以用来查询匹配次数
打开一个文件,然后输入命令:

:% s/aaa/bbb/g
1
这个命令表示将该文件中所有的aaa字符串替换为bbb字符串。

打开一个文件后,输入命令:

:4,6 s/aaa/bbb
1
这个命令表示的是将4-6行的aaa字符串替换为bbb的字符串。

3. VIM主题
3.1 VIM主题配色
:colorscheme显示当前主题配色
:colorscheme<ctrl+d>显示所有配色
:colorscheme配色名 修改配色

4. 查找
4.1 简单查找
查找命令:"/String",例如"/hello" 就是指要查找hello单词
备注,.*[]^%/?~$都是有特殊涵义的,如果要查找这些特殊字符,则需要在特殊字符前面加一个""
/表示进行正向查找;?表示进行反向查找。
4.1.1 历史记录
假设执行了三个查找命令:

/one
/two
/three
1
2
3
现在,输入/启动一次查找,但是不按下回车键,现在按(上箭头),Vim会把光标回退到命令"/three"查找的记录上,继续按则会继续往前回退。按则在历史记录中进行反向查找

4.2 字符太长,快速指定一个字符串来查找
例如,你现在需要查找一个长字符串"TheLongestString",你只需要把光标停在该字符串上,然后使用命令"*"即可找到该字符串,如果想查找该字符串出现的第n词位置,则使用命令
"n*"即可找到该单词出现的n次位置。例如使用命令
"3*",就可以查找光标下单词第三次出现的地方。

而"#"命令则是向相反的方向查找。

4.3 模糊查找
查找结尾的单词,比如查找单词"abc",则可以使用/abc>来查找。
查找开头的单词,比如查找单词"abc", 则可以使用/</abc来查找。
4.4 显示高亮
使用命令:set hlsearch来开启高亮查找,这个功能开启之后,会显示与查找结果相同的所有内容。
命令:set nohlsearch会关闭高亮查找

4.5 高亮查找
使用命令:set incsearch可以使得你在输入字符串搜索的过程中就显示匹配点。用这个功能可以检查是否被找到正确的匹配,这时输入就可以真正地跳到匹配的地方去。

4.6 行间查找
4.6.1 行首查找
^ 字符匹配行首,比如使用命令:"/^the",则会匹配到行首的the,如下

the solder holding one of the chips melted and the
xxx
1
2
4.6.2 行尾查找
$ 字符匹配行尾,比如使用命令:"/$the",则会匹配到行尾的the,如下:

the solder holding one of the chips melted and the
                                               xxx
1
2
4.7 匹配任何单个字符
点"."字符匹配任何字符,比如"c.m"匹配一个字符串,那么它在如下句子中能匹配到的字符串是:

computer and custom
1
则computer和custom都可以匹配。

5 使用标记
5.1 跳转回原来的地方
使用命令

:''
1
跳转回原来的地方。

一般每次你执行一个会将光标移动到本行之外的命令,该移动即被称为一个"跳转"。而CTRL+O命令则跳到一个"较老"的地方(O表示older)。CTRL+I则跳到一个"较新"的地方。

5.2 查看你可以跳往的位置的列表
使用":jumps"命令可以输出你可以跳往的位置的列表,最后一个你使用的标记会用">"符号标记出来。

5.3 有名字的标记(极其有用)
5.3.1 定义标记
要跳到一个你定义的标记,你可以使用命令

'{mark}
1
vim允许你在文本中放置自定义的标记,使用命令

ma
1
来将"a"标记到当前的光标位置,当然你可以在文本中使用26个字母来标记。

5.3.2 移动到标记
这里的{mark}指的是标记的那个字母,例如要移动到标记a处,则使用命令

'a
1
这里要注意的是,小写字母a-z定义的是局部的标记,而大写的字母A-Z定义的是全局的标记,也就是说可以通过定义大写的标记可以在多文件间来回切换标记。这一点非常重要。

例如:使用如下命令标记全局的mark

mA
1
则标记了该位置为全局标记,无论在任何一个文件都可以实用命令

'A
1
跳转到改mark标记的位置。这样就可以快速的在多文件之间切换。

5.3.3 查看所有的标记
使用命令

:marks
1
就可以查看所有的标记信息
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值