可以。用过gitbash的朋友应该都遇到过这样的情况:git commit 的时候后面如果没有加-m ,会弹出一个文本编辑界面,就像这样。
这个时候其实就已经进入了vim 命令模式了,这是在提醒你需要输入你此次提交改变了什么东西。我们应该怎么输入信息保存并退出vim界面,如何回到gitbash终端模式呢?讲到这里不得不提一下vim的三种模式:
此时,我们只需要输入命令i,像平时提交信息一样输入完以后,再按一次ECS,大写ZZ退出。如果你想保存信息并退出而不是直接退出,需要按“:”进入编辑模式(也有人叫它底线模式或末行模式),输入wq即可保存退出。
注意:
任何时候,不管用户处于何种模式,只要按一下ESC键,即可使Vi进入命令模式;
ZZ 一定是大写,vim是大小写敏感的
什么是VI?与Vim有什么关系?
vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。Vi不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。 vi没有菜单,只有命令,且命令繁多。
vim是从 vi 发展出来的一个文本编辑器 。代码补完、编译及错误跳转等方便编程的功能特别丰富。
Vim打开文件的快捷方法
vim filename:打开或新建一个文件,并将光标置于第一行的首部
vim -r filename:恢复上次 vim 打开时崩溃的文件
vim -R filename:把指定的文件以只读方式放入 Vim 编辑器中
vim + filename:打开文件,并将光标置于最后一行的首部
vi +n filename:打开文件,并将光标置于第 n 行的首部
vi +/pattern filename:打幵文件,并将光标置于第一个与 pattern 匹配的位置
vi -c command filename:在对文件进行编辑前,先执行指定的命令
Vim 插入文本
i:在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
l:在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首执行 i 命令
o: 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
O(大写):在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
a: 在当前光标所在位置之后插入随后输入的文本
A: 在光标所在行的行尾插入随后输入的文本,相当于光标移动到行尾再执行 a 命令
Vim 查找文本
/abc: 从光标所在位置向前查找字符串 abc
/^abc: 查找以 abc 为行首的行
/abc$:查找以 abc 为行尾的行
?abc:从光标所在为主向后查找字符串 abc
n:向同一方向重复上次的查找指令
N:向相反方向重复上次的查找指定
在查找过程中需要注意的是,要查找的字符串是严格区分大小写的,如查找 "shenchao" 和 "ShenChao" 会得到不同的结果。
如果想忽略大小写,则输入命令 ":set ic";调整回来输入":set noic"。
如果在字符串中出现特殊符号,则需要加上转义字符 "\"。常见的特殊符号有 \、*、?、$ 等。如果出现这些字符,例如,要查找字符串 "10$",则需要在命令模式中输入 "/10\$"。
Vim 替换文本
r:替换光标所在位置的字符
R:从光标所在位置开始替换字符,其输入内容会覆盖掉后面等长的文本内容,按“Esc”可以结束
:s/a1/a2/g :将当前光标所在行中的所有 a1 用 a2 替换
:n1,n2s/a1/a2/g :将文件中 n1 到 n2 行中所有 a1 都用 a2 替换
:g/a1/a2/g :将文件中所有的 a1 都用 a2 替换
Vim删除文本
x:删除光标所在位置的字符
dd:删除光标所在行
ndd :删除当前行(包括此行)后 n 行文本
dG:删除光标所在行一直到文件末尾的所有内容
D:删除光标位置到行尾的内容
:a1,a2d:函数从 a1 行到 a2 行的文本内容
注意,被删除的内容并没有真正删除,都放在了剪贴板中。将光标移动到指定位置处,按下 "p" 键,就可以将刚才删除的内容又粘贴到此处。
Vim复制和粘贴文本
p:将剪贴板中的内容粘贴到光标后
P(大写):将剪贴板中的内容粘贴到光标前
y:复制已选中的文本到剪贴板
yy:将光标所在行复制到剪贴板,此命令前可以加数字 n,可复制多行
yw:将光标位置的单词复制到剪贴板
如果不小心误删除了文件内容,则可以通过 "u" 键来撤销刚才执行的命令。如果要撤销刚才的多次操作,可以多按几次 "u" 键。
Vim 保存退出文本
Vim 的保存和退出是在编辑模式中进行的
:wq 保存并退出 Vim 编辑器
:wq! 保存并强制退出 Vim 编辑器
:q 不保存就退出Vim编辑器
:q! 不保存,且强制退出Vim编辑器
:w 保存但是不退出Vim编辑器
:w! 强制保存文本
:w filename 另存到filename文件
x! 保存文本,并退出Vim编辑器,更通用的一个命令
ZZ 直接退出Vim编辑器
需要注意的是,"w!" 和 "wq!" 等类似的指令,通常用于对文件没有写权限的时候,但如果你是文件的所有者或者 root 用户,就可以强制执行。