Linux之编辑器vim命令

vi/vim命令:

终端下编辑文件的首选工具,号称编辑器之神

基本上分为三种模式,分别是
  1. 命令模式(command mode)===>输入vi的命令和快捷键,默认打开文件的时候的模式
  2. 插入模式(insert mode)===>进入编辑模式,可以编辑文件
  3. 底行模式(last line mode)===>调整文件内容

找到一张图片来展示三种模式之间的转换

常规基本操作:
  1. vim file  #vim后面跟一个文件名打开文件,默认进入命令行模式,无法编辑文件
  2. 按下字母i键即可进入插入模式,注意文件左下角会出现“-----插入(黏贴)-----”
  3. 开始编辑文件内容
  4. 按下Esc键,切换到命令行模式,再按下shift+“:”组合键,进入底行模式,标志是文件左下角会出现不停闪烁的“:”,在此的后面写上wq或者q!回车,保存退出。
其他操作命令:

1移动命令,所有操作在命令行模式执行

        0)默认支持方向键移动

        1)向前移动:l,空格,方向右键

        2)向后移动:h、方向左键

        3)移动到下一行:+、ENTER、j、ctrl+n、方向下键

        4) 移动到上一行:ctrl+p、方向上键

其他快捷操作:

        移动到行首:0        移动到行尾:$

        屏幕滚动下:ctrl+f        屏幕滚动上:ctrl+b

        zt 定位到屏幕顶端         zb 屏幕定位到屏幕底端

        gg定位到文件开头         G定位到文件末尾

2.编辑命令:

        1) 插入iI        i 在光标当前插入
                                I 在光标行开头插入
        2) 附加 a/A         a 在光标后增加
                                A 在光标行最后增加
        3)新行 /0         o在光标行下新起一行
                                0 在光标行上面新起一行
        4)删除x/X         x删除光标所在处字符
                                X 删除光标前面的字符,
                                可以 nx /nX表示删除多少个字符
        5)删除行         dd/D dd 删除光标所在行
                                D 从光标所在位置开始到行末位
                                dgg 删除光标所在行到文件开头的所有数据

                                 dG 删除光标所在行到文件末尾的所有数据

                                 u 用来撤销刚才的操作

        6)剪切与粘贴

                dd剪切一行

                p 粘贴一行

        7)复制与粘贴:

                yy复制一行

                p 粘贴一行

        8)复制与移动: 底行模式下执行
                :开始行,结束行 co 目标行
                例如·…: 1,2 co 5 把第一行到第二行复制到第五行

                :开始行,结束行 m 目标行
                例如::1,2m5把第一行到第二行移动到第五行

        9)移动到指定行,行号   行号G

查找与替换命令:


1)查找 在命令模式使用"/"在其后直接写需要查询的

        关键字 然后>回车 ==》 n/N 来查询

        n 表示从光标处开始往下找

        N 表示从光标处开始往上找

/\ <xx\> 表示严格匹配查找xx字符

        比如: /\<printf\>==>严格匹配,只查找该单词

        ./printf.....==>模糊匹配,只要包含该单词都高亮显示

                                  在当前文档中严格匹配查找单词printf    

2)替换:g/s1/s//s2/g

将文件中所有的s1字符串都替换成s2,

s1和s2可以使字母也可以是字符

        比如::g/printf/s//PRINTF/g

        将当前文档中所有的小写printf全部替换成大写的printf

其他常用操作:

u 撤销刚才的操作                       重复刚才的动作

挂起 ctrl+z                                    恢复fg    

关键字补齐 ctrl+n                    自动缩进    "='

高亮显示...%                            :sp(:vsp) 文件名横(纵)向窗口, ctrl+w 多窗口切换    

显示不同…:set diff                    去掉显示不同语法:set nodiff    

保存退出命令:

 wq 保存退出        :·q.不保存退出        :.x保存退出

wq!…强制保存退出        :q! 强制不保存退出

wq...../home/linux/xxx.c        指定位置保存文件

自动框架:.vimrc 文件


 

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

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

相关文章

