Linux 2-Vim使用

1 什么是vi及vim?

vi是文本编辑器;vim是程序开发工具。

2 vi的几种模式

1 一般模式:vi <fileName> 就进入命令模式,可以删除或者复制粘贴

2 编辑模式:修改内容

3 命令行模式:最下面一行,保存、替换、退出等。

3 vi3种模式间切换

1 一般模式->编辑模式

1 插入

Aa或Ii或Aa

2 替换:

Rr

2 编辑模式->一般模式:ESC

3 一般模式->命令行模式:支持3种,可以将光标移到最下面一行。

:

/

?

4 命令行模式->一般模式:ESC

5 注意:编辑模式和命令行模式不能互相切换。

4 一般模式常用快捷键 (光标移动、复制粘贴、查找替换)

1 光标移动

1  单个光标移动

需求快捷键
向左移动一个字符向左箭头或h
向下移动一个字符

向下箭头或j

向下30行:30j或者30向下箭头

向上移动一个字符向上箭头或k
向右移动一个字符

向右箭头或l

向右20个:20l或者20向右箭头或者20<space>

2 整个屏幕移动

需求快捷键
向下移动一个屏幕Ctrl+f或PgDn
向上移动一个屏幕

Ctrl+b或PgUp

向下移动半个屏幕Ctrl+d
向上移动半个屏幕

Ctrl+u

3 常见的本行最左最右移动

需求快捷键
移动到本行最最左边数字0
移动到本行最左边非空字符Ctrl+6
移动到本行最右边$
移动到本行下一个单词的开头

w

移动到第8个单词的开头8w

移动到本行下一个单词的结尾e
移动到本行上一个单词的开头b
我的需求:移动到第5行,把domain里的301a改成301b

1 5G:跳转到第5行

2 $:跳转到第5行的最后

3 4b:往左走4个单词的头

4 常见的上下移动

移动到当前屏幕的第一行的第一个字符

H

移动到当前屏幕的中间行的第一个字符M
移动到当前屏幕的最后一行的第一个字符L
移动到文件的最后一行G
移动到文件的第一行gg
移动到文件的第20行20G
基于当前位置,向下移动10行10<enter>

2 查找及替换

需求快捷键
向下找某个字符,比如throughput/throughput
重复查找这个字符,还是继续向下查找n
重复查找这个字符,朝上找N
向上找某个字符,比如domain?domain
重复查找这个字符,还是继续向上查找n

重复查找这个字符,但是相反方向,比如之间?是想上找,现在N就是相反的,朝下找

N
从100到200行间,找到test,替换为TEST

:n1,n2s/word1/word2/g

:100,200s/test/TEST/g

从第一行对最后一行,找到test,替换为TEST:1,$s/word1/word2/g
从第一行对最后一行,找到test,替换为TEST且替换前需要确认:1,$s/word1/word2/gc

3 删除与复制粘贴

需求        快捷键
向前删除一个字符Backspace或者X
向后删除一个字符

Delete或者x

向后删除10个字符:10x

剪切光标所在的整行

dd

剪切光标所在的向下10行:10dd

剪切光标所在行到第一行d1G
剪切光标所在行到最后一行

dG

剪切本行:[光标处,本行最后一个字符]d$
剪切本行:[本行第一个字符,光标处]d0
复制光标所在行        

yy

向下复制10行:10yy

复制光标所在行到第一行y1G
复制光标所在行到最后一行

yG

复制本行:[光标处,本行最后一个字符]y$
复制本行:[本行第一个字符,光标处]y0
将复制内容粘贴在光标下一行p
将复制内容粘贴在光标上一行P
恢复前一个操作u
重复前一个操作.

4 操作一行中的一部分数据

需求快捷键

user="xiaomingxiaohua@email"

想把“”中的内容快速删掉

delete inside: di

删除符号内的信息

光标在""或者内部,按di"

就可以把双引号中间的内容清理掉

test={aaaaaa}按di{  或者di}
test='11111111'         按di'

<domain>localhost.domain.list</domain>

想把中间这段快速删掉

光标在local中的l上,按

dt<

就会删掉从当前字符开始,<之前的所有字符

5 一般模式切换到编辑模式

需求      快捷键
插入:到当前字段的前面i
插入:从所在行的第一个非空字符插入I
插入:到当前字段的后面a
插入从光标行的最后一个字符插入A
插入:在光标行的下一行插入一个新行o
插入:在光标行的上一行插入一个新行O
替换:替换光标所在的字符一次

r

