vim编辑器有两种模式:输入文本模式,输入命令模式。
常用命令:
- 插入文本模式:
$ i
- 退出插入文本模式:
$ Esc
- 命令行模式:
$ : (英文输入法下)
- 保存文本:
$ :w 文件名
- 退出vim:
$ :q[退出] q! [强制退出] 或是 wq! [保存并强制退出],适合对已经存在的文件。
注意:首先进入命令行模式,输入这些命令才管用。
- 强制存盘写入
保存并退出时报错:E37: No write since last change No write since last change
$ :w!
命令解释:
w :write
q :quite
i:insert
案例:
1.删除某次提交记录
比如我的提交历史如下,我现在想删除commit_B,但是不影响commit_B之后的提交历史
commit_C
commit_B
commit_A
- 首先找到commit_B提交之前的一次提交的commit_A
- 执行如下命令
git rebase -i commit_A
- 此时光标会停留在你想删除的commit_B前,按下delete键删除 pick,然后 按下
i
键,进入insert 插入文本模式。输入 "drop" 然后。:q
发现退出不成功。报写入失败的错误E37:No write since last change (add ! to override)
。此时则需要强制写入输入:w!
完成写入动作。然后再:q
退出vim。
- 最后一步,执行
git push -f
- 如果是一个多人合作的仓库,建议别人把本地仓库删除。重新clone 一份远程仓库到本地。
- git log 发现成功删除了那一条记录。
2.使用vim写一个test.txt文本文件。
进入vim编辑器
$ vim
效果如图:
眼睛注意两个区域
文本编辑模式
$ i
此时输入一个 i 进入了插入文本模式
$ 输入内容
$ 按下 Esc键
进入命令行模式,注意,这里输入法必须是英文模式下,才能输入进去这个冒号
$ :
然后,保存内容到 test.txt文件中。
$ :w test.txt 然后回车
然后回车后:
然后再次进入命令行模式
$ :
再输入 q ,然后回车退出vim
$ :q
当然,这个文件要是不想要,可以直接输入 q! ,那么就直接退出vim。