1、批量注释
按【Esc】进入命令模式,【Ctrl】+【V】进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I(【Shift】+【I】),再插入注释符,比如"//",再按【Esc】,就可以全部注释了。
2、批量去掉注释
按【Esc】进入命令模式,【Ctrl】+【V】进入列编辑模式,向下或向上移动光标,选中需要去掉的注释符号,然后按【D】,就可以删掉注释符号。
3、复制和粘贴
前提:先按【Esc】进入命令模式
【yy】:将光标所在行拷贝到缓冲区。
【y】+【^】:复制光标所在位置的前一个位置到行首的内容到缓冲区。
【yw】:将光标所在位置到单词结尾的内容拷贝到缓冲区,相当于拷贝一个单词。
【#yy】:【6yy】表示拷贝从光标所在的行开始往下数6行文字到缓冲区。
【p】:将缓冲区内的字符粘到光标所在位置。
4、vim分屏操作(一个窗口同时打开多个文件)
1、水平分割:
命令模式下<Ctrl+w>s
或者
底行模式下执行命令sp
(命令模式下按":"
进入底行模式)
2、垂直分割:
命令模式下<Ctrl+w>v
或者
底行模式下执行命令vs
(命令模式下按":"
进入底行模式)
默认情况下分屏出来的是同一个文件,并且是同一个缓冲区,所以改一个区域中的文件,其他区域也会跟着变。我们可以在某个区域的命令模式下使用:e filename
来打开其他文件。也可以在分屏的时候:vs filename
、:sp filename
来选择自己想要打开的文件。
每个窗口可以被无限分割,前提是屏幕足够大。
<Ctrl+w>s
表示Ctrl
和w
两个按键先同时按住,然后松开,再按s。
w
:window
(窗口),可以被我们看到的分割的区域
s
:split
(分离、使分离)
v
:vertical
(垂直的)
窗口的切换:
<Ctrl+w>w
:在窗口间循环切换
<Ctrl+w>h
:切换到左边的窗口
<Ctrl+w>j
:切换到下边的窗口
<Ctrl+w>k
:切换到上边的窗口
<Ctrl+w>l
:切换到右边的窗口
窗口的移动:
<Ctrl+w>H
:将光标所在的窗口移到最左边
<Ctrl+w>L
:将光标所在的窗口移到最右边
<Ctrl+w>J
:将光标所在的窗口移到最下边
<Ctrl+w>K
:将光标所在的窗口移到最上边
4、删除文字
前提条件:在命令模式下执行下面的操作。
【x】:每按一次,删除光标所在位置的一个字符
【#x】:【6x】表示删除光标所在位置的“后面(包括自己在内)”6个字符
【X】:每按一次,删除光标所在位置的“前面”一个字符
【#X】:表示删除光标所在位置的“前面”6个字符
【dd】:删除光标所在行
【#dd】:从光标所在行开始删除#行
5、大小写切换
在命令模式下执行下面操作:
~
,也就是按<shift+~>
如果光标位置字符原来是小写字母,则变成大写,
如果光标位置字符原来是大小字母,则变成小写。
6、跳到文件某一行
在底行模式下输入一个数字#,再按回车键就跳到该行了。
在命令模式按下“:”
进入底行模式,输入一个数字#,再按回车键
7、查找字符
1、【/关键字】在底行模式下先按
"/"
键,再输入想寻找的字符,最后按下回车,如果第一次找的关键字不是想要的关键字,可以按n
查看下一个匹配,也可以按N
查看上一个匹配。
2、【?关键字】在底行模式下先按"?"
键,再输入想寻找的字符,最后按下回车,如果第一次找的关键字不是想要的关键字,可以按n
查看下一个匹配,也可以按N
查看上一个匹配。
区别:【/关键字】按下回车后光标低位到之前所在行的下一行开头,【?关键字】按下回车后光标低位到之前所在行的上一行开头。
注意:符号和关键字之间没有空格,否则空格也会被作为要匹配的字符的一部分。
8、字符串替换
vim中可以使用
:s
命令来替换字符串:
1、:s/str1/str2/
替换当前行第一个str1为str2。
2、:s/str1/str2/g
替换当前行所有str1为str2。
3、:n,$:s/str1/str2/
替换第n行开始到最后一行中每一行的第一个str1为str2。
4、:n,$:s/str1/str2/g
替换第n行开始到最后一行中每一行的所有str1为str2。
(n为数字,当n为.
时,表示从当前行开始到最后一行)
5、:%s/str1/str2/
替换每一行的第一个str1为str2。
6、:%s/str1/ster2/g
替换每一行中所有的str1为str2
注意:s和后面的字符串可以有空格也可以没有空格
9、替换
r
:替换光标所在处的字符
R
:替换光标所在处的字符,直到按下ESC
键为止
10、移动光标
gg
:进入到文本开始
G
:进入文本末尾
ctrl+d
:屏幕往前移动半页
ctrl+f
:屏幕往前移动一页
ctrl+u
:屏幕往后移动半页
ctrl+b
:屏幕往后移动一页
#l
:光标移到该行的第#个位置
^
:移动到光标所在行的行首
$
:移动到光标所在行的行尾
w
:光标移到下个字的开头
e
:光标移到下个字的字尾
b
:光标移到上个字的开头
11、撤销上一次操作
u
:会到上一个操作,多按几次u
可以执行多次恢复
ctrl+r
:撤销的恢复
12、更改
cw
:更改光标所在处的字到字尾
c#w
:例如,c3w
表示更改3个字
13、光标来回跳转
按
Esc
进入命令模式
1、Ctrl+o
光标跳到上一次有操作的位置
2、Tab
光标跳到下一次有操作的位置
14、光标跳转(单词匹配)
ctrl+#
可以高亮,然后按n查看下一个匹配,按N查看上一个匹配。
15、光标跳转(函数定义和函数调用的跳转)
在项目文件中执行ctags -R
,会在该文件中生成一个tags文件。
(1) Ctrl+]
跳转到函数定义的地方,Ctrl+t
跳回函数调用的地方。(不仅可以在本文件中跳转,还可以跨文件跳转)