Linux Vim 编辑器的使用

Vim 编辑器的使用

  • 一、安装及介绍
  • 二、基础操作
  • 三、高级功能
  • 四、配置与插件


一、安装及介绍

Vim是一款强大且高度可定制的文本编辑器,相当于 Windows 中的记事本。具备命令、插入、底行等多种模式。它可通过简单的键盘命令实现高效的文本编辑、查找替换、分屏操作等,广泛应用于代码编写和文本处理工作。

  1. 安装方法

    系统命令
    Linux Ubuntusudo apt install vim
    Linux CentOS 7sudo yum install vim
    macOSbrew install vim
    Windows下载gvim.exe安装包
  2. Vim 模式

    命令功能
    命令模式(Normal Mode)启动 Vim 后的默认模式,用于执行操作命令。按 Esc 返回该模式。
    插入模式(Insert Mode)用于文本输入,通过 i/a/o 等键进入。i : 光标前插入, a: 光标后插入, o : 下方新行插入。
    底行模式(Ex Mode)用于执行文件操作或高级命令,按 Esc 输入 : 进入该模式。
  3. 保存操作

    操作类型常用命令说明
    退出:q退出当前文件
    强制退出:q!放弃修改并退出
    保存:w保存当前文件
    保存并退出:wq保存并退出
    强制保存并退出:wq!强制保存并退出

二、基础操作

  1. 光标移动

    命令功能
    h左移
    j下移
    k上移
    l右移
    w跳至下一单词开头
    b跳至上一单词开头
    gg跳至文件开头
    G跳至文件末尾
    0跳至行首
    $跳至行尾
  2. 文本编辑
    (1)插入操作

    命令功能
    i在当前光标位置插入
    a在当前光标后插入
    o在当前行下方新建一行并插入

    (2)删除操作

    命令功能
    x删除光标所在字符
    dd删除整行
    dw删除光标到单词末尾
    d$删除光标到行尾

    (3)复制粘贴

    命令功能
    yy复制当前行
    p粘贴到光标后
    P粘贴到光标前
    u撤销
    Ctrl+r重做
    r替换单个字符
  3. 查找与替换

    命令功能
    /关键词查找关键词(按 n 下一个,N 上一个)
    /pattern向前搜索
    ?pattern向后搜索
    :noh取消高亮
    :%s/old/new/g全局替换

