【从Python基础到深度学习】 8. VIM两种状态

news/2024/11/28 11:36:05/

一、安装

sudo apt install vim

二、VIM两种模式 - 命令状态/编辑状态

1.1 进入/退出VIM

进入VIM

vim

退出vim 

:q <enter>

2.2 根目录下添加配置文件

window下创建vimrc类型文件内容如下:

set nu
set cursorline
set hlsearch
set tabstop=4

使用Winscp 将vimrc文件拖入根目录下(Winscp使用见【从Python基础到深度学习】3. Winscp与Ubuntu使用及配置-CSDN博客)

更改配置文件为隐藏文件

cp vimrc .vimrc

2.3 进入vim后默认为命令模式

2.4 命令模式与编辑模式切换

按 i 键后左下角出现 insert 即进入编辑模式

编辑模式下可对文本正常进行输入

 

按 ESC键回到命令模式 

三、文档保存与退出

结束编辑:
:q
在未修改文档的情况下退出
: q !
放弃文档的修改,强行退出
: w
文档存盘
: wq文档存盘退出其他:
:help命令查看该命令的帮助提示(不常用,当不小心按F1时,通过:q进行退出>
: % ! xxd十六进制模式
: %!xxd -r 返回文本模式中间有一个空格的
如果在编辑过程中不小心按了Ctrl+s, vim 会处于僵死状态,按Ctrl+q可以恢复。
 

四、删除与修改

X 删除光标处的字符
dd 删除光标所在的整行
[n]dd 删除光标所在行以及下面的两行(删除[n]行,[n]表示一个整数)
D 删除光标到行尾的文本,常用语删除注释语句(d$)
yy 复制光标所在的整行
[n]yy 从光标开始往下复制n行,[n]表示一个整数

p 将复制后的文本粘贴到光标处
u 撤销上次操作

先yy后再去p的效果就是复制粘贴的效果
先dd后再去p的效果就是剪切的效果
 

五、光标移动

^光标移动到行首
$光标移动到行尾
Ctr1+d向下翻半页
Ctrl+f向下翻一页
Ctrl+u向上翻半页
Ctrl+b向上翻一页
gg光标定位到文档头
G光标定位到文档尾
H光标定位到当前页首
L光标定位到当前页的最后一行的行首
w光标往后移一个字
b光标往前移一个字
[n]+光标向后移动n行,[n]表示一个整数10+
[n]-光标向前移动n行,[n]表示一个整数10-
[n]G光标定位到第n行行首,[n]表示一个整数20G
:[n]到达第[n]行

六、查找与替换

/[str]
查找字符串str,[str]表示要查找的字符串回车后会加亮显示所有找到的字符串,接着
命令n移动到下一个找到的字符串,命令N(shift + n)移动到上一个找到的字符串。


:s/[src]/ [dst] 

部分替换(只能替换光标之所在的行) /i忽略大小写 /g全部匹配
:3,6s/[src]/[dst]/ig   (3-6行中进行替换)



: %s/[src]/[dst]/g 

全部替换,将文档中所有src的字符串替换为dst字符串

:%s/^ l/g

将文档每一行的行首的空格去掉
 

七、 块操作

v 可视化块选择状态

  • 选中块之后,可以对块进行删除(d),复制(y),剪切(x),粘贴(p)

Ctrl +v 竖向选择模式,主要用于批量注释代码,输入步骤如下:

  1. 首先按ctr1+v,竖选选中要注释的行
  2. 输入Ⅰ(注意是大写的I),然后输入/ /3、再输入esc,就会看到选中的行被注释了。
     

http://www.ppmy.cn/news/1353706.html

相关文章

LabVIEW虚拟测试与分析仪

LabVIEW虚拟测试与分析仪 在现代工程技术领域&#xff0c;虚拟仪器的开发和应用已成为一种趋势。利用LabVIEW软件平台开发的虚拟测试与分析仪器进行展开&#xff0c;实现工程测试和分析中的实际需求。通过结合LabVIEW的强大功能和灵活性&#xff0c;成功实现了一套高效、精确的…

grafana配置钉钉告警模版(一)

1、配置钉钉告警模版 创建钉钉告警模版&#xff0c;然后在创建钉钉告警时调用模版。 定义发送内容具体代码 my_text_alert_list 是模版名称后面再配置钉钉告警时需要调用。 {{/* 定义消息体片段 */}} {{ define "my_text_alert_list" }}{{ range . }}告警名称&…

数字孪生与智慧城市:共筑未来城市的科技基石

一、引言 随着科技的飞速发展&#xff0c;数字孪生与智慧城市已成为未来城市建设的两大关键技术。数字孪生为城市提供了一个虚拟的数字镜像&#xff0c;使我们能全面、深入地了解城市的运行状态。而智慧城市则借助先进的信息通信技术&#xff0c;提升城市的智能化水平&#xf…

面向抽象设计,规划凭证模块软件架构<一>

接着上一篇文章,账薄已经有了,我们开始着手细致入微的具体业务,当然首先想到凭证。基础会计人员都知道,原始凭证是业务的起点。剥离开具体的财务方面的知识和技能,我们纯粹从计算机信息人员的角度去解决我们想要处理的问题。当下我的目的是为了账务处理的方便,但最直接的…

VS-Code-HTML-CSS-JS配置

前端三剑客开发环境配置 查看更多学习笔记&#xff1a;GitHub&#xff1a;LoveEmiliaForever HTML开发环境搭建 Auto Close Tag自动闭合HTML标签Auto Rename Tag自动完成两侧标签同步修改HTML SnippetsHTML代码提示补全open in browser右键打开浏览器运行文件Live Server实时…

嵌入式内核链表list_head,如何管理不同类型节点的实现

在Linux内核中&#xff0c;提供了一个用来创建双向循环链表的结构 list_head。虽然linux内核是用C语言写的&#xff0c;但是list_head的引入&#xff0c;使得内核数据结构也可以拥有面向对象的特性&#xff0c;通过使用操作list_head 的通用接口很容易实现代码的重用&#xff0…

『运维备忘录』之 Sed 命令详解

运维人员不仅要熟悉操作系统、服务器、网络等只是&#xff0c;甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作&#xff0c;持续给大家更新运维工作所需要接触到的知识点&#xff0c;希望大…

springboot198基于springboot的智能家居系统

基于Springboot的智能家居系统 **[摘要]**社会和科技的不断进步带来更便利的生活&#xff0c;计算机技术也越来越平民化。二十一世纪是数据时代&#xff0c;各种信息经过统计分析都可以得到想要的结果&#xff0c;所以也可以更好的为人们工作、生活服务。智能家居是家庭的重要…