第一天学爬虫

阅读提示&#xff1a;我今天才开始尝试爬虫&#xff0c;写的不好请见谅。 一、准备工具 requests库&#xff1a;发送HTTP请求并获取网页内容。BeautifulSoup库&#xff1a;解析HTML页面并提取数据。pandas库&#xff1a;保存抓取到的数据到CSV文件中。 二、爬取步骤 发送请求…

MySQL实战(尚硅谷)

要求 代码 # 准备数据 CREATE DATABASE IF NOT EXISTS company;USE company;CREATE TABLE IF NOT EXISTS employees(employee_id INT PRIMARY KEY,first_name VARCHAR(50),last_name VARCHAR(50),department_id INT );DESC employees;CREATE TABLE IF NOT EXISTS departments…

windows下安装sublime

sublime4 alpha 4098 版本 下载 可以根据待破解的版本选择下载 https://www.sublimetext.com/dev crack alpha4098 的licence 在----- BEGIN LICENSE ----- TwitterInc 200 User License EA7E-890007 1D77F72E 390CDD93 4DCBA022 FAF60790 61AA12C0 A37081C5 D0316412 4584D…

激光线检测算法的FPGA实现

激光线检测算法的FPGA实现 1. 常见的激光线检测算法 激光线检测中常用的三种算法 MAX&#xff08;最大值法&#xff09;、THRESH&#xff08;阈值法&#xff09;、COG&#xff08;灰度重心法&#xff09; 分别具有以下特点和工作原理&#xff1a; 1.1 MAX&#xff08;最大值法…

小样本微调大模型

一、环境搭建 conda create -n dseek python=3.10 conda activate dseek pip install bitsandbytes Pip install numpy python -m pip install --upgrade pip setuptools wheel 安装cuda,torch,Unsloth, huggingface,wandb等,见前述章节; 微调服务器配置:单机笔记本显卡4…

深入理解指针(2)(C语言版)

文章目录 前言一、数组名的理解二、使用指针访问数组三、一维数组传参的本质四、冒泡排序五、二级指针六、指针数组七、指针数组模拟二维数组总结 前言 在上一篇文章中&#xff0c;我们初步了解了指针的基本概念和用法。今天&#xff0c;我们将继续深入探索指针在数组、函数传…

高效内存管理:x86-64架构中的分页机制

在 x86-64 架构的世界里&#xff0c;内存分页机制扮演着举足轻重的角色&#xff0c;它就像是一座桥梁&#xff0c;连接着虚拟地址与物理地址。简单来说&#xff0c;内存分页机制就是将线性地址&#xff08;也就是虚拟地址&#xff09;切分成一个个固定大小的页&#xff0c;并把…

统一开放世界与开放词汇检测:YOLO-UniOW无需增量学习的高效通用开放世界目标检测框架

目录 一、摘要 二、引言 三、相关工作 开放词汇对象检测 开放世界目标检测 参数高效学习 四、高效通用的开放世界目标检测 问题定义 高效的自适应决策学习 开放世界通配符学习 五、Coovally AI模型训练与应用平台 六、实验 数据集 评价指标 实施细节 定量结果 …

fileinclude

##解题思路 场景首页没有什么提示&#xff0c;只有个flag在flag.php中&#xff0c;而且需要更改language&#xff0c;还有个index.php的路径&#xff0c;先记住它 习惯性查看源代码&#xff0c;得到了题目真正的内容&#xff0c;关键在于lan变量读取我们传入的Cookie值中的lang…

链表-LeetCode

这里写目录标题 1 排序链表1.1 插入法 O&#xff08;n&#xff09;1.2 归并排序 1 排序链表 1.1 插入法 O&#xff08;n&#xff09; /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullpt…

计算机网络基础:WiFi 与蓝牙的原理与应用

计算机网络基础:WiFi 与蓝牙的原理与应用 一、前言二、WiFi 原理2.1 概述2.2 工作频段2.2.1 2.4GHz 频段2.2.2 5GHz 频段2.3 调制技术2.3.1 正交频分复用(OFDM)2.3.2 直接序列扩频(DSSS)2.4 通信协议2.5 网络架构2.5.1 独立基本服务集(IBSS)2.5.2 基础服务集(BSS)2.5.…

