序言:最近在编辑器里开启了vim模式,感觉很过瘾,但是还是不是很熟练,这里开个新坑记录下常用的命令
Vim(Vi IMproved)是一款文本编辑器,它是从早期的Unix文本编辑器Vi发展而来的。Vim在功能上比Vi更强大,并添加了许多新特性和改进。它被广泛用于命令行界面和终端环境下的文本编辑,且具有高度可定制性和强大的编辑功能,可以处理各种编程语言和文件格式
Vim中常见的四种模式
normal
:普通模式visual
:可视化模式insert
:编辑模式command
:命令行模式这是默认的启动模式。在普通模式下,你可以输入各种编辑器命令来执行操作,例如移动光标、复制粘贴、删除文本等。也可以使用快捷键和命令来操作文本文件,但不能直接输入或编辑文本内容。
esc
:从其他模式返回到normal
模式(试着将esc
映射到不常用的大写键,用shift+字母的方式进行大写的输出,这样操作起来效率会更高,方法可以看下面3.2)早期的计算机键盘上没有上下左右按键,也没有鼠标,所以使用键盘来进行光标移动是必然的选择。为了方便终端用户进行编辑,vi选择了h、j、k和l作为光标移动键。
h/j/k/l
:左/下/上/右移动0
:跳转到行首%
:当光标处于左括号时,移动到匹配的右括号b/w
:以单词为单位左/右移动ctrl+d
:向下翻页ctrl+u
:向上翻页ctrl+e
:窗口向下滚动一行ctrl+y
:窗口向上滚动一行默认情况下,模糊查找是区分大小写的(Case Sensitive)。可以通过:set smartcase
来设置不区分大小写的搜索,这个操作是接下来我们将要介绍的命令模式下的操作。
/
:开启模糊查找
n
:查找下一个N
:查找上一个f
:点击后再按下任何一个字符,在当前行中,可以移动到当前位置开始匹配的第一个字符y
:复制当前字符yy
:复制当前行d
:剪切当前字符dd
:剪切当前行p
:在当前行的下一行粘贴P
:在当前行的上一行粘贴x
:删除选中的字符r
:输入一个字符可以替换掉当前字符将上述编辑操作组合起来,可以归纳为[count] [operation] [motion]
。其中count指的是想要执行操作的次数,operation指的是操作类型,motion指的是操作的执行动作,比如i"表示在引号中执行操作。
da
:(Delete Around)。移动到括号或者引号中间,先按下da
,紧接着再按下"
或者(
,即可将中间的内容,包括括号也全部删除di
:(Delete Inside)。跟上一个命令的区别在于不删除外侧的括号va(
、vi"
、ci"
等等ctrl+]
:跳转函数ctrl+o
:返回到上一次光标处ctrl+i
:前进道上一次光标处u
:回退ctrl+r
:撤销回退gg
:跳转到行首G
:跳转到行尾ngg
:跳转到指定行(n为行号)重复操作
.
:重复执行上一步操作- 普通模式命令速查:
-
- . : 重复上次修改
-
- x: 删除光标下的字符,这种情况下可使用. 来重复修改
-
- u: 撤销上次操作。
-
- >G: 增加从当前行到文档末尾处的缩进等级。
-
- 0: 移动到行首
-
- $: 移动到当前行末尾
-
- a: 在当前光标之后添加内容
-
- A: 跳转到当前行末尾添加内容
-
- db: 删除当前字符前的一个词,会留下当前的字符
-
- dw: 删除当前字符后的一个词
-
- daw: 删除整个单词
-
- d2w: 删除2个单词
-
- gu: 转小写
-
- gU: 转大写
-
- >: 增加锁进
-
- <: 减小缩进
-
- yy: 拷贝一行到寄存器
-
- p: 贴上
在普通模式下按下i
键进入插入模式。在插入模式中,你可以直接键入文本内容,就像在其他常见文本编辑器中一样,可以自由地添加、修改和删除文本。
i
:当前位置编辑I
:跳转到行首编辑A
:跳转到行尾编辑o
:在当前行的下一行另起一行编辑O
:在当前行的上一行另起一行编辑在普通模式下,按下v键可以进入可视模式。在可视模式下,你可以通过移动光标选择文本块,然后对所选文本执行操作,如复制、删除、替换等。可视模式非常有用,可以方便地对文本进行批量操作。
文本选择
v
:进入visual模式并选中当前字符shift+v
:进入visual模式并选中整行
shift+>
或shift+<
进行缩进,也可以执行复制/剪切/删除操作
ctrl+v
:进入visual模式并选中当前字符并按列选中利用列操作可以便捷处理多行写入
1. 多行注释
进入命令行模式,按ctrl + v进入 visual block模式(可视快模式),然后按j, 或者k选中多行,把需要注释的行标记起来
按大写字母i,再插入注释符,例如//
按esc键就会全部注释了
2. 取消多行注释:
进入命令行模式,按ctrl + v进入 visual block模式(可视快模式),按小写字母L横向选中列的个数,例如 // 需要选中2列
按字母j,或者k选中注释符号
按d键或x键就可全部取消注释
- 可视模式:(选中一块文本区域)
-
- v: 选中可视范围(字符)
-
- V: 选中可视范围(行)
-
- gv: 重选上次的高亮区域
-
- o: 切换高亮活动端(用于调整高亮边界)
-
- 常见用法1: 高亮选中多行,然后锁进 v 然后><
在普通模式下,按下:键可以进入命令模式。命令模式允许你在底部输入各种命令,例如保存文件、退出编辑器、执行外部命令等,在命令行中输入命令并按下回车键来执行操作。
:q
退出:w
保存:x
/:wq
保存并退出解决方法:
将esc健改成其他键。我这里是在mac下修改,很简单使用原生功能就行了
这里笔者主要是在idea里使用vim(很简单安装IdeaVim这个插件就可以了),但是光安装这个插件的话,经常会在聊天软件&开发工具切换时候遇到一个中英文输入的问题,很让人头疼。解决办法是安装 IdeaVimExtension 插件【前提,已经安装好 IdeaVim 插件了】
安装完成后直接将`set keep-english-in-normal[-and-restore-in-insert]`加入到`~/.ideavimrc`文件中并重启IDE来启用插件功能。就可以实现自动切换了,很舒服。
下面是一个vim小游戏