前言

相信接触过vim的读者或者是刚接触vim的读者,都对vim的操作一头雾水,甚至有些指令傻傻分不清楚。那么,看到这篇文章之后,一定能扫除你之前使用vim的困惑。相信经过本文的讲述能带着大家更加深入的了解vim、使用vim以及喜欢上vim!

本文在每个小节结束的末尾都会对本小节的指令做一个汇总,方便大家的查询。

那么话不多说,开始对vim操作的深入了解!!!💖🚢🚢🚢

哈哈哈

1. vim的简介

🍉相信已经有部分的读者已经了解过了vim是个什么东西了,但是为了照顾部分读者,这里还是有必要讲一下vim是个什么东西。

vim是个编辑器,如果大家使用过VSCode的话,对此再也了解不过了。vim就类似于Windows下大家常用的记事本,但是它比记事本的功能强大的多,这个也是我们必须得学习vim的理由之一 —— “vim是一款具有多模式的编辑器”。

🍉本文就是以vim的不同模式作为讲解vim操作的主线,深入讲解在vim不同模式下的各种指令,以及对应的作用。

那么,vim的模式共有5种:命令模式(默认模式)、插入模式、底行模式、替换模式、视图模式。
注意一个地方就是,大家想从一个模式切换到另一个模式期间必须都得先切换回命令模式。

好了,让我们进入指令操作的讲解吧!!!
哈哈哈

2. 命令模式下的指令

命令模式下,用户在vim中输入的所有字符都会被认为指令。

2.1 光标移动类指令

