vim的基本使用

Posted 正义的伙伴啊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vim的基本使用相关的知识,希望对你有一定的参考价值。

vim的基本使用

文章目录

vim是Linux操作系统上文本编译器,Linux上面的命令,大部分都是默认选择vi作为数据的接口,而且vim同时也支持在上面编写程序。

配置vim

如果你以前对你自己的vim没有配置过的话,你用第一次用vim 打开一个空白文本的时候大概是这个样子的:

这个vim看起来十分的简陋,连行号都不显示,而且你在上面敲代码,不会有:括号自动补全、首行缩进
总之拿这种vim敲代码属实是一种折磨,所以一个好的配置的vim是多么的重要,这里推荐一个大佬的配置:
按照安装说明安装即可
安装完的vim界面:

vim常见的模式 及 如何切换

要想熟练对的使用vim就必须了解vim的四种模式,首先如何查看目前vim是哪种模式?

在左下角有一块蓝色的字体:这就代表着目前所处的模式

常见的四种模式:

这四种模式对应着不同的操作方法,但是你打开vim的时候默认是NORMAL模式:命令行模式
如何在这四种模式中切换?

我们发现返回命令模式都是键入esc( 键盘左上角 ),而由命令模式切换成其他模式的键入则大不相同
下面我们来了解一下各种模式的具体功能:

命令模式

进入命令模式你会发现你无法输入任何字母,这是因为命令模式只接受特殊命令来对已有的文本进行批量化的修改,如果你想写代码可以切换到插入模式

  • 光标移动

    1. h 、 j 、 k 、 l——字符移动
      在vim中光标移动 不在是 键盘上的上 下 左 右四个键,而是改成了 h(相左箭头) j( 向下箭头) k( 向上箭头) l(向下箭头键) ,但是你会发现 其实你在vim中 上下左右 四个键也能移动光标,但是在某些情况下 上下左右就不能完成某些特定的移动了,这我们讲到可视区块时会提到

    2. w 、 b ——跳过单词移动
      w:光标跳到下个字的开头
      b:光标跳到上个字的字尾

    3. gg 、shift+g——跳过整个文本
      gg:进入到文本开始
      shif+g:进入到文本末尾

    4. ^(shift+6)、$(shift+4)——跳过行
      ^(shift+6):直接到光标所在行的行首
      $(shift+4):直接到光标所在行的行尾

  • 赋值、剪切功能

    1. yy 、数字+yy——复制并输入到缓冲区
      yy:复制光标所在行到缓冲区
      数字+yy:复制光标所在的改行向下数 n 行到缓冲区

    2. dd 、数字+dd——剪切并输入到到缓冲区
      dd:剪切光标所在行到缓冲区
      数字+dd:剪切光标所在的改行向下数 n 行到缓冲区

    3. p 、数字+p——缓冲区输出
      p:将缓冲区输出
      数字+p:将缓冲区输出 n 次

  • 文本修改

    1. r 、 数字+r——局部文本替换
      r:按下r后,光标所在单个字符会被替换成接下来输入的字符
      数字+r:光标所在单个字符和其后面的n个字符 会被替换成接下来输入的字符
    2. shift+r——进入替换模式
      接下来所有输入的字符都会替换光标所在的字符
    3. ~——大小写替换
      将大写替换成小写、将小写替换成大写
    4. x 、 数字+x——局部文本删除(向后删除)
      x:按下r后,光标所在单个字符会被删除
      数字+x:光标所在单个字符和其后面的n个字符 会被删除
    5. X 、 数字+X——局部文本替换(向前删除)
      x:按下r后,光标所在单个字符会被删除
      数字+x:光标所在单个字符和其前面的n个字符 会被删除
  • 撤销

    1. u——撤销上一次的操作,可以多次撤销
    2. ctr+r ——撤销的恢复

插入模式

插入模式没什么好说的,但是要注意一下进入插入模式的几个键入的不同

插入模式就是我们所说的编辑模式,操作就像我们在vs2019编译器上的操作一模一样

