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.rhkb.cn/news/491232.html

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

相关文章

ubuntu+ros新手笔记(二):古月·ROS2入门21讲学习笔记

系统ubuntu22.04 ros2 humble 按照如下视频教程学习的:【古月居】古月ROS2入门21讲 | 带你认识一个全新的机器人操作系统 此处仅记录我报错的地方,以及相应的解决方案,没有出错的略过! 对应的古月居ROS2入门21讲源码下载地址&a…

.NET 技术 | 调用系统API创建Windows服务

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

win10配置子系统Ubuntu子系统(无需通过Windows应用市场)实际操作记录

win10配置子系统Ubuntu子系统(无需通过Windows应用市场)实际操作记录 参考教程 : win10配置子系统Ubuntu子系统(无需通过Windows应用市场) - 一佳一 - 博客园 开启虚拟机服务的 以管理员方式运行PowerShell运行命令。 &#xf…

Leetcode经典题11--加油站

题目描述 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个整数数组 gas 和…

网络层IP协议(TCP)

IP协议: 在了解IP协议之前,我们市面上看到的"路由器"其实就是工作在网络层。如下图: 那么网络层中的IP协议究竟是如何发送数据包的呢? IP报头: IP协议的报头是比较复杂的,作为程序猿只需要我们重…

【深度学习量化交易8】miniQMT快速上手教程案例集——使用xtQuant进行获取实时行情数据篇

我是Mr.看海,我在尝试用信号处理的知识积累和思考方式做量化交易,应用深度学习和AI实现股票自动交易,目的是实现财务自由~ 目前我正在开发基于miniQMT的量化交易系统。 在前几篇的文章中讲到,我正在开发的看海量化交易系统&#x…

【HarmonyOS NEXT】ArkTs数据类型解析与使用

1. 背景 为什么设计ArkTS? 1.1 其它语言有版权【Java?Kotlin?】以及历史问题【Java内存?】 1.2 生态,可复用前端生态的三方库,兼容JS/TS语言生态ArkTs解决了JS/TS中的哪些问题? 2.1 **程序健壮性…

精彩回顾|Cocos开发者沙龙长沙站

长沙-不一样 Cocos 开发者沙龙长沙站&#xff0c;完全超出了我们的预期&#xff0c;一开始还担心没有太多人报名。最后发现&#xff0c;全场爆满&#xff0c;座无虚席。 <<< 左右滑动见更多 >>> 许多小伙伴曾反馈过&#xff0c;在以往的开发者沙龙回顾文章中…

elasticsearch设置密码访问

1 用户认证介绍 默认ES是没有设置用户认证访问的&#xff0c;所以每次访问时&#xff0c;直接调相关API就能查询和写入数据。现在做一个认证&#xff0c;只有通过认证的用户才能访问和操作ES。 2 开启加密设置 1.生成证书文件 /usr/share/elasticsearch/bin/elasticsearch-…

docker安装Elasticsearch和Kibana

上传文件 加载tar包 安装 1.安装elasticsearch 通过下面的Docker命令即可安装单机版本的elasticsearch&#xff1a; docker run -d \--name es \-e "ES_JAVA_OPTS-Xms512m -Xmx512m" \-e "discovery.typesingle-node" \-v es-data:/usr/share/elastics…

Ubuntu 20.04 24.04 双网卡 Bond 配置指南

前言&#xff1a;在现代服务器管理中&#xff0c;网络的稳定性和可靠性至关重要。为了提高网络的冗余性和负载能力&#xff0c;我们经常需要配置多个网络接口以实现链路聚合或故障转移。Ubuntu系统自17.10版本起&#xff0c;引入了Netplan作为新的网络配置抽象化工具&#xff0…

热更新解决方案3 —— xLua

概述 xLua框架导入和AB包相关准备 xLua导入 其它的导入 C#调用Lua 1.Lua解析器 using System.Collections; using System.Collections.Generic; using UnityEngine; //引用命名空间 using XLua;public class Lesson1_LuaEnv : MonoBehaviour {// Start is called before the fi…

【日常笔记】Spring boot:编写 Content type = ‘text/plain‘ 接口

一、项目场景&#xff1a; 接口&#xff1a;Context-Type&#xff1a;text/plain 方式&#xff1a;POST 项目场景&#xff1a;硬件回调接口 二、实战 PostMapping(value "/xx/xxx", consumes "text/plain" ) 2.1、接口 /*** return String* time 202…

光伏智能巡检

无人值守光伏巡检解决方案 1.任务制定 规划巡检任务&#xff0c;定时执行&#xff0c;自动放飞、收纳、充电&#xff0c;随时待命 2.自动起飞、巡航 无人机按照既定巡检任务&#xff0c;自主作业&#xff0c;多场景自适应&#xff0c;航飞视频实况直播。 3.智能分析 对无人…

【Isaac Lab】Ubuntu22.04安装英伟达驱动

目录 1.1 禁用nouveau驱动 1.2 安装必要的依赖项 1.3 下载安装 1.4 查看是否安装成功 1.5 安装CUDA 1.5.1 下载 1.5.2 按照提示进行下载安装 1.5.3 添加环境变量 1.5.4 测试CUDA是否安装成功 1.1 禁用nouveau驱动 输入以下命令打开blacklist.conf文件 sudo vim /etc…

深入C语言文件操作:从库函数到系统调用

引言 文件操作是编程中不可或缺的一部分&#xff0c;尤其在C语言中&#xff0c;文件操作不仅是处理数据的基本手段&#xff0c;也是连接程序与外部世界的重要桥梁。C语言提供了丰富的库函数来处理文件&#xff0c;如 fopen、fclose、fread、fwrite 等。然而&#xff0c;这些库…

Word2Vec 模型 PyTorch 实现并复现论文中的数据集

详细注解链接&#xff1a;https://www.orzzz.net/directory/codes/Word2Vec/index.html 欢迎咨询&#xff01;

Vue中纯前端实现导出简单Excel表格的功能

Vue 前端Excel导出 Vue中纯前端导出简单Excel表格的方法(使用vue-json-excel插件) 前言 在许多的后台系统中少不了导出Excel表格的功能&#xff0c;在项目中纯前端使用vue-json-excel插件来实现简单Excel表格的导出功能。 使用方法 1、安装依赖 npm install vue-json-exc…

「数据结构详解·十五」树状数组

「数据结构详解一」树的初步「数据结构详解二」二叉树的初步「数据结构详解三」栈「数据结构详解四」队列「数据结构详解五」链表「数据结构详解六」哈希表「数据结构详解七」并查集的初步「数据结构详解八」带权并查集 & 扩展域并查集「数据结构详解九」图的初步「数据结构…

复合机器人为生产提供精准的建议和决策支持

在现代化生产的浪潮中&#xff0c;智能复合机器人以其卓越的性能和高度智能化特点&#xff0c;正成为保障生产安全与可靠性的重要力量。 智能复合机器人具备精确的感知、判断和决策能力&#xff0c;能够在复杂的生产环境中自主导航、精确操作&#xff0c;避免了人为因素可能导致…