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

linux中vim常用命令大全

在Linux系统中,Vim是一款功能强大的文本编辑器,广泛用于代码编写、文档编辑等多种场景。Vim以其高效的编辑能力和丰富的命令集著称。以下是Vim编辑器中常用命令的详细大全,旨在帮助用户更高效地利用Vim进行文本编辑。

一、启动与退出Vim

  1. 启动Vim

    • vim:直接启动Vim并进入命令模式。
    • vim filename:启动Vim并打开(或创建)指定文件名的文件。
    • vim -c cmd file:在打开文件前,先执行指定的命令。
    • vim -r file:恢复上次异常退出的文件。
    • vim -R file:以只读的方式打开文件,但可以强制保存。
    • vim -M file:以只读的方式打开文件,不可以强制保存。
  2. 退出Vim

    • :wqZZ:保存修改并退出Vim。
    • :x:保存修改并退出Vim,与:wq相同。
    • :q!:强制退出Vim,不保存修改。
    • :q:如果未对文件进行修改,则退出Vim;如果文件已修改,则提示保存或放弃修改。

二、Vim的模式

Vim有三种基本模式:命令模式(Normal Mode)、插入模式(Insert Mode)和可视模式(Visual Mode)。

  1. 命令模式(Normal Mode)

    • 在此模式下,可以使用快捷键进行光标移动、复制粘贴、删除等操作。
    • 按下iao等键可以进入插入模式。
  2. 插入模式(Insert Mode)

    • 在此模式下,可以输入文本。
    • 按下Esc键可以回到命令模式。
  3. 可视模式(Visual Mode)

    • 按下v进入字符选择模式,V进入行选择模式,Ctrl+v进入块选择模式。
    • 在可视模式下,可以使用移动命令来选择文本区域,然后执行复制、粘贴、删除等操作。

三、光标移动

在命令模式下,Vim提供了多种光标移动命令:

  • h 或 左箭头:左移一个字符。
  • l 或 右箭头:右移一个字符。
  • j 或 下箭头:下移一行。
  • k 或 上箭头:上移一行。
  • w:向前移动一个单词(光标停在单词首部)。
  • b:向后移动一个单词。
  • e:向前移动一个单词,光标停在单词尾部。
  • ge:向后移动一个单词,光标停在单词尾部。
  • ^:移动到本行第一个非空白字符上。
  • 0Home:移动到本行第一个字符。
  • gg:移动到文件头部。
  • GShift+g:移动到文件尾部。
  • nG:n:跳转到文件的第n行。
  • Ctrl+f:向下滚动一屏。
  • Ctrl+b:向上滚动一屏。
  • Ctrl+d:向下滚动半屏。
  • Ctrl+u:向上滚动半屏。

四、文本编辑

  1. 插入文本

    • i:在当前光标位置插入文本。
    • I:在当前行首插入文本。
    • a:在当前光标位置的下一个字符处插入文本。
    • A:在当前行尾插入文本。
    • o:在当前行下方插入新行并开始编辑。
    • O:在当前行上方插入新行并开始编辑。
  2. 复制与粘贴

    • yy:复制当前行。
    • nyy:复制从当前行开始的n行。
    • p:在当前光标位置粘贴文本。
    • P:在当前光标位置上方粘贴文本。
  3. 删除文本

    • x:删除当前光标位置的字符。
    • X:删除当前光标位置前一个字符。
    • dd:删除当前行。
    • ndd:删除从当前行开始的n行。
    • Dd$:删除从当前光标位置到行尾的所有字符。
  4. 撤销与重做

    • u:撤销上一步操作。
    • Ctrl+r:重做上一步被撤销的操作。

五、查找与替换

  1. 查找文本

    • /text:从当前光标位置向前查找text。
    • ?text:从当前光标位置向后查找text。
    • n:查找下一个匹配项。
    • N:查找上一个匹配项。
  2. 替换文本

    • r + 字符:替换当前光标位置的字符。
    • R:进入替换模式,输入字符将连续替换光标所在位置及之后的字符,直到按Esc退出。
    • :s/old/new/:替换当前行的第一个old为new。
    • :s/old/new/g:替换当前行所有old为new。
    • %s/old/new/g:替换整个文件中所有old为new。

六、分屏与多文件操作

  1. 分屏

    • :split:sp:水平分割窗口,打开一个新窗口。
    • :vsplit:vsp:垂直分割窗口,打开一个新窗口。
    • Ctrl+w w:在多个窗口间切换。
    • Ctrl+w jCtrl+w kCtrl+w hCtrl+w l:分别将光标移动到下方、上方、左侧、右侧窗口。
  2. 多文件操作

    • vim file1 file2 ...:同时打开多个文件。
    • :next:n:切换到下一个文件。
    • :prev:N:切换到上一个文件。
    • :first:切换到第一个文件。
    • :last:切换到最后一个文件。

七、其他常用命令

  • :set nu:显示行号。
  • :set nonu:关闭行号显示。
  • :w:保存当前文件。
  • :w filename:将当前文件另存为filename。
  • :e!:重新加载当前文件,丢弃已做的修改。
  • :helpF1:打开Vim的帮助文档。

Vim的命令集非常丰富,上述只是其中一部分常用命令。通过不断实践和学习,用户可以逐渐掌握Vim的强大功能,提高文本编辑的效率。同时,Vim还提供了丰富的插件和配置选项,用户可以根据自己的需求进行定制和优化。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 微软RD客户端 手机 平板 远程控制 Windows桌面
  • 【Linux】进程优先级|进程切换
  • 【机器学习-神经网络】循环神经网络
  • GateWay三大案例组件
  • 后端开发刷题 | 最长公共子序列(非连续)
  • 科研绘图系列:R语言PCoA图(PCoA plot)
  • 店匠科技携手Stripe共谋电商支付新篇章
  • 前端知识HTMLCSS
  • 从供货上游到下游消费者平台搭建 多商家供货供应链商城开发关键点
  • RabbitMQ 02 操作,配置信息,用户权限
  • 提升效率!ArcGIS中创建脚本工具
  • Unity(2022.3.41LTS) - UI详细介绍- Panel(面板)和RectTransform组件
  • 立即下载!Windows 10 22H2 64位专业精简版
  • C#绘制常用工业控件(仪表盘,流动条,开关等)
  • JavaScript - Api学习 Day03 (日期对象、节点操作、两种定时器、本地存储)
  • 2017前端实习生面试总结
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • axios 和 cookie 的那些事
  • canvas 高仿 Apple Watch 表盘
  • Docker下部署自己的LNMP工作环境
  • JavaScript 奇技淫巧
  • Java方法详解
  • Java基本数据类型之Number
  • Java知识点总结(JavaIO-打印流)
  • oschina
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 产品三维模型在线预览
  • 后端_ThinkPHP5
  • ------- 计算机网络基础
  • 警报:线上事故之CountDownLatch的威力
  • 普通函数和构造函数的区别
  • 如何设计一个微型分布式架构?
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 算法之不定期更新(一)(2018-04-12)
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • UI设计初学者应该如何入门?
  • 如何正确理解,内页权重高于首页?
  • ​浅谈 Linux 中的 core dump 分析方法
  • #mysql 8.0 踩坑日记
  • ${factoryList }后面有空格不影响
  • (70min)字节暑假实习二面(已挂)
  • (二十六)Java 数据结构
  • (全注解开发)学习Spring-MVC的第三天
  • (三)mysql_MYSQL(三)
  • (四)软件性能测试
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (五)c52学习之旅-静态数码管
  • (详细文档!)javaswing图书管理系统+mysql数据库
  • (转)负载均衡,回话保持,cookie
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划