vi/vim vim是vi的升级版本
三个模式:命令模式、插入模式、退出模式
vim abc.txt //若abc.txt存在,则打开进入命令模式。若abc.txt不存在,则编辑新的abc.txt,不过只有保存时才会建立;不保存关闭
之后仍不存在。
进入命令模式:
vim abc.txt //vim命令进入后默认是命令模式
vim abc.txt
+7 //进入abc.txt后,直接定位到第7行
vim main.c
+/printf //打开abc.txt后,直接定位到第一个printf 处
Esc //插入模式下,按Esc键返回到命令模式
命令模式下命令:
3+↑ //光标向上移动三行 应该等价于3+
h、j、k、l //←、↓、↑、→。有的机器不能用箭头移动,需要用键盘操作。一般用不到,知道即可。
w、b //右移一个单词、左移一个单词
(、) //一句话一句话的移
{、} //一段一段的移
^ //光标移动到行首。直接1000然后加箭头多快
$ //光标移动到行尾。直接1000然后加箭头多快
gg //光标定位到文档头
G //光标定位到文档尾
Ctrl +d //向下翻半页
Ctrl +f //向下翻一页 forward
Ctrl +u //向上翻半页
Ctrl +b //向上翻一页 back
H //光标定位到当前页首
L //光标定位到当前页的最后一行的行首
:200 或 200G
//跳到第200行
:set nu //加行号ih
:set nonu //去掉行号
/ //查找
按n就可以往下找,N就可以往上找。n就是next
------------------------------------------------------------------------------------------------------------------------------------------------------------------
替换:1,5表示:1-5行;$表示最后一行,%代表所有行;g表示某行其余的要替换;i表示不区分大小写。
:s/God/Girl //只将
该行进行替换,如果某一行有多个God,
只替换第一个。
:s/God/Girl/g //将
该行的
所有God替换,如果某一行有多个God,也会被替换。
:s/God/Girl/gi //将
该行的
所有God替换,如果某一行有多个God,也会被替换。并且
不区分大
小写。
:1,5s/God/Girl/ //替换
1到5行的God,如果某一行有多个God,
只替换第一个。
:1,5s/God/Girl/g //替换
1到5行的
所有God.如果某一行有多个God,也会被替换。
:1,5s/God/Girl/gi //替换
1到5行的
所有God.如果某一行有多个God,也会被替换。并且
不区分大小写。i表示不区分大小写。
:2,$ s/God/Girl/gi //替换从第2行到最后一行的所有God。如果
某一行有多个God,也会被替换。并且
不区分大小写。i表示不区分大小写。
:%s/
God/Girl/gi //替换
所有行的
所有God.如果
某一行有多个God,也会被替换。并且
不区分大小写。i表示不区分大小写。
------------------------------------------------------------------------------------------------------------------------------------------------------------------
cc //替换。将本行清空
r //输入一个字符替换光标处的一个字符
R //从光标处的字符开始替换,后面的字符一个一个被输入的字符覆盖
s //输入一串字符来替换光标处的字符
x //删除光标所在处的字符
X //删除光标所在前字符
dw //删除到下一个单词开头
de //删除到本单词末尾
dE //删除到本单词末尾包括标点在内
db //删除到前一个单词
dB //删除到前一个单词包括标点在内
D //删除光标到行尾
d0 //删除光标位置到本行开头
dd //删除一行
3dd //删除这一行及下两行。
yy //复制 单词:yank
5yy //复制光标以下5行
p //粘贴到光标所在行的下面
P //粘贴到光标所在行的上面
u //一次一次地恢复
U //一次性恢复
v //可视化选中。然后y:复制。d:删除。x:剪切。
Ctrl + r //撤销恢复
复制一个单词:
光标移到想要被复制词的词首,输入yw
光标移到想到粘贴的位置,输入p
批量操作多行:如批量注释,批量解开注释。
ctrl +v 竖着向下选
shift+i
修改
ESC
批量删除:
ctrl +v 竖着选中要删除的东西
按d
------------------------------------------------------------------------------------------------------------------------------------------------------------------
:%!xxd //十六进制模式
:%!xxd -r //返回文本模式
:new 2.c //再打开一个vim,是横向的SS
:vnew 2.c //再打开一个vim,是纵向的
:vnew
------------------------------------------------------------------------------------------------------------------------------------------------------------------
vim多窗口
:sp
或
:split
//新建一个窗口,将当前窗口(不是全屏幕)分割成两半,他们显示的是相同缓冲区的内容(同一个文件)。这样就可以在
两个窗口中
浏览相同的文件了。方便在一个地方输入东西,要看另一个地方怎么写的。
:vsp 或
:vsplit
//在当前的窗口基础上(不是全屏幕),创建全新的垂直分割的窗口,同样是显示和当前窗口同一个文件内容。
//当多个窗口编辑同一个文件时,在任意一个窗口进行编辑(例如删除一行),那么所有相同文件的窗口上都会同时反
应效果,因为他们共享同一个文件缓冲区。
:sp file1
//如果想编辑或浏览另一个文件,而又不想失去在当前文件中的编辑位置,就用新文件的参数传给:split命令
:vsp file1
Ctrl+ww
//窗口之间切换
自动对齐:gg=G
联想:ctrl +p
扫描二维码关注公众号,回复:
1121237 查看本文章
------------------------------------------------------------------------------------------------------------------------------------------------------------------
命令模式 --> 插入模式:
i //进入插入模式,光标
不动。与"INSERT"效果相同。
A //进入插入模式,光标到
行尾。
I //进入插入模式,光标到
行首。
o //进入插入模式,在
下方建一行,光标在新建的一行。
O //进入插入模式,在上方建一行,光标在新建的一行。
退出命令:
:w //保存
:q //退出
:wq //保存并退出。等同于":x"命令
:q! //强制退出。如果把窗口X掉,会产生垃圾文件。解决方法:把垃圾文件删掉。不要用X掉窗口的方法关闭文件。
:wq! //强制保存
如果在编辑过程中不小心按了
Ctrl+s,vim<span times="" new="" roman";="" mso-hansi-font-family:"times="" roman";mso-bidi-font-family:"times="" color:black;mso-ansi-language:en-us;mso-fareast-language:zh-cn;mso-bidi-language:="" ar-sa"="" style="font-size: 14pt; font-family: 宋体; ">会处于僵死状态,按
Ctrl+q
可以恢复。
高亮、tab4个空格、编码、