posts - 87,comments - 0,views - 12403

观前声明

vim就是个编辑器,操作特别了一点,然后或许有人和你说vim能提高工作效率,或许吧,我是没怎么觉得他会比传统的方式快多少,毕竟写代码并不是一直敲键盘就行的,当你足够熟练vim可能就会提高工作效率吧,所以,如果你是为了提高效率才学习vim,我并不建议,vim的学习成本还是有的,性价比不高

那么我认为哪些人合适呢?

  1. 空闲时间多的,想体验新事物
  2. 觉得不用鼠标很酷的,喜欢敲键盘

其他的我就不太建议了哈。当然适当了解是很好的,投入的话性价比不是很高。

怎么学习vim呢?我不建议看书或者直接看各种技巧,因为这不是现有阶段用的上的,看得多又用不上很快就忘了,所以我建议大家学习vim,就从简单的输入开始用,遇到问题了就去查,这样才能记得住,所以学习成本还是有的

本文并不是直接罗列各种技巧各种术语,而是以一个一个的场景来带大家体会vim是如何承担起鼠标的工作的,后续作者也会持续加入自己遇到的问题,喜欢本文的可以持续关注下。

本文所有的场景演示均是在linux环境

vim是什么

vim其实就是一款编辑器,并没有什么特别的,他和vscode记事本这些都是文本编辑器,比较特殊的点在于操作模式以及扩展性

vim主要有3种操作模式

  • normal 正常模式,光标移动,文本删除、复制、粘贴...
  • insert 插入模式,文本的插入(输入)
  • command 命令模式,特殊的命令,比如设置行号等等
    除了这3中模式之外,还有其他的模式,但这三种是最常用的

模式之间的转换主要是通过<Esc>键,好了,就介绍到这里,让我们开始使用vim吧

vim的使用

场景1:怎么进入vim啊?

1

vim是vi的升级版,在linux环境中,vi和vim实际上最终指向一般都是vim,这里用vi单纯的是因为可以少打一个字符

vi text 的意思是用vi编辑一个叫text的文件,当然你也可以直接进入vi,等最后编写完退出时指定保存的文件名就行

按下回车,我们就进入了vim了,以下就是vim的界面了,光标位于左上角,最底部的两行是特殊的

  • 蓝色部分 是我们的 编辑区域
  • 红色部分状态栏,显示文件名,还有光标的位置
  • 绿色部分消息栏,显示当前的消息,这里显示的是新建了一个文件

2

场景2:怎么输入啊?

按下i键进入 插入模式, 然后就可以输入了,可以看到当我们进入插入模式后,状态栏 显示 [+],这表示当前文件已经被修改了,消息栏 显示 -- INSERT --这表示我们进入了插入模式,然后我随便输入了一点内容,想要换行输入回车键就可以到下一行了

3

当我们不想输入了,就按下<Esc> 退出插入模式,避免误修改文件,这时候应该可以看到 消息栏 没有显示插入模式的消息了

场景3:怎么移动光标啊?

退出了插入模式后,我想回到某个位置,怎么移动呢?

上下左右键当然可以移动,不过在vim中,还可以使用hjkl这4个键来进行移动,分别对应左上下右

场景4:怎么(保存)退出呢?

正常模式下 按下 :键 进入 命令模式,这时候会发现 消息栏 多了一个冒号,并且输入的内容会显示在这里,然后输入 wq 表示保存并退出,输入 q 表示不保存直接退出,如果不允许这样操作,在后面加上 ! 表示强制执行

所以最后是

  • :wq 保存退出
  • :q 不保存退出
  • :wq! 强制保存退出
  • :q! 强制不保存退出

场景5:不是,怎么删不掉最后一个字符啊?

事实上,当你按下i键后,输入的位置是在块状光标前面,所以你没法对最后一个位置的字符操作,至少目前是这样,那我们怎么让 输入的位置是在块状光标后面呢?

按下a键就可以啦

场景6:怎么才能新增一行方便一点呢?不想移动到行首行尾在插入在换行,太慢了

正常模式下 按下o键会自动在光标下新增一行,并进入插入模式,按下O键会自动在光标上新增一行,并进入插入模式

场景7:怎么让光标快速移动到行首/行尾呢?

正常模式下 按下0键光标会移动到行首,按下$键光标会移动到行尾

场景8:怎么让光标快速在单词之间跳转呢?不想一格一格的移动

正常模式下 按下w键光标会移动到 下一个 单词的 开头b键光标会移动到 上一个 单词的 开头e键光标会移动到 下一个 单词的 结尾

场景9:怎么删除当前行呢?

正常模式下 按下dd键会删除光标所在行,按下2d会删除当前行在内的以下2行,3d 4d同理

场景10:怎么删除一个单词呢?

正常模式下 按下dw键会删除从光标开始的单词,daw会删除光标所在的单词,d2w会删除光标所在单词在内的2个单词,d3w d4w同理

场景11:怎么直接删除光标前/后的内容呢?

正常模式下 按下D键会删除当前行 光标后 的所有内容,d0键会删除当前行 光标前 的所有内容

!!!后续再更新!!!

posted on   Dylaris  阅读(137)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示