当前位置: 首页 > news >正文

linux的文本编辑器vim常用操作命令介绍

目录

一、vim介绍

二、vim的特点

    1、模式编辑

    2、强大的命令集

    3、可配置性

    4、插件系统

    5、多平台支持

三、vim的基础用法

    1、打开或创建文件

    2、移动光标

    3、编辑文件

    4、返回命令模式

    5、保存文件并退出

    6、不保存并退出

四、vim的部分进阶用法

    1、快速删除行

    2、撤销操作

    3、跳转到指定行

    4、复制内容

    5、粘贴内容

    6、搜索内容

    7、匹配替换

五、总结


一、vim介绍

    vim是一个高度可配置的文本编辑器,用于高效地创建和更改任何类型的文本。它最初是Vi编辑器的改进版,但随着时间的推移,它发展成了一个功能强大、用户友好的编辑器,深受程序员和系统管理员的喜爱。

二、vim的特点

    1、模式编辑

    vim区分不同的编辑模式,最主要的是插入模式和普通模式。在普通模式下,你可以执行命令来移动光标、删除文本、搜索和替换等。在插入模式下,你可以输入文本。

    2、强大的命令集

    vim提供了大量的命令和快捷键,可以在不使用鼠标的情况下快速完成复杂的文本编辑任务。

    3、可配置性

    vim高度可配置,可以通过修改.vimrc(或_vimrc)配置文件来自定义vim的行为和外观。

    4、插件系统

    vim支持插件,这使得它可以根据需要变得更加灵活和强大。有许多插件可以安装,以提高vim的生产力。

    5、多平台支持

    vim几乎可以在任何操作系统上运行,包括Linux、macOS、Windows等。

三、vim的基础用法

    1、打开或创建文件

      vim  <filename>

    如果该文件存在,则会打开文件,如果该文件不存在,则会创建一个以此为名称的新文件。打开文件后处于命令模式,在命令模式可以使用各种一些快捷操作,对文件进行修改。

    2、移动光标

    在命令模式下,使用小键盘上下左右键或h、j、k、l(分别代表光标向左、下、上、右方向移动),可以移动光标在文件中的位置。

    输入“gg”光标移动到首行,“G”光标移动到最后一行。

    3、编辑文件

    在命令模式按i进入插入模式,即可在光标处进行编辑文件,对文件进行增加或删除。

    在命令模式按o进入插入模式,在光标下一行创建空白行,并将光标移动至空白行。

    4、返回命令模式

    在插入模式按“esc”,返回命令模式。

    5、保存文件并退出

    在命令模式输入“:wq”,即可保存对文件的修改并退出文件

    6、不保存并退出

    如果对文件做了修改,又不想保存这些修改的内容,可以在命令模式下输入“:q!”,在退出文件的同时,又不改变文件原有的内容

四、vim的部分进阶用法

    1、快速删除行

    在命令模式下,光标移动至某一行,输入”dd”即可删除该行,输入”D”可以删除该行的内容,保留空白行。输入”:%d”,即可删除文件所有内容。

    2、撤销操作

    在命令模式按”u”,可以撤销上一个修改。

    3、跳转到指定行

    在命令模式输入”:x”后按回车,光标即可跳转到第x行。

    4、复制内容

    在命令模式输入”yy”,即可复制光标所在的行内容,”xyy”表示复制光标所在位置开始的x行内容

    5、粘贴内容

    在命令模式输入”p”,即可将复制的内容粘贴在光标所在位置的下一行

    6、搜索内容

    在命令模式输入”/<string>”,即可搜索文件中从当前光标位置开始,向下搜索第一个匹配string的文本。按”n”即可搜索下一个匹配项,按”N”可搜索上一个匹配项。

    在命令模式输入”:set hlsearch”,可以将搜索的内容高亮显示,”:set nohlsearch”可以关闭搜索高亮设置。

    在下图的例子中,在命令模式输入”/mysql”,即可匹配文档中所有的”mysql”。


    7、匹配替换

    在命令模式使用”:%s/pattern/replacement/flags”,可以快速对文件内容进行替换

    % 表示在整个文件中进行

    s 表示替换操作

    pattern 是要匹配的内容

    replacement 是替换后的内容

    flags 是可选的替换标志(如 g 表示全局替换,c 表示每次替换前都询问)。

    例:在命令模式输入”:%s/mysql/test/g”,即可将文件中所有的”mysql”替换为”test”

五、总结

      Vim作为一款功能强大的文本编辑器,凭借其独特的模式编辑系统、丰富的命令集、高效的文本处理能力以及可定制性强的特点,赢得了众多开发者和技术爱好者的青睐。通过本文的介绍,可以深入了解Vim的基本操作、文件操作、文本编辑技巧、搜索与替换功能、以及如何通过设置颜色方案和开启语法高亮来提升编辑体验。Vim的学习曲线可能较为陡峭,但一旦掌握了其基本操作和高级技巧,将极大地提升文本编辑的效率和舒适度。无论是编写代码、撰写文档还是进行任何形式的文本处理,Vim都是一个值得深入学习和掌握的工具。


 文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。


相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 西门子S7协议(PROFINET端口)转罗克韦尔AB的Ethernet/IP网络通讯
  • ubuntu16.04下qt5.7.1添加对openssl的支持
  • C# 手动写入日志,过大写入新文件
  • 走进低代码表单开发(三):高效业务功能构建
  • 构建高效入学审核系统:Spring Boot解决方案
  • 【经验技巧】瞬态信号仿真中的码型选择问题
  • Windows桌面整理软件哪个最好?值得一试的Top10桌面管理软件汇总(全新)
  • 斯坦福研究人员探讨大型语言模型在社交网络生成中的应用及其在政治同质性上的偏见
  • Gin-封装自动路由
  • InstantMesh模型构建指南
  • Vue:通过js控制css变量 - 一键修改全局样式
  • 深度学习实践:理解理论背后的机制,体会理论与实际应用中的差距
  • 如何编写Prompt,利用AI高效生成图表——图表狐(FoxChart)指南
  • 设计模式-行为型模式-备忘录模式
  • Vue3如何查看项目是否安装了vue-router路由依赖,及安装方法
  • #Java异常处理
  • 【刷算法】求1+2+3+...+n
  • 2019.2.20 c++ 知识梳理
  • gulp 教程
  • Java知识点总结(JavaIO-打印流)
  • mysql常用命令汇总
  • MySQL的数据类型
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • React Native移动开发实战-3-实现页面间的数据传递
  • React Transition Group -- Transition 组件
  • Web设计流程优化:网页效果图设计新思路
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 第2章 网络文档
  • 使用 @font-face
  • 使用putty远程连接linux
  • 推荐一个React的管理后台框架
  • 网页视频流m3u8/ts视频下载
  • 在electron中实现跨域请求,无需更改服务器端设置
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • HanLP分词命名实体提取详解
  • Prometheus VS InfluxDB
  • ​Java并发新构件之Exchanger
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • # Apache SeaTunnel 究竟是什么?
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (C语言)fread与fwrite详解
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (十六)串口UART
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .NET 指南:抽象化实现的基类
  • .Net(C#)自定义WinForm控件之小结篇
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [BZOJ2281][SDOI2011]黑白棋(K-Nim博弈)
  • [C++] vector对比list deque的引出
  • [CareerCup] 2.1 Remove Duplicates from Unsorted List 移除无序链表中的重复项
  • [emuch.net]MatrixComputations(7-12)
  • [FxCop.设计规则]8. 也许参数类型应该是基类型
  • [IE编程] 如何在IE8 下调试BHO控件/工具栏(调试Tab进程)