底行模式

底行模式是在底行输入 类似于我们在vim之外输入的指令,以达到一些操作:
进入底行模式的操作是键入::
下面是底行模式的几种常见的指令

  1. :%s/ 内容1 / 内容2 /g
    将内容1的文本替换成内容2的文本

  2. !gcc 文件名
    编译当前文件

  3. q 和 !q
    q 是退出vim
    !q 强制退出vim

  4. w 和 !wq
    w 保存当前vim编辑的文件
    !wq 强制保存文件并退出当前vim

  5. !vs + 文件名
    分屏操作

    如果想左右切换 键入ctr + ww

6.:sp 文件名上下分屏
:sp 文件名 如果不加文件名就默认是现在打开的文件,这样的用处打个比方,如果你一个代码过长一个函数声明在头部,但是定义在尾部,你想对照两段代码,就可以使用这个指令

这样你就能同时看到一个函数的第一行和最后一行
和vs分屏一样如果想上下切换 键入ctr + ww

替换模式

按下shift+r即可进入替换模式:接下来所有输入的字符都会替换光标所在的字符

vim遇到打开时的警告信息

有时候我们打开vim时会出现这种界面,不要担心,出现这种原因大概率是因为你写代码的时候还没有保存时xshell掉线或系统宕机了,这时就会有特殊机制将未保存的文件恢复过来,也就是你看到的这个界面。这时有两个文件:1.系统将你未保存操作后的文件储存在一个特定的路径下(下面称为缓存文件)2.最原始的那份文件(也就是没有进行未保存修改的原始文件),并向你提出了6个解决选项:

  • [O]pen Read_Only 对缓存文件进行只读,不做修改
  • [E]dit anyway 还是用正常的方式打开你要编辑的文件,并不会加载缓存的内容(也就是上次未保存的内容),你这次的修改会被记录,下次打开时就是修改后的文件(但是还会弹出这个界面)
  • [D]elete it:删除缓存文件,回退到原始文件(但是有时候并没有这个选项,这时就要手动删除缓存文件了)
  • [R]ecover 就是加载缓存的内容,用在你要救回之前未保存的工作,不过当你救回来并保存退出vim后,还是要手动删除这个缓存文件
  • [Q]uit 直接退出vim,啥都不做
  • [A]bort 和quit的功能差不多,都是直接退出

不过有时候并没有delete这个选项,导致每次打开都会出现这个鬼屎界面,那么下面演示如何手动删除这个缓存文件,其实非常简单,答案就携带这段文字中:

这就是缓存文件所在的路径,进去之后直接删除就行了,下次vim该文件时就不会出现警告了。

可视区块(Visual block)

前面的命令模式对文本修改都是以行为单位进行修改,那能不能自定义选中区域呢?
可视区就提供了一个好的方法,这个可视区域操作类似于Windows上的这个操作

如何使用?
键入ctr + v这时左下角会变成:

这时用 h 、 j 、 k 、 l——上下左右移动光标记住这里用键盘上的上下左右键是不行的!
你会发现光标会从你起始位置开始开始反白

反白区域就是你选中的区域,你可以对这片区域进行其他指令模式:
再键入y就把反白区域复制到缓冲区了
再键入p就把反白区域剪切到缓冲区了
接下开就会回到指令模式,你可以键入p将缓冲区里的内容粘贴

批量注释

在vs2019中又这么一个功能可以,将鼠标下拉选中的文本进行批量注释

vim中也可以实现该功能,不过比vs要麻烦不少,步骤如下:

  1. 首先按下ctr v进入可视区块

  2. j移动光标至要注释文本的末尾

  3. 键入shift i进入插入模式,并输入//

  4. 最后再按一下esc 就完成了😋

以上是关于vim的基本使用的主要内容,如果未能解决你的问题,请参考以下文章

vim的基本使用

vim笔记

vim使用

vi/vim基本使用方法

vi/vim基本使用方法

vi/vim基本使用方法