Linux中 vim 常用命令大全详细讲解

文章目录

  • 前言
    • 一、Vim 基本操作 🕹️
      • 1.1 打开或创建
      • 1.2 退出编辑
      • 1.3 模式切换
    • 二、Vim 光标移动命令 ↕️
      • 2.1 基本移动
      • 2.2 行内移动
      • 2.3. 单词移动
      • 2.4. 页面移动
      • 2.5. 行跳转
    • 三、Vim 文本编辑命令 📋
      • 3.1 插入和删除
      • 3.2 复制、剪切与粘贴
      • 3.3 替换与修改
    • 四、Vim 查找与替换命令 🔎
      • 4.1 查找
      • 4.1 替换
    • 五、Vim 多窗口与多文件操作 🧮
      • 5.1 多窗口操作
      • 5.2 多文件操作
    • 六、Vim 配置与插件 🛠️
      • 6.1 Vim 配置文件
      • 6.2 常用插件
    • 七、总结 📒


前言

🎯用不习惯 vim 或者 vi 的可以用 Xftp 以文本形式打开可视化操作 ,也可以 sz 指令将文件下载到本地编辑再用 rz 指令回传。总之条条大路通罗马,当然了,学会了 vim 指令操作文本会更爽。

vim 是一个高度可配置的 文本编辑器,广泛用于 Unix 和类 Unix 系统(如 LinuxmacOS )。它是一个 Vi 编辑器的增强版本,提供了更多的功能和更好的用户体验。vim 支持多种模式,包括 普通模式插入模式命令行模式,每种模式都有不同的用途和操作方式。

💯直接上图吧,玩转这张图都不用往下看了。。。
在这里插入图片描述


一、Vim 基本操作 🕹️

在这里插入图片描述

1.1 打开或创建

vim 路径/文件名

如果文件不存在,Vim 会新建一个文件。

1.2 退出编辑

  • 正常退出并保存::wqZZ
  • 仅退出(不保存)::q
  • 强制退出(不保存)::q!
  • 仅保存文件::w

1.3 模式切换

  1. 正常模式(Normal Mode):Vim 启动时默认的模式,可以执行各种命令,如移动光标、删除文本等。按 Esc 键进入。
  2. 插入模式(Insert Mode):可以输入文本。按 i 进入,按 Esc 返回正常模式。
  3. 可视模式(Visual Mode):用于选中文本块。按 v 进入,可视模式下可使用方向键选择文本。

常用模式切换命令:

  • i:进入插入模式,在当前光标位置前插入。
  • a:进入插入模式,在当前光标位置后插入。
  • o:在当前行下方打开新行并进入插入模式。
  • v:进入可视模式。
  • V:进入可视行模式(选中整行)。
  • Ctrl + v:进入可视块模式(列选择)。

二、Vim 光标移动命令 ↕️

2.1 基本移动

  • h:向左移动一个字符。
  • l:向右移动一个字符。
  • j:向下移动一行。
  • k:向上移动一行。

2.2 行内移动

  • 0:移动到行首。
  • ^:移动到本行第一个非空白字符。
  • $:移动到行尾。

2.3. 单词移动

  • w:移动到下一个单词的开头。
  • e:移动到当前或下一个单词的末尾。
  • b:移动到上一个单词的开头。

2.4. 页面移动

  • Ctrl + u:向上滚动半页。
  • Ctrl + d:向下滚动半页。
  • Ctrl + b:向上滚动一整页。
  • Ctrl + f:向下滚动一整页。
  • G:移动到文件末尾。
  • gg:移动到文件开头。

2.5. 行跳转

  • :n:跳转到第 n 行。
  • nG:跳转到第 n 行。

三、Vim 文本编辑命令 📋

3.1 插入和删除

  • i:进入插入模式。
  • a:在当前光标后插入文本。
  • o:在当前行下方新开一行并进入插入模式。
  • dd:删除当前行。
  • D:删除当前光标到行尾的所有内容。
  • x:删除当前光标所在的字符。
  • dw:删除当前光标到单词末尾的内容。
  • u:撤销上一步操作。
  • Ctrl + r:重做上一步撤销的操作。

3.2 复制、剪切与粘贴

  • yy:复制当前行。
  • yw:复制一个单词。
  • p:粘贴到光标后。
  • P:粘贴到光标前。
  • dd:剪切当前行。
  • daw:剪切一个单词。