三、高级功能

  1. 分屏操作

    命令功能
    :sp [文件名]水平分屏
    :vsp [文件名]垂直分屏
    Ctrl+w +方向键切换分屏
    ----------------------------------------
    :vsplit 或 Ctrl + w v垂直分屏
    :split 或 Ctrl + w s水平分屏
    Ctrl + w w切换分屏
  2. 宏录制
    (1) qa 开始录制宏(寄存器a)
    (2) 执行操作
    (3) q 停止录制
    (4) @a 执行宏

  3. 标记系统

    命令功能
    ma设置标记a
    `a跳转到标记a
    :marks查看所有标记

四、配置与插件

  1. 配置文件(~/.vimrc), 这里的注释是:
    " 基础配置
    set number        " 显示行号
    syntax on         " 语法高亮
    set tabstop=4     " Tab宽度
    set expandtab     " 用空格代替Tab" 快捷键映射
    nmap <C-s> :w<CR>  " Ctrl+s保存
    
  2. 插件管理(推荐使用vim-plug)
    (1) 安装
    curl -fLo ~/.vim/autoload/plug.vim --create-dirs \https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
    
    (2) 在.vimrc中添加以下内容:
    call plug#begin('~/.vim/plugged')
    " 这里可以添加你想要安装的插件,例如:
    " Plug '插件作者/插件名'
    Plug 'tpope/vim-sensible'
    call plug#end()
    
    (3) 在 Vim 中执行 :PlugInstall 命令,若能正常下载插件,就表明 vim-plug 已成功安装。

END


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/76314.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows 图形显示驱动开发-WDDM 2.4功能-基于 IOMMU 的 GPU 隔离(三)

帧缓冲区保留 对于必须在电源转换期间将帧缓冲区的保留部分保存到系统内存的驱动程序&#xff0c;Dxgkrnl 会在适配器初始化时对所需内存进行用量认可。 如果驱动程序报告 IOMMU 隔离支持&#xff0c;则 Dxgkrnl 将在查询物理适配器上限后立即调用 DXGKDDI_QUERYADAPTERINFO&a…

UML之扩展用例

UML用例建模面向业务实现或者系统功能&#xff0c;每一个用例实现一个完整的业务或者功能。而一个完整的用例也可能有一些不是必需的附加功能&#xff0c;或者在该用例已经实现后需要添加一些新功能&#xff0c;此时可以通过UML提供的扩展用例机制描述类似这样的场景。 例如对…

大数据学习(95)-谓词下推

&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一…

行式存储(Row-based Storage)与列式存储(Column-based Storage)详细对比

行式存储&#xff08;Row-based Storage&#xff09;与列式存储&#xff08;Column-based Storage&#xff09;详细对比 1. 数据组织方式 类型行式存储列式存储存储结构按行存储数据&#xff0c;每条记录的所有字段&#xff08;列&#xff09;连续存放&#xff08;如一条订单的…

Seg-Zero:通过认知强化实现的推理链引导分割

文章目录 速览摘要1. 引言2. 相关工作2.1. 大模型中的推理能力2.2. 结合推理的语义分割2.3. 用于分割任务的 MLLMs 3. 方法3.1. 流程建模&#xff08;Pipeline Formulation&#xff09;3.2. Seg-Zero 模型3.3. 奖励函数&#xff08;Reward Functions&#xff09;3.4. 训练&…

win server2022 限制共享文件夹d

点击配额管理中的配额 然后创建配额 导入要配额的文件即可 然后确定即可

Docker容器部署Java项目(详细版)

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Docker容器部署Java项目1. 环境及准备2. 项目…

C语言深度解析:从零到系统级开发的完整指南

一、C语言的核心特性与优势 1. 高效性与直接硬件控制 C语言通过编译为机器码的特性&#xff0c;成为系统级开发的首选语言。例如&#xff0c;Linux内核通过C语言直接操作内存和硬件寄存器&#xff0c;实现高效进程调度。 关键点&#xff1a; malloc/free直接管理内存&#…

Pytorch实现之基于GAN+序列后向选择的情绪识别增强方法

简介 简介:在WGAN-GP+CGAN的基础上利用了序列后向选择方法来挑选优质样本补充到训练集当中,丰富训练数据集。 论文题目:基于生成对抗网络的情绪识别数据增强方法 期刊:传感技术学报 摘要:使用深度学习方法构建高准确率的情绪识别模型需要大量的情绪脑电数据。 生成对抗…

软件工程面试题(十九)

1、十六进制的216转换十进制是多少: 216是16进制,转10进制: =2*16^2+1*16^1+6*16^0 =512+16+6 =536 2、Java中的XML解析方式: dom和jdom解析 Java中处理XML文档的标准API有两种,即XML的简单API(SAX,Simple API for XML)和文档对象模型(DOM,…

大模型AI Agent的工作原理与安全挑战

大模型AI Agent的工作原理与安全挑战 0x00 引言 智能体&#xff08;AI Agent&#xff09;作为大语言模型技术&#xff08;LLM&#xff09;的具体应用形式&#xff0c;突破了传统语言模型仅限于文字输入与输出的局限性。其通过感知环境、规划决策及执行行动的闭环机制&#xf…

腻子刮的遍数越多越好?刮的越厚墙面越平?

很多业主对刮腻子存在误区&#xff0c;感觉腻子刮的越厚越好&#xff0c;遍数越多越好。同时认为腻子有找平的作用&#xff0c;感觉墙面不平&#xff0c;就是腻子刮的不行。 有一位业主给我留言&#xff0c;说家里的腻子刮了两遍&#xff0c;然后油工师傅就开始打磨刷漆了&…

「深入解析 Chromium Message Pump:消息循环的核心驱动」

MessagePump 是 Chromium 中 消息循环&#xff08;Message Loop&#xff09; 的核心组件之一&#xff0c;负责在不同平台上管理和分发消息、事件&#xff0c;并协调任务调度。 在浏览器这样的 GUI 应用中&#xff0c;事件循环&#xff08;Event Loop&#xff09;是非常重要的&…

3d pose 指标和数据集

目录 3D姿态估计、3维重建指标: 数据集 EHF数据集 SMPL-X 3D姿态估计、3维重建指标: MVE、PMVE 和 p-MPJPE 都是用于评估3D姿态估计、三维重建等任务中预测结果与真实数据之间误差的指标。 MVE (Mean Vertex Error):是指模型重建过程中每个顶点的预测位置与真实位置之间…

大智慧大数据面试题及参考答案

目录 MySQL 的事务隔离级别是什么? MySQL 的覆盖索引是怎样的? MySQL 常用的存储引擎有哪些,它们之间的区别是什么? 在 MySQL 中,如果读取很大的数据集,同时进行一边 select 一边写入操作,结果会怎样? 当 ES 出现分词错误的情况时,应该如何处理? Kafka 如何保证…

微服务的简单认识

目录 一、微服务架构简介 二、微服务架构风格和分布式系统架构的关系 三、微服务组成 一、微服务架构简介 微服务是一种构建分布式系统的架构风格,它将一个大型的应用程序拆分成多个小型的、独立部署的服务单元,每个服务单元都专注于特定的业务功能,并通过轻量级的通信机…

Spring的 @Conditional @ConditionalOnProperty 注解 笔记250330

Spring的 Conditional ConditionalOnProperty 注解 Spring 的 Conditional 与 ConditionalOnProperty 注解详解 在 Spring 框架中&#xff0c;Conditional 和 ConditionalOnProperty 是用于动态控制 Bean 注册的重要注解。虽然它们都服务于条件化配置&#xff0c;但定位和使用…

电路学习——MOS栅极驱动电阻取值(2025.03.30)

参考链接1: 驱动芯片的驱动电流的选型和计算 参考链接2: NMOS栅极驱动电阻Rg阻值和功率的计算&#xff0c;NMOS栅极驱动电阻Rg的作用&#xff0c;如何防止NMOS误开通 单片机直接驱动NMOS的方法 RLC谐振电路 智能车BLDC 在此感谢各位前辈大佬的总结&#xff0c;写这个只是为了记…

mysql JSON_ARRAYAGG联合JSON_OBJECT使用查询整合(数组对象)字段

父表数据&#xff08;表名&#xff1a;class&#xff09; idname1一年级2二年级3三年级 子表数据&#xff08;表名&#xff1a;students&#xff09; idnameclassId11张三112李四113小明3 关联子表sql查询&#xff08;推荐使用方法一&#xff09; 方法一 (使用IFNull判断子…

张量-pytroch基础(2)

张量-pytroch网站-笔记 张量是一种特殊的数据结构&#xff0c;跟数组&#xff08;array&#xff09;和矩阵&#xff08;matrix&#xff09;非常相似。 张量和 NumPy 中的 ndarray 很像&#xff0c;不过张量可以在 GPU 或其他硬件加速器上运行。 事实上&#xff0c;张量和 Nu…