vim使用指南
🏝️专栏:计算机操作系统
🌅主页:猫咪-9527-CSDN博客“欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。”
目录
一、Vim 的基本概念
1.Vim 的主要模式:
1.1普通模式 (Normal Mode)
1.2插入模式 (Insert Mode)
1.3命令模式 (Command Mode)
二、Vim 的基础操作
1. 文件打开与关闭
2. 普通模式操作
2.1 光标移动
2.1.1单字符移动
2.1.2括号匹配跳转
2.1.3屏幕滚动
2.1.4行内移动
2.1.5单词移动
2.2 文本删除
2.3 文本复制与粘贴
2.4 撤销与重做
2.5 替换
3. 插入模式操作
4. 命令模式操作
4.1 文件操作
4.2 搜索与替换
4.2.1搜索
4.2.2替换
5. 高级操作
5.1 多文件编辑
5.2 分屏
三、vim的配置
一、Vim 的基本概念
Vim 是一种强大的文本编辑器,支持模式化编辑。它主要通过 模式切换 和 快捷键操作 来高效地编辑文本。
1.Vim 的主要模式:
1.1普通模式 (Normal Mode)
操作:默认模式,进入 Vim 时即处于该模式,按 Esc
回到普通模式
作用:用于文件浏览、文本导航、删除、复制粘贴等操作。
1.2插入模式 (Insert Mode)
作用:用于文本输入。
操作:在普通模式下按 i
或 a
进入,按 Esc
退出。
1.3命令模式 (Command Mode)
作用:用于执行保存、退出、搜索、替换等命令。
操作:在普通模式下按 :
进入,命令执行后会返回普通模式。
二、Vim 的基础操作
1. 文件打开与关闭
打开文件:
vim [文件名]
例如:
vim text.c
2. 普通模式操作
普通模式是 Vim 最核心的模式,用于导航、删除、复制粘贴等操作。
2.1 光标移动
2.1.1单字符移动
h
:向左移动一个字符。l
:向右移动一个字符。j
:向下移动一行。k
:向上移动一行。
2.1.2括号匹配跳转
%
:在匹配的括号间跳转(适用于()
、[]
、{}
等结构)。
2.1.3屏幕滚动
Ctrl + d
:向下滚动半屏。Ctrl + u
:向上滚动半屏。Ctrl + f
:向下滚动一屏。Ctrl + b
:向上滚动一屏。:n
:跳到第n
行(如输入:10
跳到第 10 行)。gg
:跳到文件的开头。G
:跳到文件的结尾。
2.1.4行内移动
0
:移动到当前行的行首。^
:移动到行首第一个非空字符。$
:移动到行尾。
2.1.5单词移动
w
:跳到下一个单词的开头。e
:跳到当前单词的结尾,或下一个单词的结尾。b
:跳到前一个单词的开头。
2.2 文本删除
x
:删除当前字符。dd
:删除当前行。dw
:删除从光标位置到单词末尾。d$
:删除从光标位置到行尾。d0
:删除从光标位置到行首。dgg
:删除从光标到文件开头。dG
:删除从光标到文件结尾。
2.3 文本复制与粘贴
yy
:复制当前行。y
:复制选定区域(可与可视模式结合)。yw
:复制从光标到单词末尾。y$
:复制从光标到行尾。p
:粘贴到光标后。P
:粘贴到光标前。
2.4 撤销与重做
u
:撤销上一步操作。Ctrl + r
:重做撤销操作。
2.5 替换
r+单个字母
:用 单个字母 替换当前字符。R
:进入替换模式,覆盖原文字。
3. 插入模式操作
在普通模式下,按以下键进入插入模式:
i
:从光标前进入插入模式。I
:从行首进入插入模式。a
:从光标后进入插入模式。A
:从行尾进入插入模式。o
:在当前行下插入新行并进入插入模式。O
:在当前行上插入新行并进入插入模式。- 退出插入模式:按
Esc
。
4. 命令模式操作
在普通模式下,按 :
进入命令模式,可执行以下命令:
4.1 文件操作
:w
保存文件。:q
退出文件。:wq
保存并退出。:q!
强制退出。:sav new_filename
另存为。
4.2 搜索与替换
4.2.1搜索
/text
:向下搜索text
。?text
:向上搜索text
。n
:跳到下一个匹配项。N
:跳到上一个匹配项。
4.2.2替换
:s/old/new/
:将当前行的第一个old
替换为new
。:s/old/new/g
:将当前行的所有old
替换为new
。:%s/old/new/g
:将整个文件中的old
替换为new
。:%s/old/new/gc
:替换前逐一确认。
5. 高级操作
5.1 多文件编辑
- 打开多个文件:
vim file1 file2 file3
-
文件切换:
-
:n
:下一个文件。 -
:prev
:上一个文件。 -
:ls
:列出已打开的文件。 -
:b n
:切换到编号为 n 的文件。
-
5.2 分屏
-
垂直分屏:
:vsplit filename
。 -
水平分屏:
:split filename
。 -
分屏切换:
-
Ctrl + w + h
:切换到左侧窗口。 -
Ctrl + w + l
:切换到右侧窗口。 -
Ctrl + w + j
:切换到下方窗口。 -
Ctrl + w + k
:切换到上方窗口。
-
三、vim的配置
详细请看:vim的配置
编辑 ~/.vimrc
文件可自定义 Vim。例如:
set number " 显示行号
syntax on " 开启语法高亮
set tabstop=4 " 设置 Tab 宽度为 4
set shiftwidth=4 " 设置自动缩进宽度为 4
set expandtab " 用空格代替 Tab
相关文章:
vim使用指南
🏝️专栏:计算机操作系统 🌅主页:猫咪-9527-CSDN博客 “欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。” 目录 一、Vim 的基本概念 1.Vim 的主要模式: 1.1普通模式 (Normal Mode) 1.2插入…...
Docker 镜像制作原理 做一个自己的docker镜像
一.手动制作镜像 启动容器进入容器定制基于容器生成镜像 1.启动容器 启动容器之前我们首先要有一个镜像,这个镜像可以是从docker拉取,例如:现在pull一个ubuntu镜像到本机。 docker pull ubuntu:22.04 我们接下来可以基于这个容器进行容器…...
基于Java+SpringBoot+Vue的前后端分离的在线BLOG网
基于JavaSpringBootVue的前后端分离的在线BLOG网 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接dz…...
Linux网络_套接字_UDP网络_TCP网络
一.UDP网络 1.socket()创建套接字 #include<sys/socket.h> int socket(int domain, int type, int protocol);domain (地址族): AF_INET网络 AF_UNIX本地 AF_INET:IPv4 地址族,适用于 IPv4 协议。用于网络通信AF_INET6:IPv6 地址族&a…...
Java学习教程,从入门到精通,JDBC驱动程序类型及语法知识点(91)
JDBC驱动程序类型及语法知识点 一、JDBC驱动程序类型 JDBC驱动程序主要有以下四种类型: 1. Type 1:JDBC - ODBC桥驱动程序(JDBC - ODBC Bridge Driver) 特点:这种驱动程序是Java与ODBC(Open Database C…...
YOLOv8从菜鸟到精通(二):YOLOv8数据标注以及模型训练
数据标注 前期准备 先打开Anaconda Navigator,点击Environment,再点击new(new是我下载anaconda的文件夹名称),然后点击创建 点击绿色按钮,并点击Open Terminal 输入labelimg便可打开它,labelimg是图像标注工具,在上篇…...
3D目标检测数据集——Nusence数据集
链接地址 [官网] nuScenes[arXiv] nuScenes: A multimodal dataset for autonomous driving[GitHub] nuScenes devkitnuScenes devkit教程数据集概述 2.1 数据采集 2.1.1 传感器配置 nuScenes的数据采集车辆为Renault Zoe迷你电动车,配备6个周视相机&#x...
网站收录入口提交的方法有哪些(网站收录的方式都有哪些)
网站被搜索引擎收录是获得流量和曝光的重要前提,以下为你介绍常见的网站收录方式: 搜索引擎提交入口 各大搜索引擎都设有专门的网站收录入口,供站长提交网站。例如百度搜索资源平台、谷歌搜索控制台等。以百度为例,在百度搜索资…...
移动端H5缓存问题
移动端页面缓存问题是指页面的静态资源(如图片、JS 和 CSS 文件)在浏览器中被缓存后,用户在下次访问时可以直接从本地获取缓存数据,而不需要每次都从服务器重新获取,不过这样可能会导致页面不能正确地更新或者加载最新…...
11-1.Android 项目结构 - androidTest 包与 test 包(单元测试与仪器化测试)
androidTest 包与 test 包 在 Android 项目中,androidTest 包与 test 包用于存放不同类型的测试代码的 1、测试类型 (1)androidTest 包 主要用于存放单元测试(Unit Tests)代码 单元测试是针对应用程序中的独立模块…...
计算机网络(五)——传输层
一、功能 传输层的主要功能是向两台主机进程之间的通信提供通用的数据传输服务。功能包括实现端到端的通信、多路复用和多路分用、差错控制、流量控制等。 复用:多个应用进程可以通过同一个传输层发送数据。 分用:传输层在接收数据后可以将这些数据正确分…...
ZCC9159 -7V 300mA 超低功耗高速 LDO
功能描述 ZCC9195是一款超低功耗并具有快速响应、关断快速放电功能的高速LDO。静态电流低至 0.8uA,输出电流最大为300mA。 ZCC9195具有输出过流保护、输出短路保护、温度保护等功能,确保芯片在异常工作条件 下不会损坏。 ZCC9195只需要1uF的陶瓷电容即…...
微信小程序实现个人中心页面
文章目录 1. 官方文档教程2. 编写静态页面3. 关于作者其它项目视频教程介绍 1. 官方文档教程 https://developers.weixin.qq.com/miniprogram/dev/framework/ 2. 编写静态页面 mine.wxml布局文件 <!--index.wxml--> <navigation-bar title"个人中心" ba…...
【C语言算法刷题】第7题
题目描述 一个XX产品行销总公司,只有一个boss,其有若干一级分销,一级分销又有若干二级分销,每个分销只有唯一的上级分销。 规定,每个月,下级分销需要将自己的总收入(自己的下级上交的…...
BERT与CNN结合实现糖尿病相关医学问题多分类模型
完整源码项目包获取→点击文章末尾名片! 使用HuggingFace开发的Transformers库,使用BERT模型实现中文文本分类(二分类或多分类) 首先直接利用transformer.models.bert.BertForSequenceClassification()实现文本分类 然后手动实现B…...
RocketMQ消息发送---源码解析
我们知道rocketMQ的消息发送支持很多特性,如同步发送,异步发送,oneWay发送,也支持超时机制,回调机制,并且能够保证消息的可靠性和消息发送的限流,底层使用netty框架等等,如此多的特性…...
机器学习06-正则化
机器学习06-正则化 文章目录 机器学习06-正则化0-核心逻辑脉络1-参考网址3-大模型训练中的正则化1.正则化的定义与作用2.常见的正则化方法及其应用场景2.1 L1正则化(Lasso)2.2 L2正则化(Ridge)2.3 弹性网络正则化(Elas…...
如何开放2375和2376端口供Docker daemon监听
Linux (以 Ubuntu 为例) 1. 修改 Docker 配置文件 打开 Docker 的配置文件 /etc/docker/daemon.json。如果该文件不存在,则可以创建一个新的。 bash sudo nano /etc/docker/daemon.json在配置文件中添加以下内容: json {"hosts": ["un…...
Vue.js组件开发-如何实现路由懒加载
在Vue.js应用中,路由懒加载是一种优化性能的技术,它允许在需要时才加载特定的路由组件,而不是在应用启动时加载所有组件。这样可以显著减少初始加载时间,提高用户体验。在Vue Router中,实现路由懒加载非常简单…...
rclone,云存储备份和迁移的瑞士军刀,千字常文解析,附下载链接和安装操作步骤...
一、什么是rclone? rclone是一个命令行程序,全称:rsync for cloud storage。是用于将文件和目录同步到云存储提供商的工具。因其支持多种云存储服务的备份,如Google Drive、Amazon S3、Dropbox、Backblaze B2、One Drive、Swift、…...
集成学习算法
目录 1.必要的导入 2.Bagging集成 3.基于matplotlib写一个函数对决策边界做可视化 4.总结图中结论 5.扩展说明 1.必要的导入 # To support both python 2 and python 3 from __future__ import division, print_function, unicode_literals# Common imports import numpy as np…...
vue3之pinia学习
最近查看了pinia这个状态管理管理,想跟大家一起学习下,下面是我的个人理解,希望对大家有帮助,我们开始吧! 第一步:安装pinia npm install pinia 第二步:创建pinia <script setup langts&…...
Flink (七): DataStream API (四) Watermarks
1. Event Time and Processing Time 1. 1 处理时间(Processing time) 处理时间是指执行相应操作的机器的系统时间。当流处理程序基于处理时间运行时,所有基于时间的操作(如时间窗口)将使用执行相应算子的机器的系统时…...
卷积神经05-GAN对抗神经网络
卷积神经05-GAN对抗神经网络 使用Python3.9CUDA11.8Pytorch实现一个CNN优化版的对抗神经网络 简单的GAN图片生成 CNN优化后的图片生成 优化模型代码对比 0-核心逻辑脉络 1)Anacanda使用CUDAPytorch2)使用本地MNIST进行手写图片训练3)…...
【原创】大数据治理入门(2)《提升数据质量:质量评估与改进策略》入门必看 高赞实用
提升数据质量:质量评估与改进策略 引言:数据质量的概念 在大数据时代,数据的质量直接影响到数据分析的准确性和可靠性。数据质量是指数据在多大程度上能够满足其预定用途,确保数据的准确性、完整性、一致性和及时性是数据质量的…...
GLM: General Language Model Pretraining with Autoregressive Blank Infilling论文解读
论文地址:https://arxiv.org/abs/2103.10360 参考:https://zhuanlan.zhihu.com/p/532851481 GLM混合了自注意力和masked注意力,而且使用了2D位置编码。第一维的含义是在PartA中的位置,如5 5 5。第二维的含义是在Span内部的位置&a…...
总结SpringBoot项目中读取resource目录下的文件多种方法
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…...
云原生第四次作业
下载 [rootopenEuler-1 ~]# wget https://archive.apache.org/dist/httpd/httpd-2.4.46.tar.gz 压缩 配置实验环境 [rootopenEuler-1 httpd-2.4.46]# yum -y install apr apr-devel cyrus-sasl-devel expat-devel libdb-devel openldap-devel apr-util-devel apr-util pcre-d…...
day10_Structured Steaming
文章目录 Structured Steaming一、结构化流介绍(了解)1、有界和无界数据2、基本介绍3、使用三大步骤(掌握)4.回顾sparkSQL的词频统计案例 二、结构化流的编程模型(掌握)1、数据结构2、读取数据源2.1 File Source2.2 Socket Source…...
设计模式-工厂模式/抽象工厂模式
工厂模式 定义 定义一个创建对象的接口,让子类决定实列化哪一个类,工厂模式使一个类的实例化延迟到其子类; 工厂方法模式是简单工厂模式的延伸。在工厂方法模式中,核心工厂类不在负责产品的创建,而是将具体的创建工作…...
【算法学习】——整数划分问题详解(动态规划)
🧮整数划分问题是一个较为常见的算法题,很多问题从整数划分这里出发,进行包装,形成新的题目,所以完全理解整数划分的解决思路对于之后的进一步学习算法是很有帮助的。 「整数划分」通常使用「动态规划」解决࿰…...
【新教程】Ubuntu 24.04 单节点安装slurm
背景 网上教程老旧,不适用。 详细步骤 1、安装slurm sudo apt install slurm-wlm slurm-wlm-doc -y检查是否安装成功: slurmd --version如果得到slurm-wlm 23.11.4,表明安装成功。 2、配置slurm。 使用命令: sudo vi /etc/s…...
window下用vim
Windows 默认不支持 vim 命令,需要手动安装后才能使用。以下是解决方案: 1. 安装 Vim 编辑器 方法 1:通过 Scoop 或 Chocolatey 安装 使用 Scoop: 安装 Scoop(如果尚未安装):iwr -useb get.sco…...
citrix netscaler13.1 重写负载均衡响应头(基础版)
在 Citrix NetScaler 13.1 中,Rewrite Actions 用于对负载均衡响应进行修改,包括替换、删除和插入 HTTP 响应头。这些操作可以通过自定义策略来完成,帮助你根据需求调整请求内容。以下是三种常见的操作: 1. Replace (替换响应头)…...
使用PWM生成模式驱动BLDC三相无刷直流电机
引言 在 TI 的无刷直流 (BLDC) DRV8x 产品系列使用的栅极驱动器应用中,通常使用一些控制模式来切换MOSFET 开关的输出栅极。这些控制模式包括:1x、3x、6x 和独立脉宽调制 (PWM) 模式。 不过,DRV8x 产品系列(例如 DRV8311&…...
常见的php框架有哪几个?
一直以来,PHP作为一种广泛使用的编程语言,拥有着许多优秀的框架来帮助开发人员快速构建稳定的Web应用程序。本文降为大家介绍几种常见的PHP的主流框架,以及它们相关的特点和使用场景。如有问题,欢迎指正! 1.Laravel&a…...
机器学习(2):线性回归Python实现
1 概念回顾 1.1 模型假设 线性回归模型假设因变量y yy与自变量x xx之间的关系可以用以下线性方程表示: y β 0 β 1 ⋅ X 1 β 2 ⋅ X 2 … β n ⋅ X n ε y 是因变量 (待预测值);X1, X2, ... Xn 是自变量(特征)β0, β1,…...
Unity-Mirror网络框架-从入门到精通之RigidbodyPhysics示例
文章目录 前言示例一、球体的基础配置二、三个球体的设置差异三、示例意图LatencySimulation前言 在现代游戏开发中,网络功能日益成为提升游戏体验的关键组成部分。本系列文章将为读者提供对Mirror网络框架的深入了解,涵盖从基础到高级的多个主题。Mirror是一个用于Unity的开…...
【Unity-Animator】通过 StateMachineBehaviour 实现回调
StateMachineBehaviour 简介 StateMachineBehaviour是一个基类,所有状态脚本都派生自该类。它可以在状态机进入、退出或更新状态时执行代码,而无需编写自己的逻辑来测试和检测状态的变化。这使得开发者可以更方便地处理状态转换时的逻辑,例…...
并行服务、远程SSH无法下载conda,报错404
原下载代码无效,报错404 wget -c https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh 使用下面代码下载 wget --user-agent"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12…...
cuquantum 简介
1. 关于 cuquantum 概述 官方文档: https://docs.nvidia.com/cuda/cuquantum/latest/appliance/overview.html#prerequisites NVIDIA 的 cuQuantum 是一个专门用于量子计算的高性能库,旨在加速量子电路的模拟和量子算法的执行。cuQuantum 提供了一系列…...
小程序如何引入腾讯位置服务
小程序如何引入腾讯位置服务 1.添加服务 登录 微信公众平台 注意:小程序要企业版的 第三方服务 -> 服务 -> 开发者资源 -> 开通腾讯位置服务 在设置 -> 第三方设置 中可以看到开通的服务,如果没有就在插件管理中添加插件 2.腾讯位置服务…...
【react】使用antd Table渲染数据遇到的报错问题
记录自己在开发过程中遇到的报错问题: 目录 原本写法:错误分析:解决方案: 原本写法: render: (text) > {console.log(text, "111111text");console.log(typeof text, "111111text");return t…...
55_OpenResty开发入门
Nginx编程需要用到Lua语言,因此我们必须先学习Lua的基本语法。Nginx本身也是C语言开发,因此也允许基于Lua做拓展。多级缓存的实现离不开Nginx编程,而Nginx编程又离不开OpenResty。 1.OpenResty概述 OpenResty是一款基于NGINX和LuaJIT的Web平台。通过Lua扩展NGINX实现的可伸…...
(即插即用模块-Attention部分) 四十四、(ICIP 2022) HWA 半小波注意力
文章目录 1、Half Wavelet Attention2、代码实现 paper:HALFWAVELET ATTENTION ON M-NET FOR LOW-LIGHT IMAGE ENHANCEMENT Code:https://github.com/FanChiMao/HWMNet 1、Half Wavelet Attention 传统的图像增强方法主要关注图像在空间域的特征信息&am…...
链家房价数据爬虫和机器学习数据可视化预测
完整源码项目包获取→点击文章末尾名片!...
全网首发:编译libssh,产生类似undefined reference to `EVP_aes_256_ctr@OPENSSL_1_1_0‘的大量错误
具体错误 前面和后面的: /opt/linux/x86-arm/aarch64-mix210-linux/host_bin/../lib/gcc/aarch64-linux-gnu/7.3.0/../../../../aarch64-linux-gnu/bin/ld: warning: libcrypto.so.1.1, needed by ../lib/libssh.so.4.10.1, not found (try using -rpath or -rpat…...
springboot 集成javaFx 两个面板之间如何进行跳转
1.创建两个面板 可参考博主的 java8 springboot 集成javaFx 实现一个客户端程序 文章来实现 2.完善代码 以下是博主创建的两个模板 博主在这里实现的是登录跳转功能,注意:这里登录按钮的触发实现方式做了以下小小的改动,也可根据自己的习惯来处理 相较第一篇文章,博主在Lo…...
vue-cli项目配置使用unocss
在了解使用了Unocss后,就完全被它迷住了。接手过的所有项目都配置使用了它,包括一些旧项目,也跟同事分享了使用Unocss的便捷性。 这里分享一下旧项目如何配置和使用Unocss的,项目是vue2vue-cli构建的,node<20平常开…...
ASP.NET Core - IStartupFilter 与 IHostingStartup
ASP.NET Core - IStartupFilter 与 IHostingStartup 1. IStartupFilter2 IHostingStartup2.5.1 创建外部程序集2.5.2 激活外部程序集 1. IStartupFilter 上面讲到的方式虽然能够根据不同环境将Startup中的启动逻辑进行分离,但是有些时候我们还会可以根据应用中的功能…...