3.3 替换与修改

  • r:替换当前字符。
  • R:进入替换模式,从光标开始的字符将被逐个替换,直到退出替换模式为止。
  • cw:修改当前单词(删除当前单词并进入插入模式)。
  • c$:修改从光标位置到行尾的内容。

四、Vim 查找与替换命令 🔎

4.1 查找

  • /pattern:向下查找 pattern(正则表达式)。
  • ?pattern:向上查找 pattern。
  • n:在查找模式下,查找下一个匹配项。
  • N:在查找模式下,查找上一个匹配项。
  • *:查找光标所在单词的下一个匹配项。
  • #:查找光标所在单词的上一个匹配项。

4.1 替换

  • :s/old/new:替换当前行的第一个匹配的 old 为 new。
  • :s/old/new/g:替换当前行的所有 old 为 new。
  • :%s/old/new/g:替换整个文件中的所有 old 为 new。
  • :%s/old/new/gc:替换整个文件中的所有 old 为 new,每次替换前提示确认。

五、Vim 多窗口与多文件操作 🧮

5.1 多窗口操作

  • :split 或 :sp:水平分割窗口。
  • :vsplit 或 :vsp:垂直分割窗口。
  • Ctrl + w, w:在分割窗口之间切换。
  • Ctrl + w, h/j/k/l:分别向左、下、上、右切换窗口。
  • :q:关闭当前窗口。

5.2 多文件操作

  • :e filename:打开指定文件。
  • :bnext 或 :bn:切换到下一个缓冲区(文件)。
  • :bprev 或 :bp:切换到上一个缓冲区(文件)。
  • :ls:列出所有缓冲区(打开的文件)。
  • :bN:切换到缓冲区 N。

六、Vim 配置与插件 🛠️

6.1 Vim 配置文件

~/.vimrc 文件:Vim 的配置文件,用户可以在其中添加个性化配置,如设置行号、语法高亮等。

set number       " 显示行号
syntax on        " 启用语法高亮
set tabstop=4    " 设置 tab 键为 4 个空格
set expandtab    " 用空格替代 tab
set shiftwidth=4 " 设置自动缩进为 4 个空格

6.2 常用插件

Vim 提供丰富的插件支持,以下是几款常用的插件:
Vundle:插件管理器,用于安装和管理 Vim 插件。
NERDTree:目录树插件,方便文件导航。
ctrlp.vim:模糊查找文件插件,快速打开文件。
vim-airline:状态栏增强插件,提供更多的状态栏信息。
YouCompleteMe:代码补全插件,支持多种编程语言。

七、总结 📒

还有很多用法就不列举了,很少用到,再说了,看多了眼都花了。

请添加图片描述

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

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

相关文章

如何借助5G网关实现油罐车安全在线监测

油罐车是常见的特种运输车辆,用以运送各种汽油、柴油、原油等油品,运输危险系数大,而且由于油罐车需要经常行驶在城区道路,为城市各个加油站点、企业工厂运输补充所需油料,因此也是危化品运输车辆的重点监测和管控对象…

联想至像M3070DW打印机连接手机方法

首先,按打印机上的“功能”键,上翻页翻到第4项“网络”按“OK”键进入; 点进去之后,再按下翻页翻到第3项“安装向导”,按“OK”键进入; 然后,选择我们要连接的WiFi并输入WiFi密码, 输…

双亲委派机制是Java类加载器的一种工作模式

双亲委派机制是Java类加载器的一种工作模式,确保了类加载的一致性和安全性。以下是对双亲委派机制的详细解析: 一、定义与工作原理 双亲委派机制(Parent Delegation Model)要求除了顶层的启动类加载器外,其余的类加载…

Qt 使用modbus协议

Qt 框架下 使用modbus协议 一,使用Qt原生的 QModbusClient ,比如QModbusTcpClient 1,因为modbus的读写 需要在同一个线程中,所以需要在主线程中利用moveToThread的方式,将业务逻辑封装到 子线程中。 2,m…

C语言中怎样将NULL定义为空指针?空指针的具体值其实为0哈,即地址值为0的指针为空指针。

用下面这条命令即可: #define NULL (void *)0下面是对这句代码的解释: #define NULL (void *)01. #define 的作用 #define 是一个预处理指令,用于定义宏。宏替换发生在编译前的预处理阶段,所有出现 NULL 的地方都会被替换为 (v…

Linux中的cp命令:使用、原理与源码分析