指令:

  • gg作用:定位光标到最开始行。 直接按键盘字母g键两次。
  • shift+g(G)作用:定位光标到结尾行。按住shift键和g键,或者键盘切换到大写模式之后按g键即可。
  • [n]+shift+g([n] + G)作用:定位光标到指定行。 这里要说明的一点是,n代指的是你需要定位的行序号,比如:我按住6+shift+g,意味着我的光标就要定位到第6行。
  • shift+$作用:定位光标到当前行的结尾。 大家在输入时注意切换回英文输入法。
  • shift+^作用:定位光标到当前行的开头。 大家在输入时注意切换回英文输入法。
  • w光标以单词为距离单位,进行行内或跨行向后移动。(遇到的是特殊符号(\、"等),则光标移动一步)(大家可以自行测试)
  • b光标以单词为距离单位,进行行内或跨行向前移动。(遇到的是特殊符号,则光标移动一步)
  • h将光标向左移动。(等价于键盘上的"←")
  • j将光标向下移动。(等价于键盘上的"↓")
  • k将光标向上移动。(等价于键盘上的"↑")
  • l将光标向右移动。(等价于键盘上的"→")

这里需要跟大家,讲一下h,j,k,l如何记忆?以及为什么有着键盘上的上下左右键不用,非得用h,j,k,l?

  • 大家可以看一下自己键盘的布局,h和l分别位于这四个字母的最左边和最右边,也就可以形象的记忆为h是将光标向左移动,l是将光标向右移动。其次,j可以想象成一个英文单词"jump",向下跳(泰坦尼克号),所以j就是将光标向下移动。k可以想象成一个单词"king",国王都是高高在上的,为此k就是将光标向上移动!
  • 为什么有着键盘上的上下左右键不用,非得用h,j,k,l?
    有些读者肯定会有这么一个疑问,为什么放着键盘现成的上下左右键不用,要用我们不熟悉的h,j,k,l。原因很简单,就是早期的键盘没有现成的上下左右键,这个点我们要努力克服,尽量使用h,j,k,l。
    古董级键盘

2.2 复制、拷贝、剪切、删除以及撤销指令

  • [n]yy作用:复制行内容。 这个n(代指数字)可写可不写,具体看你自己要复制多少行。如果你只要复制当前行的内容,就直接输入yy即可。如果你要复制当前行乃至当前行下面行的内容,此时就得输入一个数字再输入yy了。比如我输入了4yy,就相当于我从当前行开始往后再复制3行的内容(因为包括了当前行的内容)。
  • [n]p作用:粘贴。 这个n可写可不写,具体看你自己要粘贴多少行内容。这里需要注意的是,粘贴的内容是从当前行的下一行开始粘贴的,位置于yy指令有些许区别。
  • [n]dd作用:删除、剪切。 这个n(代指数字)可写可不写,具体看你自己要删除或剪切多少行内容。删除或剪切的操作是从当前行开始的。
  • [n]x删除光标之后的字符。 这个n(代指数字)可写可不写,具体看你自己要删除多少个字符。如果单单时是输入一个x,就代表删除1个字符。
  • [n]X删除光标之前的字符。 这个n(代指数字)可写可不写,具体看你自己要删除多少个字符。如果单单时是输入一个x,就代表删除1个字符。
  • u作用:撤销。意思就是返回你上一次的操作的样子,这个应用的场景大多数都在误操作。
  • ctrl+r作用:撤销之前的撤销。 按住 ctrl 键之后再按 r 键。

2.3 其他作用的指令(大小写切换、替换字符)

  • [n]r对光标之后的n(代指数字)个字符进行替换。
  • shift+~大小写切换。 大写变小写,小写变大写。

2.4 模式之间切换的指令(十分重要)

  • i切换为插入模式。
  • shift+:切换为底行模式。 先按住 shift 键之后再按 ;键即可。
  • shift+r切换为替换模式。 先按住 shift 键之后再按 r 键即可。
  • shift+v切换为视图模式。 先按住 shift 键之后再按 v 键即可。

哈哈哈


3. 底行模式下的指令

前提条件是,大家必须得从命令模式中用指令切换到底行模式,才能使用下面的指令。(这个往往是初学者容易忘记的一个点)

  1. ESC退出底行模式,回到命令模式。 键盘的左上角有个ESC键,按一下就可以退出底行模式了。
  2. set nu会在vim中显示行号。(非常实用)
  3. [n]在底行模式下,将光标跳转到指定行。 注意:这里的[n]不是真的字母n,而是一个数字,这里我只是为了方便描述。我们只要再底行模式下输入4并按一个回车键,就可以将光标体跳转到第4行。
  4. / 关键字在vim显示的文本下从第一个关键字的行开始往下搜索,按住n键,就可以搜索下一个含有这个关键字的行。 先输入/,后面直接跟你想要查找的关键字即可。
  5. ? 关键字在vim显示的文本下从最后一个关键字的行开始往上搜索,按住n键,就可以搜索上一个含有这个关键字的行。 先输入?,后面直接跟你想要查找的关键字即可。
  6. noh消除查找关键字之后的高亮
  7. vs [filename]以分屏的形式打开这个文件。
  8. ctrl+ww切换窗口。 有了这个指令我们就是可以实现多文件操作了。
  9. w保存文件。
  10. q退出vim。 这里做一个拓展,一般我们可能会遇到vim异常,导致你就算切换到底行模式输入了q键也无法退出,此时我们就得在q后面加一个!号,表示强制退出。 而这个指令一般与w搭配使用,也就是输入wq,表示保存并退出!
  11. 替换文本内容:%s/[替换的字符串]/[替换成的字符串]/g
  1. %表示全文替换。
  2. s相当于指令开始的起手势,必不可少。
  3. g表示仅替换第g行的指定的字符串。

4. 替换模式下的指令

大家切换到替换模式时,会看到一个小细节:
细节
在此模式下,你输入的所有字符都会随着光标的移动覆盖掉你之前写的文本!这个就是替换模式所赋予我们的功能。

  1. ESC退出替换模式,回到命令模式。 键盘的左上角有个ESC键,按一下就可以退出替换模式了。

🍉这里没有写插入模式的指令,是因为插入模式没有指令。这个模式下是我们真正写代码的模式!!!

好了,到这里本文的内容就已经全部讲解完毕了。指令虽然多,但是只要大家勤加练习,一定都不是问题的!!!

如果觉得本文对你有帮助的话,麻烦给偶点个赞吧!!!

哈哈哈

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