先输入r,马上输入要替换的另一个字符

替换:一直替换光标处的字符,直到按下ESC

按下R 代表开始替换

然后输入要替换的信息,比如把18000替换成32000

最后按ESC退出替换模式

ESC退出编辑模式,回到一般模式

6 一般模式切换到命令行模式 : /  ?

需求操作
将编辑的数据写入硬盘:w
退出vi:q
强制退出不保存:q!
保存后退出:wq
强制保存后退出:wq!
把修改的东西另存为新文件:w 新文件名
把当前文件的n1-n2行,保存到新文件:n1,n2 w 新文件名
显示行号:set nu
不显示行号:set nonu

7 其他常用

1 vi XX 不小心窗口关闭,下次每次vi这个文件都会提醒要不要保留?

答:

ls -al

rm -f XX.swap

把这个文件删除,下次再vi进来就不会报错了。


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

追觅科技25届校招校招24年社招科技北森题库商业推理综合测评答题攻略、通关技巧

一、追觅科技这家公司怎么样&#xff1f; 追觅科技是一家在智能清洁家电领域表现出色的企业。 二、追觅科技待遇怎么样 追觅科技的待遇在业内具有竞争力&#xff0c;具体信息如下&#xff1a; 1. **薪酬结构**&#xff1a;根据对外经济贸易大学招生就业处发布的2023届校园招…

一、安装VMware16

本篇来源&#xff1a;山海同行 本篇地址&#xff1a;https://shanhaigo.cn/courseDetail/1805875642621952000 本篇资源&#xff1a;以整理到-山海同行 一、VMware虚拟机下载 1. 官网下载 1. 打开官网 打开VMware官网地址&#xff1a;https://www.vmware.com/ 2. 选择下载产…

ctfshow sqli-labs web532--web540

web532 时间盲注 admin")闭合 import requestsurl"https://8b83d32c-8348-4393-ad72-08d00f7f6cd0.challenge.ctf.show/" flag"" i0 while True:i 1low 32high 127while low < high:mid (lowhigh)//2#payloadf"if((ascii(substr((databas…

大语言模型(LLMs)全面学习指南,初学者入门,一看就懂!

大语言模型&#xff08;LLMs&#xff09;作为人工智能&#xff08;AI&#xff09;领域的一项突破性发展&#xff0c;已经改变了自然语言处理&#xff08;NLP&#xff09;和机器学习&#xff08;ML&#xff09;应用的面貌。这些模型&#xff0c;包括OpenAI的GPT-4o和Google的gem…

kafka(一)原理(2)组件

一、broker 1、介绍 kafka服务器的官方名字&#xff0c;一个集群由多个broker组成&#xff0c;一个broker可以容纳多个topic。 2、工作流程 3、重要参数 参数名称 描述 replica.lag.time.max.ms ISR中&#xff0c;如果Follower长时间未向Leader发送通信请求或同步数据&a…

计算机图形学笔记----矩阵

矩阵和标量的运算 ,则 矩阵与矩阵相乘 的矩阵A&#xff0c;的矩阵B。两矩阵&#xff0c;结果为的矩阵&#xff0c;第一个矩阵的列数必须和第二个矩阵的行数相同&#xff0c;否则不能相乘 &#xff0c;中的每个元素等于A的第i行所对应的矢量和B的第j列所对应的矢量进行矢量点…

【滚动哈希】2156. 查找给定哈希值的子串

本文涉及知识点 滚动哈希 LeetCode2156. 查找给定哈希值的子串 给定整数 p 和 m &#xff0c;一个长度为 k 且下标从 0 开始的字符串 s 的哈希值按照如下函数计算&#xff1a; hash(s, p, m) (val(s[0]) * p0 val(s[1]) * p1 … val(s[k-1]) * pk-1) mod m. 其中 val(s[…

015、HBase分布式数据库与传统数据库的深度对比

目录 HBase分布式数据库与传统数据库的深度对比 1. 数据模型 1.1 传统关系型数据库 1.2 HBase 2. 扩展性 2.1 传统关系型数据库 2.2 HBase 3. 查询语言 3.1 传统关系型数据库 3.2 HBase 4. 事务支持 4.1 传统关系型数据库 4.2 HBase 5. 数据一致性 5.1 传统关系型…

《C语言》编译和链接

文章目录 一、翻译环境1、预处理2、编译3、汇编4、链接 二、运行环境 一、翻译环境 在使用编译器编写代码时&#xff0c;编写的代码是高级语言&#xff0c;机器无法直接识别和运行&#xff0c;在编译器内部会翻译成机器可执行的机器语言。 编译环境由编译和链接两大过程组成。 …