在Linux系统中,cp命令是最常用的命令之一,用于复制文件或目录。无论是日常的文件管理,还是系统维护,cp命令都扮演着重要的角色。本文将深入探讨cp命令的使用方法、工作原理,并从源码层面分析其实现细节。 1. cp命令的…

oracle client linux服务器安装教程

p13390677_112040_Linux-x86-64_4of7.zip 安装前,确认/etc/hosts文件已配置正确 cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.2…

云和恩墨 zCloud 与华为云 GaussDB 完成兼容性互认证

近日,云和恩墨(北京)信息技术有限公司(以下简称:云和恩墨)的多元数据库智能管理平台 zCloud 与华为云计算技术有限公司(以下简称:华为云)的 GaussDB 数据库完成了兼容性互…

《计算机视觉:瓶颈之辩与未来之路》

一、计算机视觉的崛起 计算机视觉是使用计算机模仿人类视觉系统的科学,让计算机拥有类似人类提取、处理、理解和分析图像以及图像序列的能力。它是一个多学科交叉的领域,与机器视觉、图像处理、人工智能、机器学习等领域密切相关。 计算机视觉行业可分为…

iOS在项目中设置 Dev、Staging 和 Prod 三个不同的环境

在 Objective-C 项目中设置 Dev、Staging 和 Prod 三个不同的环境,并为每个环境使用不同的 Bundle ID,可以通过以下步骤实现: 步骤 1: 创建不同的 Build Configuration 打开项目: 启动 Xcode 并打开你的项目。 选择项目文件&…

6.3.1 MR实战:计算总分与平均分

在本次实战中,我们的目标是利用Apache Hadoop的MapReduce框架来处理和分析学生成绩数据。具体来说,我们将计算一个包含五名学生五门科目成绩的数据集的总分和平均分。这个过程包括在云主机上准备数据,将成绩数据存储为文本文件,并…

计算机毕业设计Python+Django农产品推荐系统 农产品爬虫 农产品商城 农产品大数据 农产品数据分析可视化 PySpark Hadoop

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

如何高效获取Twitter数据:Apify平台上的推特数据采集解决方案

引言 在数据分析和市场研究领域,Twitter(现在的X)数据一直是重要的信息来源。但是,自从Twitter更改API定价策略后,获取数据的成本大幅提升。本文将介绍一个经济实惠的替代方案。 为什么需要Twitter数据? …

Oracle 临时表空间管理与最佳实践

Oracle 临时表空间管理与最佳实践 内容摘要 本文深入探讨了Oracle数据库中临时表空间的管理和最佳实践。主要内容包括: 临时表空间的概述及其在Oracle 19c多租户架构中的特点临时表空间组的优势及其创建方法非临时表空间组的临时表空间日常维护操作命令临时表空间…

【论文笔记】Editing Models with Task Arithmetic

🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: Editing Models with Task…

下载红米Note 9 Pro5G对应的LineageOS代码下载及编译

构建 LineageOS 进入网站:Info about gauguin | LineageOS Wiki,点击:Build for yourself,里面有详细的教程,我这里就按照Note 9 Pro 5G来。 机器环境 Ubuntu环境为:20.04.6LinagesOS版本:21-…

四十六:如何使用Wireshark解密TLS/SSL报文?

TLS/SSL是保护网络通信的重要协议,其加密机制可以有效地防止敏感信息被窃取。然而,在调试网络应用或分析安全问题时,解密TLS/SSL流量是不可避免的需求。本文将介绍如何使用Wireshark解密TLS/SSL报文。 前提条件 在解密TLS/SSL报文之前&…

Git-分布式版本控制工具

目录 1. 概述 1. 1集中式版本控制工具 1.2分布式版本控制工具 2.Git 2.1 git 工作流程 1. 概述 在开发活动中,我们经常会遇到以下几个场景:备份、代码回滚、协同开发、追溯问题代码编写人和编写时间(追责)等。备份的话是为了…

ffmpeg和ffplay命令行实战手册

文章目录 视频拼接用concat视频分段拼接(ffplay 不可调用seek函数进行seek)给视频添加黑边,让视频填充并居中显示不同分辨率视频分段拼接,并且,设置单个视频的缩放比例和摆放位置视频画中画复杂嵌套用overlay(ffplay 可调用seek函数进行seek)…

详解排序几大算法

一、插入排序 基本思想: 直接插入排序是一种简单的插入排序算法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。 步骤&#x…