linux中vim常用命令大全

news/2024/9/18 6:33:50/ 标签: 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还提供了丰富的插件和配置选项,用户可以根据自己的需求进行定制和优化。


http://www.ppmy.cn/news/1525143.html

相关文章

JAVA开源项目 校园管理系统 计算机毕业设计

本文项目编号 T 026 ,文末自助获取源码 \color{red}{T026,文末自助获取源码} T026,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 管…

Linux杂项知识

Linux的启动过程 Linux 的启动过程大致可以分为以下几个阶段: 1. BIOS/UEFI 加电自检 当计算机加电时,BIOS 或 UEFI 会首先执行一系列的硬件自检(POST,Power-On Self Test),检查系统是否正常运行。接下来…

Ansible自动化部署kubernetes集群

机器环境介绍 1.1. 机器信息介绍 IP hostname application CPU Memory 192.168.204.129 k8s-master01 etcd,kube-apiserver,kube-controller-manager,kube-scheduler,kubelet,kube-proxy,containerd 2C 4G 192.168.204.130 k8s-w…

Java小白一文讲清Java中集合相关的知识点(五)

Set接口和常用方法 基本介绍 无序(添加和取出的顺序不一样),没有索引不允许重复元素,所以最多包含一个nullJDK API 中Set接口的实现类有: public static void main(String[] args) {//1.以set接口的实现类HashSet来讲…

手机玩机常识-------诺基亚系列机型3/5/6/7/8详细的刷机教程步骤 手机参考救砖刷机教程

诺基亚手机 诺基亚(Nokia Corporation),成立于1865年,是一家主要从事移动通信设备生产和相关服务的手机公司 ,总部位于芬兰埃斯波 。从1996年开始,诺基亚手机连续15年占据手机市场份额第一位置&…

【测试】——自动化测试入门(Selenium环境搭建)

📖 前言:本文介绍了自动化测试的基础知识,重点讲解了Selenium环境的搭建。内容包括自动化测试的定义、自动化测试金字塔模型、Selenium的特点和工作原理,以及如何在Java环境中配置和使用Selenium进行UI自动化测试。 目录 &#x1…

性能测试经典案例解析——政务查询系统

各位好,我是 道普云 一站式云测试SaaS平台。一个在软件测试道路上不断折腾十余年的萌新。 欢迎关注我的主页 道普云 文章内容具有一定门槛,建议先赞再收藏慢慢学习,有不懂的问题欢迎私聊我。 希望这篇文章对想提高软件测试水平的你有所帮…

go 语言常见问题(4)

31. go语言编程的好处是什么 编译和运行都很快。在语言层级支持并行操作。有垃圾处理器。内置字符串和 maps。函数是 go 语言的最基本编程单位。 32. 说说go语言的select机制 select 机制用来处理异步 IO 问题select 机制最大的一条限制就是每个 case 语句里必须是一个 IO 操…

【C语言】归并排序递归和非递归——动图演示

目录 一、归并排序思想1.1 基本思想1.2 大体思路 二、实现归并排序(递归)三、实现归并排序(非递归)3.1 实现思路:3.2 越界处理3.3 时间复杂度和空间复杂度 总结 一、归并排序思想 1.1 基本思想 归并排序(M…

redis为什么快

春内存访问,相比数据库访问磁盘要快单线程,避免上下文切换带来的cpu开销渐进式Rehash。减少阻塞网络模型多路复用,reactor模型 常用基本数据类型 5个基本数据类型2个高级数据结构(bitmaps、hyperlog) redis高级功能…

Gitea Action注册runner

我的是gitea也可以和github 兼容,只是没有github 那么靓而已 安装一个gitea仓库 docker run -d --name gitea \-p3000:3000 -p2222:22 \-v /git/data:/data \ -v /etc/timezone:/etc/timezone:ro \-v /etc/localtime:/etc/localtime:ro \gitea/gitea:1.21.1setti…

【漏洞复现】某4国语言抖音点赞系统存在任意文件上传漏洞

漏洞描述 某4国语言 中文+英文+泰语+繁体 UI也非常不错 功能比较完善!【系统功能】1.任务后台添加/用户发布,后台审核 2.机器人、大转盘;已完善 3.支付可以对接第三方和线下银行卡收款;4.后台增加员工账号(推广员专属账号),可以查看员工推广报表;5.会员等级功能,会员级…

wireshark打开时空白|没有接口,卸载重装可以解决

解决方法:卸载wireshark,全选卸载干净,重新安装旧版的wireshark4.2.7, 甚至cmd下运行net start npf时显示服务名无效,但打开wireshark仍有多个接口 错误描述: 一开始下载的是wireshark的最新版,win11 x64 在安装wir…

Redis Sentinel(哨兵)详解

目录 一:什么是Sentinel(哨兵) 二:Sentinel有什么用 1.监控 2.故障转移 3通知 4.配置提供 三:Sentinel如何检测master节点宕机 1.主观下线 2.客观下线 四:Sentinel是如何选举出新的master 1.s…

学习常用的Docker命令

Docker作为一种强大的容器化技术,为开发者提供了便捷的应用部署和管理方式。本文将介绍Docker常用命令,按照不同的操作分类,旨在帮助初学者更好地理解和使用Docker。Docker 常用命令可以分为以下几类: 容器命令:主要用…

Qt常用控件——QTextEdit

文章目录 QTextEdit核心属性和信号同步显示示例信号示例 QTextEdit核心属性和信号 QTextEdit表示多行输入框,是一个富文本和markdown编辑器,并且能在内存超出编辑框范围时自动提供滚动条。 QPlainTexEdit是纯文本,QTextEdit不仅表示纯文本&a…

21. 合并两个有序链表【 力扣(LeetCode) 】

一、题目描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 二、测试用例 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 2: 输入:l1 []…

java项目之基于Spring Boot智能无人仓库管理源码(springboot+vue)

项目简介 智能无人仓库管理实现了以下功能: 基于Spring Boot智能无人仓库管理的主要使用者分为: 管理员的功能有:员工信息的查询管理,可以删除员工信息、修改员工信息、新增员工信息 💕💕作者&#xff1a…

MySQL 大量 IN 的查询优化

背景 (1)MySQL 8.0 版本 (2)业务中遇到大量 IN 的查询,例: SELECT id, username, icon FROM users WHERE id IN (123, 523, 1343, ...);其中 id 为主键,IN 的列表长度有 8000 多个 问题 …

Java数据结构应用(力扣题20. 有效的括号)

给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括…