快速移动光标
1.在命令模式中,使用快捷键b,可以将光标快速移动到当前光标所在单词的前一个单词的首字母。如果要移动到当前光标所在位置的前3个单词的首字母处,可以使用3b;
2.如果要将光标快速移动到当前光标的后一个单词的首字母,可以在命令模式中使用w。与快捷键b相同,移动多个单词时,可以在快捷键w前加上数字。
3.如果要移动光标至后一个单词的尾字母,可以使用快捷键e。与前两个快捷键类似,移动多个字母只需要在快捷键前加上相应的数字即可。
4.与快捷键e功能相反的是ge。使用此快捷键时,vim编辑器会快速移动光标至前一个单词的尾字母。
####################################################
快速移动光标至行首和行尾
需要按行快速移动光标时,可以使用键盘上的编辑键Home,快速将光标移动至当前行的行首。除此之外,也可以在命令模式中使用快捷键"^"(即Shift+6)或0(数字0)。
如果要快速移动光标至当前行的行尾,可以使用编辑键End。也可以在命令模式中使用快捷键“$”(Shift+4)。与快捷键"^"和0不同,快捷键“$”前可以加上数字表示移动的行数。例如,使用"1$"表示当前行的行尾,"2$"表示当前行的下一行的行尾。
#####################################
移动光标至指定的行
调试脚本文件或程序时,可能会提示源代码的某一行有错误(大多数编译器都会以行号的形式提示)。这时就要快速定位至错误行,并执行编辑操作。
1.为了方便查看行号,vim编辑器提供了显示文本行号的功能,但默认情况下这个功能并没有启用,需要手动设置:
要显示行号,可以在命令模式中执行:
:set number
执行上诉命令后,编辑器就会显示行号
2.查看了行号之后,就可以在命令模式中,使用快速跳转到行快捷键跳转到制定位置。
#gg:跳转到文本的第一行,也可以使用1G。
#G:跳转到文本最后一行
#nG:跳转到第n行,其中的n应该是一个正整数
可以使用以上方法快速跳转到指定的行首。
3.如果不需要使用行号,可以在命令模式中使用以下命令取消行号:
#set nonumber
#######################################################
滚动屏幕
Vim没有滚动条,可以使用快捷键来完成这个功能:
在命令模式中,常用的滚动屏幕快捷键如下:
#Page Up:向前翻页
#Page Down:向后翻页
#Ctrl+B:向前翻页
#Ctrl+F:向后翻页
#Ctrl+U:向前翻半页
#Ctrl+D:向后翻半页
在插入模式中,不能使用快捷方式翻页,但可以使用编辑功能键Page Up、Page Down实现翻页。
####################################################
使用鼠标移动光标
vim编辑器也提供了鼠标支持,要使vim编辑器支持鼠标,可以使用以下命令:
#:set mouse=a
此时vim将会弹出鼠标并允许使用鼠标进行光标定位
#######################################################
其他常用移动光标技巧
1.快速跳转到编辑位置
快速跳转快捷键需要在快捷键模式下使用``,这时两个反引号,在键盘上位于数字键1和Tab键附近。如果按下多次快速跳转键,vim编辑器会在最后两个编辑位置之间跳转。
如果在编辑过程中执行了多次跳转,可以使用以下快速跳转键跳转到更多编辑过的位置:
#Ctrl+I:跳转到前一个编辑位置
#Ctrl+O:跳转到后一个编辑位置
#Tab:跳转到前一个编辑位置(与Ctrl+I功能相同)
默认情况下,vim将会记录所有的跳转位置,并且用户可以使用记录在多个编辑位置自由跳转。如果要查看vim编辑器记录的跳转位置,可以在命令模式中使用:
#jumps
note:虽然vim编辑器保存了许多不同文件的跳转点,但在使用跳转快捷键时,并不会因此跳转到其他文本文件中。
2.搜索字符并移动光标
搜索字符并移动光标功能与图形界面中的查找不同。搜索字符移动光标时,只能使用单个字符,并且搜索字符移动的范围为光标所在行(查找功能通常是全文查找)。
2.1.搜索字符命令为fs,其中f为搜索命令(可速记为find),s为需要搜索的单字符。这是一个非常有趣并且有用的命令。它会在当前光标之后查找单字符s,并将光标移动到单字符s之上。如果当前光标至行尾的范围内没有找到单字符s,则不移动光标。
与前面介绍的一些命令一样,搜索字符命令也可以与数字一起配合使用。例如2fn表示查找当前位置之后的第2个字符n并移动光标,4fs表示查找当前位置之后第4个字符并移动光标。
2.2.与搜索字符命令fs功能相反的是Fs。它的功能是在当前光标位置之前查找单字符s,并将光标移动到单字符s之上。(用虚拟机Linux系统试了以下,Fs命令没有用,fs命令可以)
2.3.与搜索字符命令功能类似的还有ts(Ts),这个命令可速记为to。其功能分别是在当前位置之后(之前)查找单字符s,并移动光标到单字符s之前(之后)。(没成功)
#################################################################
vim 编辑器的查找和替换功能
简单的查找功能
在vim编辑器中,实现简单查找功能的命令是"/",其格式如下:
#/pattern
在上面的格式中,pattern为要查找的字符串
在使用命令"/"之后,vim编辑器会将光标移动到找到的字符串的第1个字符处。例如使用命令/home查找字符串home,vim编辑器会从当前光标位置开始向下查找,并将光标移动到查找到的字符串的第1个字符处。
vim编辑器会将光标移动到找到的字符串的首字符处。如果当前查找到的字符串不是用户需要查找的字符串,可以使用以下快捷键:
#n:跳转到下一个字符串
#N:跳转到上一个字符串
使用上面两个快捷键跳转查找时,如果vim查找到的字符是第一个或最后一个字符串,vim将会提示用户
note:使用vim编辑器查找字符串时,可以使用命令set wrapscan和set nowrapscan开启、关闭跳过文件收尾查找功能
############################################################
反向查找
在vim编辑器中,除了使用命令“/”从当前位置开始向下查找外,还可以使用命令“?”反向查找:
#?pattern
反向命令“?”与正向查找命令的使用方法完全相同,主要不同之处在于跳转查找字符串快捷键用法不同。
#n:跳转到上一个字符串
#N:跳转到下一个字符串
#################################################
查找时忽略大小写
1
#:set ignorecase
在使用以上命令后,再使用字符串home进行查找,vim编辑器就能够匹配到以下字符串:
Home
home
HOme
HoMe
.......
2.
有时开启护绿大小写功能可能会不方便,这时可以使用以下命令关闭忽略大小写功能
#:set noignorecase
##############################################################
高亮显示查找结果
查找字符串时,让查找到的字符串都高亮显示,以便使用者自由查看,是一个非常好的方法
1.要高亮显示所有匹配的结果,可以在vim编辑器的命令模式中执行以下命令:
#:set hlsearch
使用高亮显示搜索结果后,vim会将所有匹配项都采用高亮显示
(试过,没有效)
2.再使用搜索结果高亮显示后,可能使用过的搜索项在下一个文本中也是高亮显示的,此时可以使用以下命令关闭搜索结果高亮显示功能:
#:set nohlsearch
使用以上命令关闭了搜索结果高亮显示功能后,如果需要再次使用此功能,必须要手动开启该功能。
################################################################
增量查找
增量查找是指用户输入需要查找的字符串的同时,vim编辑器按用户的输入同步进行查找。默认情况下,vim编辑器的增量查找功能处于关闭状态。
(1)要打开vim编辑器的增量查找功能,可以在命令模式中执行以下命令:
#set incsearch
(用过,系统无反应)
(2).使用以上命令开启增量查找功能之后,用户输入查找字符串的同时,vim编辑器也开始了查找工作(之前是用户输入命令并按Enter键后才开始查找)。
(3).关闭增量功能
#set noincsearch
#######################################################
简单的替换功能
在vim编辑器中,替换功能使用的命令是s,基本格式如下:
#s/pattern1/pattern2
在上面的示例中,pattern1为要查找的文本,pattern2为替换后的文本,"/"为分隔符
(1)虽然本例中使用了"/"作为分隔符,但实际上命令s并没有强行规定必须使用"/"作为分隔符。例如可以使用冒号作为分隔符
#:s:the:The:
在上面的命令中,s命令是哦国内冒号作为分隔符。上面的命令的功能是将光标所在行的第一个the替换为The
note:如果要使用特殊字符作为分隔符,或当替换的字符串中含有特殊字符时,应该使用符号'\'屏蔽其特殊含义
(2)使用s命令进行替换时,vim总会替换光标所在行第1个匹配到的字符串。如果当前行没有找到需要替换的字符串,vim将提示用户没有找到字符串,并终止替换(不会在下一行继续查找替换)。
######################################################
区域性查找替换
1.通常替换命令只会在当前行找到的第一个字符串,如果要替换当前行中找到的所有字符串(即全行替换),可以使用标记g:
#s/the/The/g
2.也可以制定一个要替换的范围。例如要替换第1行至第10行内的所有内容,使用如下命令:
#1,10s/the/The/g
3.指定范围时,使用符号“%”表示所有行,用“$”表示文本的最后一行。例如要替换第5行至最后一行的所有字符串,使用如下命令:
:5,$s/the/The/g
4.也可以使用"+"、"-"表示一个模糊的范围。例如要替换当前行以下至第10行和倒数第10行内的字符串,使用如下命令:
:+10,$-10s/the/The/g
5.如果要替换所有字符串,使用如下命令
:%s/the/The/g
在上面这个例子中,使用标记g的目的是替换每一行中的所有字符串
#########################################################
谨慎的查找替换
如果当前文本中需要查找替换的字符串很多,并且字符串分布的区域未知,通常建议使用全文替换(即替换文件中的所有字符串)。但也有可能并非所有的字符串都要替换,这时就需要谨慎的查找替换。
执行谨慎的查找替换时,需要使用标记c。
#%s/the/The/gc
执行上面的命令后,vim将会高亮显示找到的字符串,并提示用户
vim会询问用户应该如何处理当前找到的字符串。此时可供选择的几个选项的含义如下:
#y:直接输入y执行替换,继续查找字符串
#n:直接输入n跳过当前找到的字符串,继续查找字符串
#a:替换所有找到的字符串,并且不询问
#q:不执行替换并退出替换模式
#l:执行替换并退出替换模式
#Ctrl+E:向上滚屏一行
#Ctrl+Y:向下滚屏一行