深入解析 Java 类加载机制及双亲委派模型

&#x1f50d; Java的类加载机制是确保应用程序正确运行的基础&#xff0c;特别是双亲委派模型&#xff0c;它通过父类加载器逐层加载类&#xff0c;避免冲突和重复加载。但在某些特殊场景下&#xff0c;破坏双亲委派模型会带来意想不到的效果。本文将深入解析Java类加载机制、…

【数据可视化艺术·进阶篇】热力图探秘:用色彩演绎场馆和景区的人流奥秘

假期出游&#xff0c;你是不是也遇到过这样的状况&#xff1a;想去的热门景点&#xff0c;放眼望去全是攒动的人头&#xff0c;根本没法好好欣赏风景&#xff1b;而景区里一些小众角落&#xff0c;却冷冷清清&#xff0c;鲜有人至。还有在轨道交通枢纽、大型体育场这些地方&…

理解文字识别:一文读懂OCR商业化产品的算法逻辑

文字识别是一项“历久弥新”的技术。早在上世纪初&#xff0c;工程师们就开始尝试使用当时有限的硬件设备扫描并识别微缩胶片、纸张上的字符。随着时代和技术的发展&#xff0c;人们在日常生活中使用的电子设备不断更新换代&#xff0c;文字识别的需求成为一项必备的技术基础&a…

智能监控视频聚合平台,GB28181/RTSP/SIP/RTMP直播会议融合方案

全场景智能监控聚合平台&#xff1a;打破边界&#xff0c;赋能高效协同 在数字化转型加速的今天&#xff0c;海量视频监控设备、多样化的编码协议与复杂的业务场景&#xff0c;让企业面临跨系统整合难、资源调度效率低、协作响应慢等痛点。我们的智能监控聚合平台以技术创新为…

【机器学习】imagenet2012 数据预处理数据预处理

【机器学习】数据预处理 1. 下载/解压数据2. 数据预处理3. 加载以及训练代码3.1 使用PIL等加载代码3.2 使用OpenCV的方式来一张张加载代码3.3 h5的方式来加载大文件 最后总结 这个数据大约 140个G,128w的训练集 1. 下载/解压数据 首先需要下载数据&#xff1a; 数据最后处理…

语言模型理论基础-持续更新-思路清晰

1.预训练 相似的任务A、B&#xff0c;任务A已经用大数据完成了训练&#xff0c;得到模型A。 我们利用-特征提取模型的-“浅层参数通用”的特性&#xff0c;使用模型A的浅层参数&#xff0c;其他参数再通过任务B去训练&#xff08;微调&#xff09;。 2.统计语言模型 通过条件…

IDEA的基础快捷键

文章目录 1、书写main函数2、书写输出函数println3、书写for循环4、输出变量的值或者输出函数求的值5、代码注释7、主题、字体设置8、自动生成使用信息9、关闭启动IDEA默认打开上次的项目10、字体放大放小11、代码缩进12、快速复制/删除一行13、回退14、字母大小写转换15、调试…

音视频 二 看书的笔记 MediaPlayer

此类是用于播放声音和视频的主要 API 对方不想多说向你丢了一个链接 MediaPlayer Idle 空闲状态Initialized 初始化状态 调用 setDataSource() 时会进入此状态 setDataSource必须在Idle 状态下调用&#xff0c;否则就抛出异常了了了了了。Prepared 准备状态 回调监听setOnPrep…

Linux笔记---动静态库(使用篇)

目录 1. 库的概念 2. 静态库&#xff08;Static Libraries&#xff09; 2.1 静态库的制作 2.2 静态库的使用 2.2.1 显式指定库文件及头文件路径 2.2.2 将库文件安装到系统目录 2.2.3 将头文件安装到系统目录 3. 动态库 3.1 动态库的制作 3.2 动态库的使用 3.2.1 显式…