Vim 有两种编辑模式,一种是编辑模式,一种是普通模式。 如果要在使用 vim 命令打开文件并编辑文件后保存并退出文件:
步骤1: 您需要按 Esc 键退出编辑模式并返回正常模式。 esc 键是键盘左上角的键。
步骤2:在正常模式下,输入:wq命令,保存并退出。 请注意,此处的 :wq 需要三个字符。 第一个需要先按住shift键,然后再按L键右侧的键。 第二种是按w键,第三种是按q键,输入:wq后(可以在编辑器页面底部看到输入的:wq),然后点击回车键保存退出。
Vim 经常因为其极高的学习门槛而劝阻很多新手,但这主要是因为市面上缺乏好的 vim 教程,其实只要按照合理的顺序学习,vim 并不难,而且效率极高。 有很多人连vim的基本用法都搞不懂,就急着学习各种插件,最后什么都看不懂,然后吐槽是垃圾工具。
我将把 vim 分为四章,它们是:
vim 的基本操作,即 vim 附带的功能,不需要任何安装。
Vim 自带高级操作、配置文件配置,例如如何在 vim 中配置各种映射等。
安装和使用 VIM 的各种插件。
vim 和各种工具的配合,这个是可以理解的,用 vscode 调用 vim 自带这部分函数。
这四章是渐进的关系,要学好上一章,才能学会使用下一章。
vim 有问题
VIM要求肌肉记忆要熟练使用,如果有任何问题可以到我创建的QQ群“361863861”提问,有些操作经过实验后不懂,可以讨论。
我用的是最新版本的vim,vim8,使用vim与操作系统无关,ubuntu、centos等,可以使用vim--version查看vim的版本,如果是vim7,建议升级到vim8,vim7可能在某些功能上不支持。
1-1 初次接触 vim:我从裸露的 vim 开始配置。
1)输入vim进入vim,输入vim文件名,可以使用vim编辑文件。进入正常模式后,你不能输入任何内容,使用 :q 退出 vim。
2)要编辑文件,必须进入编辑模式,输入i(插入)进入编辑模式,输入a(append)和o(在下面开一行)进入编辑模式。I 表示在光标位置插入,a 表示在光标后面的位置插入,o 表示插入电流的下一行。 为了提高编辑效率,i、a、o也可以进入编辑模式,i表示从行前开始编辑,a表示从行后开始编辑。
因此,使用 i、i、a、a、o 和 o 都可以以不同的方式进入编辑模式。
3)在编辑模式下,按esc键返回正常模式,输入:q退出vim,输入:wq保存文件,然后退出。
4)注意:如果文件已被修改,您将无法通过键入:q退出文件,您必须输入:wq保存并退出,或者键入:q!如果您不保存,请强制退出。
1-2vim 模式介绍
1)很多新手会想,为什么 vim 有这么多模式,而 vim 应该拿出普通模式而不是编辑模式?
Vim 有这么多模式,以提高工作效率。
Vim 是以规范模式出现的,因为我们的大部分工作都是在正常模式下完成的,而编辑只是一小部分。
这两点在大量使用 vim 之后会更有经验。
2)Vim最初处于正常模式,输入:可以进入命令模式。在正常模式下键入 :q 退出 vim 实质上是在命令模式下键入 q 退出 vim。 在命令模式下按 esc 退出命令模式。
在正常模式下,按V键进入可视化模式,按ESC键返回正常模式。
1-3vim 编辑技巧
1)在编辑模式下,我们可以使用快捷键来修改我们编辑和修改的部分中的字符。
Ctrl + H 删除光标前面的字符。
Ctrl + W 删除光标前面的单词。
Ctrl + U 删除光标前面的所有内容。
2)在普通模式下,您可以使用hjkl代替箭头键,hjkl分别代表左,下,上和右,这样您就可以在不离开键盘的情况下移动光标。
3)在正常模式下,退出编辑模式时可以按gi键跳转到光标所在的位置,进入编辑模式。
如何在 1-4normal 模式下移动光标
1)w w移动到下一个单词的开头,e e移动到下一个单词的末尾,b b移动到上一个单词的开头,其中小写表示非字母被划分为单位(如冒号、引号、逗号和空格是死单位),大写表示单位被空格分隔。
2)行间字符搜索移动,按f {char},可以快速移动到char,按;,可以移动到上一个字符的下一个字符 char。 f 表示从文件开始搜索字符,f 表示从文件末尾开始搜索字符。
3)如何快速移动到一行的开头或结尾:0移动到一行的第一个字符,$移动到一行的最后一个字符。
4)页面将gg g移动到文件的开头和结尾,可以使用ctrl+o快速返回,ngg可以快速跳转到文件的第n行。
HML 可以快速跳转到屏幕的开头、中间和结尾。
Ctrl + U,Ctrl + F,上下翻转,zz 将当前行设置到屏幕中间。
1-5 VIM 内置快速添加、删除、修改、修改、查询
1) Vim Quick Delete:正常模式。
x 快速删除光标后面的字符。
您可以将 d 与文本对象一起使用以快速删除单词,例如 daw(删除单词周围)、dw、diw。 daw 代表删除光标的单词,包括单词旁边的空格。 dw 表示删除光标后面的单词,diw 表示删除光标所在的单词,但不包括单词旁边的空格。 dt{char} 表示从光标位置删除的字符,在 char 之前。
2)在正常模式下快速修改vim。
常用的有三种,r(替换)、c(更改)和 s(替换)。
R 可以替换一个字符,S 删除当前字符并进入插入模式。
C可以配备一个文本对象来快速修改一个单词,cw、ciw、caw只是在dw的基础上,diw、daw同时删除进入插入模式。
3)vim,查询词也是一种常见的操作。
使用还是? 要执行正向或反向搜索,请使用 n n 跳转到下一个上一个匹配项,例如 time 搜索单词 time,按 n 指示下一个匹配项。
使用 * 匹配,将光标放在一个单词上,* 表示上一个和下一个相同的单词。
1-6 如何替换 vim
vim 是: [range]s [flags]。
range 表示要替换的范围,例如 10,20 表示 10-20 行,% 表示全部。
string1 表示要替换的字符串。
string2 指示被替换的字符串。
flags 表示标志,常用的是 g(表示全局执行),如果没有 g,每行只会替换行中的第一个匹配项。 c表示确认,我们可以在进行替换时选择是否替换,n表示匹配次数,但不进行替换。
例如,%s my you g 将文件中的所有 my 替换为 you。 此外,string1 和 string2 都支持正则表达式。