vim基础使用

news/2024/7/7 22:41:07/文章来源:https://www.cnblogs.com/xuruizhao/p/18277040

五、vim编辑器的使用

所有的Linux系统都默认有vi编译器,它就相当于Windows的记事本,当然,你也可以选择更好用的vim编译器,需要下载
yum install vim -y

vim 有三种模式
使用vim filename  wq!之后 这个命令如果filename不存在则 创建文件
[root@bogon opt]# vim zhanghaowei.txt
[root@bogon opt]# ll
total 28
-rw-r--r--. 1 root root 159 Nov  9 14:52 1
-rw-r--r--. 1 root root 159 Nov  7 21:17 a1
-rw-r--r--. 1 root root 159 Nov  7 21:17 a2
-rw-r--r--. 1 root root 159 Nov  7 21:17 a3
drwxr-xr-x. 2 root root   6 Nov  7 21:19 abc
-rw-r--r--. 1 root root  20 Nov  9 14:58 a.py
drwxr-xr-x. 2 root root  23 Nov  7 17:30 ddd
-rw-r--r--. 1 root root 105 Nov  9 15:11 gushi.txt
drwxr-xr-x. 2 root root  20 Nov  7 17:25 he
-rw-r--r--. 1 root root 269 Nov  9 17:09 practice.tar.gz
drwxr-xr-x. 2 root root   6 Sep 10 16:18 rh
-rw-r--r--. 1 root root   0 Nov  9 19:38 zhanghaowei.txt

image-20231109193241256

【1】、vim重点 命令模式

使用vim 命令进入文件之后默认的界面就是命令模式,在其他模式下也可以通过esc键进入命令模式1、关于vim编辑器的粘贴操作如果仅仅是中英文语句,可以直接粘贴如果是代码如:python程序 比如运维的高级配置文件语法yaml。这些有格式的文本信息,就与要进入vim的paste模式,才可以保证 正确的格式,
2、在命令模式下输入:set nu 可以显示行号,便于查看文件内容,输入set nonu删除行号
3、首行和尾行:在命令模式下按下 gg回到首行, G(shift+g)回到尾行
4、行首和行尾:在命令模式下输入0回到行首,$回到行尾
5、定位到指定行:在命令模式下,输入:行号/行号+G 快速定位在某一行
6、复制、粘贴:yy  复制光标所在行3yy  复制从光标行所在的行开始向下数的三行p   移动光标到你想要粘贴的行,按下p,将粘贴在下一行,按下P粘贴在上一行u  撤销上一步的动作CTRL+r   恢复撤销的步骤
7、剪切、删除dd (剪切后可以选择不粘贴那就是删除)数字+dd (剪切几行)D  删除当前行光标处以及后续的内容
8、删除内容:在命令模式下输入x删除光标处的内容。
9、删除所在行以及其后后面的 所有内容  dG

【2】、底线命令模式

在命令模式下输入冒号(英文),进入底线命令模式

1、:w  写入
2、:q  不保存退出
3、q   退出,(vim发现你写入了一些东西,不会让你直接退出,会提示你输入的数据还要不要)
4、!q  强制退出不保存
5、:wq   保存写入并退出
6、另存为文件::w  /dict/newfilename.txt
查找搜索命令
在vim的命令模式下,输入/ 在加上要查找的字符就可以进行搜索了,搜索出来的关键字会高亮显示,在命令模式下输入:noh会取消高亮显示	

image-20231113205125969

替换功能
1、单行替换
在底线命令模式下输入:s/原内容/新内容/   替换一次光标所在行的原内容,如果光标所在行没有原内容,则报错。
替换多次光标所在行的原内容  s/原内容/新内容/g  单行的全局替换
2、全篇替换
把文章中所有的旧内容替换为新内容 
(1)逐行寻找,并且只把每行寻找到的第一个关键字进行替换  %s/原内容/新内容/
(2)把全文中所有的关键字都替换掉   %s/原内容/新内容/g

【3】、粘贴模式(paste模式)

在日常工作中我们会频繁复制各种配置文件的信息,并且绝大多数的文件都有格式,如缩进等.在底线命令模式下,输入:set paste 进入粘贴模式,在这个模式下去粘贴信息,就不会发生格式上的改变。

image-20240327230705622

【4】、可视化模式 (可视化块)

 vim本身是行操作,可视化模式提供了列操作