深度之眼(二十九)——神经网络基础知识(四)-循环神经网络

文章目录 一、 学习目标二、序列数据三、语言模型四、循环神经网络4.1 RNN的反向传播 五、门控循环单元-GNU5.1 候选隐藏状态 六、长短期记忆网络-LSTM七、回顾 一、 学习目标 二、序列数据 序列数据是常见的数据类型&#xff0c;前后数据通常具有关联性 三、语言模型 综合…

PyQt问题汇总(持续更新)

目录 1.抛出异常后QAppliaction自动闪退 2.Unbuntu共享文件夹自动挂载 1.抛出异常后QAppliaction自动闪退 开发阶段&#xff0c;PyQt5 QAppliaction会在遇到未捕获的异常时立即退出&#xff0c;它能够快速发现并报告错误&#xff0c;我在调用一些密码算法库的时候&#xff0…

传媒行业指哪些?需要过等保吗?

传媒&#xff0c;一个人人都接触的行业。相信大家都听过传媒&#xff0c;但具体传媒行业是指什么&#xff0c;包括哪些&#xff0c;详细很多人都不了解。这不一些人在问&#xff0c;传媒行业指哪些&#xff1f;需要过等保吗&#xff1f;这里跟我们小编一起来讨论讨论吧&#xf…

SpringMVC 域对象共享数据

文章目录 1、使用ServletAPI向request域对象共享数据2、使用ModelAndView向request域对象共享数据3、使用Model向request域对象共享数据4、使用map向request域对象共享数据5、使用ModelMap向request域对象共享数据6、Model、ModelMap、Map的关系7、向session域共享数据8、向app…

Pikachu 不安全的文件下载(Unsafe file download)概述 附漏洞利用案例

目录 获取下载链接 修改链接 重新构造链接 拓展 不安全的文件下载概述 文件下载功能在很多web系统上都会出现&#xff0c;一般我们当点击下载链接&#xff0c;便会向后台发送一个下载请求&#xff0c;一般这个请求会包含一个需要下载的文件名称&#xff0c;后台在收到请求…

PyCharm 2024.1 版本更新亮点:智能编程,高效协作

目录 1. 前言2. 更新内容2.1 智能编码体验2.1.1 Hugging Face 文档预览2.1.2 全行代码补全 2.2 提升编辑器体验2.2.1 粘性行功能2.2.2 编辑器内代码审查 2.3 全新终端体验&#xff08;测试版&#xff09;2.3.1 新终端 Beta 2.4 智能助手&#xff08;特定版本和专业用户&#xf…

Springboot学习中错误与解决方法合集

1. 报错CONDITIONS EVALUATION REPORT &#xff08;1&#xff09;现象 类似&#xff1a; 出现问题原因&#xff1a;日志文件过多 &#xff08;2&#xff09; 解决方法&#xff1a; 在application.yml配置文件中增加 logging:level:org.springframework.boot.autoconfigure…

grpc编译

1、cmake下载 Download CMakehttps://cmake.org/download/cmake老版本下载 Index of /fileshttps://cmake.org/files/2、gprc源码下载&#xff0c;发现CMAKE报错 3、使用git下载 1&#xff09;通过git打开一个目录&#xff1a;如下grpc将放在D盘src目录下 cd d: cd src2&am…

每天五分钟深度学习框架pytorch:tensor向量之间常用的运算操作

本文重点 在数学中经常有加减乘除运算,在tensor中也不例外,也有类似的运算,本节课程我们将学习tensor中的运算 常见运算 加法+或者add import torch import numpy as np a=torch.rand(16,3,28,28) b=torch.rand(1,3,28,28) print(a+b) import torch import numpy as np a…

前端Web开发HTML5+CSS3+移动web视频教程 Day3 CSS 第1天

P29 - P43 从此开始进入 CSS 的学习。前面都是 HTML 的学习。 CSS 的作用&#xff1a;美化。 HTML 只是规定了网页内容有哪些&#xff0c;在网页中显示的位置默认是从上到下显示&#xff0c;还带有默认效果&#xff0c;比如超链接有颜色有下划线&#xff0c;无序列表有小圆点…

CocosCreator构建IOS教程

CocosCreator构建IOS教程 添加include: Header Search Paths:拖拽include过来 添加SoundEngine: Header Search Paths: 把SoundEngine POSIX Common 三个文件夹拖拽到里面去