切换不同的模式
vim一共有4个模式
- 正常模式(Normal-mode)
启动vim后默认处于正常模式.不论位于什么模式,按下<ESC>键(有时需要按两下)都会进入正常模式. - 插入模式(Insert-mode)
在正常模式下按下i,l,a,A等键,会进入插入模式.现在只用记住按i键会进行插入模式.在插入模式中,击键时会写入相应的字符. - 命令模式(Command-mode)
在正常模式中,按下:(英语冒号)键,会进入命令模式.在命令模式中可以执行一些输入并执行一些vim或插件提供的指令,就像在shell里一样.这些指令包括设置环境,文件操作,调用某个功能等等.
常用的命令有:- q退出
- q!强制退出
- w保存
- wq保存并退出
- 可视模式(Visual-mode)
在正常模式中按下v,V,<Ctrl>+v,可以进入可视模式.可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的既视感,有时候会很方便.
插入
操作键 | 说明 |
---|---|
i | 在当前光标位置前插入数据 |
a | 在当前光标位置后插入数据 |
I | 在当前行开头处插入数据 |
A | 在当前行末尾处插入数据 |
o | 在当前行下面出入一行 |
O | 在当前行上面插入一行 |
删除/删除行
- 字符删除
- x 删除光标所在字符
- X 删除光标所在前字符
- 单词删除
- dw 删除到下一个单词开头
- de 删除到本单词末尾
- dE 删除到本单词末尾包括标点在内
- db 删除到前一个单词
- dB 删除到前一个单词包括标点在内
- 行删除
- dd 删除一整行
- D d$ 删除光标位置到本行结尾
- d0 删除光标位置到本行开头
跳转行
命令模式下输入(n为指定的行号):
- ngg/nG
- :n
- vim + n filename(注意这里要输入+号)
三者的区别在于,ngg/nG输入以后不需要按下回车键,而输入:n之后还有按下回车键才会跳转,vim + n filename 只能在打开文件时跳转到相应的行.
比如想跳转到文本的第12行,可以执行如下命令:
- 12gg/12G
- :12
- 打开文件时输入vim + 12 filename
保存
- 在正常模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则vi保存该文件后退出,返回到shell;若当前编辑的文件没被修改过,则vi直接退出,返回到shell
- 在命令模式下,输入命令
:w
vi保存当前编辑文件,但并不退出,而是继续等待用户输入命令.
在使用w命令时,可以再给编辑文件起一个新的文件名,
:w newfile
此时vi将把当前文件的内容保存到指定的newfile中,而原有文件保存不变.若newfile是一个已存在的文件,则vi在显示窗口的状态行给出提示信息;
此时,若用户真的希望用文件的当前内容替换newfile中原有内容,可使用命令
:w! newfile
否则可选择另外的文件名来保存当前文件 - 在命令模式下,输入命令
:q
系统退出vi返回到shell.若在用此命令退出vi时,编辑文件没有被保存,则vi在显示窗口的最末行显示提示信息,提示用户该文件被修改后没有保存,然后vi并不退出,继续等待用户命令.若用户就是不想保存被修改后的文件而要强行退出vi时,可使用命令
q!
vi放弃所作修改而直接退出shell下 - 在命令模式下,输入命令
:wq
vi将先保存文件,然后退出vi返回到shell - 命令模式下,输入命令
:x
该命令的功能同命令模式下的ZZ命令功能相同