1、先确定光标位置
2、在命令模式下按下ctrl+v,进入可视化模式
3、使用键盘的上下左右键选择区域(选择好之后可以,执行p,yy,dd,u等 操作
4、可以进入编辑模式修改文本了(输入I进入编辑模式,可以开始修改了,修改完成后按两下esc键,完成全部替换,并且退出)可以使用可视化模式进行多行添加注释和多行取消注释。

【5】、vim的swap处理

在使用vim打开文件时,有时会出现:Find a swap file by the name "filename.txt.swp"这个报错
出现原因:
1、有多个人同时打开处理这个文件
2、输入完内容后,没有按照正确的保存格式退出
Linux为了保护数据会出现一个swap文件,例如在输入数据时突然断电,系统会生成swap文件

image-20231114131604064

0:只读模式打开  E和R:覆盖   Q和A:都是退出
上面这是多人同时打开一个文件时出现的错误
下面是未按照标准规定退出的情况所报的错误
我们可以看process后面的提示进行区分,still running表示还有别人你在操作

image-20231114132100777

写一个python文件使得其可以高亮显示
方法1:可以把文件的扩展名写为.py  同理如果我们想写一个shell文件、html文件等可以把扩展名改为对应的形式
方法2:在文件中加上文件头,在Linux中会自带一些语言的编译器
[root@bogon sbin]# ll /usr/bin/python
lrwxrwxrwx. 1 root root 7 Sep  7 17:50 /usr/bin/python -> python2
我们只需要将路径加到文件的最开始即可这里需要注意:高亮显示一定是要开启的。在vim的底线命令模式下开启和关闭
syntax on 打开颜色
syntax off 关闭颜色

image-20231117185736675

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

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

相关文章

【YOLOv8改进 - 注意力机制】NAM:基于归一化的注意力模块,将权重稀疏惩罚应用于注意力机制中,提高效率性能

**NAM: 提升模型效率的新颖归一化注意力模块,抑制非显著权重,结合通道和空间注意力,通过批量归一化衡量重要性。在Resnet和Mobilenet上的实验显示优于其他三种机制。源码见[GitHub](https://github.com/Christian-lyc/NAM)。**介绍摘要 识别较不显著的特征是模型压缩的关键。…

VP记录

我是真的红温了受打击了,他妈难受死了,遂记录这玩意儿,就算他妈没几个月就要退役。 ABC360 就是这场把我打击到了。之前15min切完ABCD,这回25min切B题,幽默🤡頑張って

视野修炼-技术周刊第90期 | 豆包AI IDE

① 豆包 MarsCode 正式发布 ② ECMAScript 2024 正式发布 ③ Mako 开源 - 蚂蚁的 Rust 力作 ④ CSDN批量搬运Github项目伪造开发者主页 ⑤ HTML 旋转图像实现示例 ⑥ 一组看着糙的组件库 ⑦ Chrome 126 中 DevTools 的新增功能 ⑧ 纯 CSS 实现环形文本欢迎来到第 90 期的【视野…

3.2

3.2 一键部署多台linux 1. 背景: 一般的机房的几十台甚至上百台电脑都需要统一部署操作系统。人工一个一个太费力,所以需要用到批量部署技术。 2. 实现原理:安装一台服务器后,通过交换机连接同一个网络方式还有结合自动应答文件的方式来实现。 ​ 网络拓扑图如下:这需要先…

ASRPRO语音控制开发板

近来想做语音控制,于是拼多多上淘了块语音控制开发板,记录下开发板相关的信息。 1.开发板信息 模块概述 开发板板载CH340K芯片,一根Type-C线就可以下载程序,并且开发板上有自动断电电路可以实现一键下载。 开发板需要外接喇叭,喇叭为PH2.0接口。 下图为开发板实物图开发板…

Prompt-Tuning、P-Tuning和Prefix-Tuning区别和代码实现【转】

原文:https://blog.csdn.net/weixin_43863869/article/details/134760405

OPP第三次博客作业

1.前言 这次博客不出意外是我们Java课程的最后一次博客了,不过这次博客pta只有两题,但真的挺难的,尤其是最后一个,我自己的设计也有很大的问题,第七次pta遗留下了一点点问题,导致第八次出现了很多问题,导致在后面要大篇幅的改,之后改完以后又不明白之前的写的代码有啥用…

Vue - 入门

零:前端目前形势 前端的发展史HTML(5)、CSS(3)、JavaScript(ES5、ES6):编写一个个的页面 -> 给后端(PHP、Python、Go、Java) -> 后端嵌入模板语法 -> 后端渲染完数据 -> 返回数据给前端 -> 在浏览器中查看Ajax的出现 -> 后台发送异步请求,Render+Ajax混合…

(线段树,最小值不能低于0的)北京建筑大学2024年程序设计竞赛 A 寿命修改

题意:code: #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #include <bits/stdc++.h> using namespace std; using i64 = long long; using u64 = unsigned long long; using PII = …

PTA第三阶段作业总结

前言 第三阶段的两次大作业明显对设计的要求进一步提高了。我两次作业一共得到了162分,最后一次作业只得到了62分,第7次作业得到了满分,但程序仍有许多不足,下面开始逐题分析。 7-1 家居强电电路模拟程序-3 这道题是一个全新的模拟场景,模拟一个家居电路。主要的类就是一个…

Django 笔记 - Django Shell

启动 Django Shell 交互式界面,具体命令如下:python manage.py shell具体实例 实例 1. 直接修改用户密码,无需原密码。 在 Django Shell 交互式界面下,修改 admin 用户密码的具体代码如下:from django.contrib.auth.models import User user = User.objects.get(username=…

用pipenv解决pyinstaller打包文件过大的问题

学会用pyinstaller打包python文件后,我发现直接大暴出来的文件内存特别大 于是我上网搜了一些压缩方法,试过用upx,用了之后感觉有点麻烦,后面又看到了pipenv,感觉还不错 首先用windows+r快捷键输入cmd打开命令管理器安装pipenv模块pip install pipenv -i https://pypi.tun…

对7~8次pta的总结

(1).前言: 第七次pta难度很大,主要体现在互斥开关的设计上: 互斥开关: 互斥开关有3个引脚:1个是汇总引脚,另两个是分支引脚。 开关电路示意图如图1所示,左边是汇总引脚,编号为1;右边两个是分支引脚,右上的输出引脚为2,右下输出引脚为3。图中1、2、3引脚均可以是输入引脚…

rust的webview框架tauri快速搭建

因为上一步把rust相关环境都搭建好了,可以用h5开发桌面程序了,搭建tauri npm create tauri-app@latest,等待安装npm run tauri dev,运行测试环境了,直接用网页查看页面效果 npm run tauri build,等待打包出exe文件,在目录tauri-app\src-tauri\target\release下运行exe查…

数据分析神器Pandas快速入门3类型转换

序列类型转换3.1 自动转换 在pandas 1.0 中,引入了一种新的转换方法.convert_dtypes。它会尝试将Series 换为支持 pd.NA 类型。以city_mpg 系列为例,它将把类型从int64转换为Int64: >>> city_mpg.convert_dtypes() 0 19 1 9 2 23 3 1…

log 日志原理

1)slf4j接口 仅仅定义了接口,因此,需要绑定到具体的日志框架才可以打印日志出来,具体如何来做呢,引用一张slf4j官网上的图片: 具体的组合使用: slf4j-api,日志是打到了/dev/null里面,因此啥也打印不出来slf4j-api + logback-classic:使用的是logback,因为logback本身…

tp5(finish)

tp5 1.tp5.0开始 结构 www WEB部署目录(或者子目录) ├─application 应用目录 │ ├─common 公共模块目录(可以更改) │ ├─module_name 模块目录(Home:前台模块;Admin:后台模块) │ │ ├─config.php 模块配置文件 │ │…

thinkphp3.2.x漏洞分析

tp3.2.3 1.开始 入口文件 就是www/index.php,index.php包含了框架的入口文件,所以访问后可以直接加载thinkphp框架 配置文件 thinkphp的配置文件在www/ThinkPHP/Conf/convention.php url大小写 url默认是大小写敏感的,也可以通过修改convertion.php,达到url不区分大小写的目…

git基本知识

文件在本地仓库的状态常用命令:git status 查询状态git add 添加到暂存区,可以使用通配符*git commit desc:1 提交到本地仓库,只能提交暂存区的文件,该次提交的描述git commit -a -m desc:2 表示直接提交,不用放到暂存区git log 查看提交记录git reset --soft 123456 传入…

揭秘Python:对象类型打印

哈喽,大家好,我是木头左!一、Python数据类型简介 在Python的世界中,了解你正在处理的数据类型是至关重要的。Python提供了多种内置数据类型,包括数字(整数和浮点数)、字符串、列表、元组、字典等。这些数据类型决定了你可以对数据执行哪些操作,以及如何高效地存储和处理…