• 一篇文章带你入门vim



    vi&vim

    vi和vim的区别,简单来说它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi所有指令,而且还与一些新的特性在里面,比如语法高亮,可视化操作不仅可以在 终端运行,也可以运行于 mac os上。

    vim 概念

    vim是有着多种模式的文本编辑器,这里这介绍最常用的三种模式。

    1. 命令模式(默认模式)
      控制屏幕光标的移动,字符、字和行的删除、移动复制某区段以及进入 插入模式下,或者进入 底行模式下
    2. 插入模式
      只有在插入模式下才可以输入文字,按 Esc键 就可以回到命令模式
    3. 底行模式
      文件保存退出,也可以进行文件替换,查找字符串,列出行号等一系列操作,在命令模式下,shift+: 就可以 进入该模式,本质就是输入一个冒号。

    查看所有 vim 模式 命令,进入vim 在底行模式 输入下面的命令
    help vim-modes

    vim共用16种模式,分为 6这种基本模式和 6种附加模式

    在这里插入图片描述

    在这里插入图片描述

    vim的基本操作 (模式切换+保存退出)

    在这里插入图片描述

    语法:vim 文件名

    注意:vim 命令 进入到 vim之后,默认是 处于命令模式的,要切换到插入模式后才能进行输入文字

    • [命令模式] 切换到 [插入模式]

    • 输入a

    • 输入i

    • 出入o

      也就是说输入 a、i、o都可以从命令模式切换到插入模式

    • [命令模式] 切换到[ 底行模式]
      同时按住 shift + :,本质上就是输入冒号,就可以从命令模式切换到底行模式

    • [插入模式 或 底行模式] 切换到 命令模式

      无论是在插入模式还是在底行模式下或者你不知道你在哪个模式,直接无脑按 Esc就可以了

    • 退出vim及其保存文件
      在命令模式下输入 : 进入底行模式
      共有三个字母选项:w:保存、q:退出、!:强制

      1. 保存文件::w
      2. 不保存退出:q
      3. 强制保存并退出:wq!
      4. 强制退出:q
      5. 强制保存:w!

    在这里插入图片描述

    vim 命令模式操作汇总

    移动光标

    • 光标的移动:左 h、下j、上k、右l

    • 光标左右定位:shift+^shift+$,左右定位(直接将光标定位到当前行的字符最左侧和最右侧)`空白字符不算

    • 上下定位:shift+g定位到最后一行、gg 定位到第一行

    • 指定定位:n+shift+g,n是数字表示 定位 到 第几行,比如 8+shift+g 定位到第八行开头

    • 单词定位:w光标定位到下个单词的开头,e光标定位到下个单词的结尾,b光标定位 到上个单词的开头

    • 向后定位:数字+l将光标移动到当前行的当前位置的后n个字符,如果是 6+l就是向后移动 6个字符

    • 翻页:ctrl+f屏幕向后移动一页,ctrl+b屏幕向前移动一页,ctrl+d屏幕向后移动半页,ctrl+u屏幕往前移动半页

    删除文字

    • x:每按一次,删除光标所在位置的第一个字符
    • [#x]:比如 3x表示删除光标所在位置的后面(包含 自己)的3个字符
    • X:大写X,每按一次删除光标所在位置前面的一个字符(不包括自己)
    • #X:大写X,比如 10X删除光标所在位置的前10个字符(不包括自己)
    • dd:删除光标所在的那一行
    • #dd:从光标所在行开始删#行,,比如4dd就上从当前行往下删4行(包括所在行)

    复制剪切粘贴文字

    • yw:将光标所在之处到字尾的字符复制到缓冲区(可理解为从某个单词的光标位置复制这个单词的字母,一般遇到不同类型的字符会停止复制)
    • #yw:复制#个单词到缓冲区(单词与单词的区分可以是单词或者字符或者中文,这可能不严谨)
    • yy:复制光标 所在行到缓冲区
    • #yy:复制光标所在行往后#行,包括当前行
    • p:将缓冲区的字符粘贴到光标所在位置(注意:所有于y相关的复制命令都必须和 p配合才能 完成复制与粘贴功能
    • dd+p:剪切当前行文字

    替换文字

    • r:替换光标所在字符,比如 r+6就是将光标所在字符替换成 6
    • R:不断替换光标所到之处的字符,知道按下Esc键为止

    撤销和恢复撤销

    • u:立即撤回到上一次操作,类似于windows的Ctrl+z
    • Ctrl+r:撤销恢复,恢复到撤销之前的状态

    大小写切换

    • shirt + ~:将光标所在处的字符小写替换成大小,大小替换成小写

    底行模式命令汇总

    shift + : 进入底行模式

    显示行号

    • set nu:显示行号

    • 在这里插入图片描述

    • set nonu:取消行号

    保存退出

    • w:保存、q:退出、!:强制,可以配合使用

    在vim下执行Linux命令

    • !+[命令]:不用退出vim执行Linux命令

      在这里插入图片描述
      在这里插入图片描述
      再ls查询是否有编译成功的代码

    在这里插入图片描述
    在这里插入图片描述
    执行编译成功的代码

    在这里插入图片描述
    在这里插入图片描述

    vim分屏

    • vs 文件名:分屏
      如果文件不存在,该命令会自动创建,且要用命令保存,不保存最后退出 还是 不会在目录中出现

    每个分屏都是一个vim,都可以进行vim多种模式的切换

    在这里插入图片描述

    • ctrl + w:分屏时,光标在多屏幕下进行切换

    多个分屏可以用该命令进行切换,光标在哪就在哪个vim窗口里

    vim配置

    • /etc/下面,有个名为vimrc的文件,是系统中公共的 vim配置文件,对所有用户都有效

    • 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为 .vimrc
      在这里插入图片描述
      vim .vimrc打开文件就可以在里面添加一些vim配置

    • 比如显示行号 set nu
      配置了这个之后就不用在底行模式显示行号了
      更多配置可自行百度

    由于vim的配置非常麻烦,某些配置还需要安装插件。可以使用大佬在 Githup上的vim配置,只需要一条命令就可以使用齐全的vim配置


  • 相关阅读:
    list的模拟实现
    6.0、C语言数据结构——链式存储结构 (1)
    HTML学生个人网站作业设计成品 HTML+CSS肖战明星人物介绍网页 web结课作业的源码...
    论文阅读 3 | Few-shot Domain Adaptation by Causal Mechanism Transfer
    MySQL数据库初体验
    linux安装rabbitmq(正式环境)
    【数据结构】探究邻接矩阵A^2的意义
    基于ssm框架的高校班级管理系统设计与实现
    【路径规划-PRM路径规划】基于RRT算法避障路径规划附完整matlab代码
    计算机毕业设计SSMjspm基于框架的影视分享平台【附源码数据库】
  • 原文地址:https://blog.csdn.net/weixin_53946852/article/details/125449354