vim编辑器

1.vi编辑器介绍

vim是全屏幕纯屏幕纯文本编辑器, 是vi编辑器的增强版. 可以利用别名让输入vi命令时, 实际上执行vim编辑器, 例如:

alias vi = "vim"   

#定义别名

这样定义的别名是临时生效, 如果需要永久生效, 请放入环境变量配置文件(~/.bashrc)

2.vim基本的使用

2.1vim的工作模式

vim工作在三种模式之下:

命令模式: 主要使用快捷键的模式, 是学习的重点, 命令模式想要进入输入模式, 可以使用以下方法:

命令作用
a在光标所在字符后插入, 可以理解为追加
A在光标所在行尾插入
i在光标所在字符前插入
I在光标所在行行首插入
o在光标下插入新行
O在光标上插入新行

输入模式: 主要用于文本编辑, 和记事本类似, 输入数据就好

末行模式(编辑模式):

:w    保存不退出

        :w 新文件名  把文件另存为新文件

:q     不保存退出

:wq  保存退出

:!      强制

        :q!      强制不保存退出, 用于修改文件后, 不保存数据退出

        :wq!   强制保存退出, 当文件的所有者或者root用户, 对文件没有写权限的时候, 强制写入数据使用

2.2命令模式操作

2.2.1移动光标

1)上下左右移动光标

方法一: 上下左右方向键

方法二: h, j, k, l(左, 下, 上, 右)

2)把光标移动到文件头或尾

gg: 移动到文件头

G: 移动到文件尾

3)移动到行首或行尾

^: 移动到行首

$: 移动到行尾

4)移动到指定行

:n 数字: 移动到第几行

2.2.2删除或剪切

1)删除字母

x: 删除单个字母

nx: 删除那个字母

n是数字, 如果打算从光标位置删除连续的10个字母, 可以使用"10x", 删除字母并不符合使用的习惯, 更多的是在编辑模式下, 使用Backspace删除字母

2)删除整行或剪切

dd: 删除单行

ndd: 删除多行

:n1, n2d      删除指定范围的行

删除整行或者多行, 这是我们常见的删除方式, 这里的dd快捷键既是删除, 也是剪切. 删除内容放入剪切板, 如果不粘贴就是删除, 如果是粘贴就是剪切. 粘贴的方法如下:

p(小写): 粘贴到光标后

P(大写): 粘贴到光标前

3)从光标所在行删除到文件尾

dG: 从光标所在行删除到文件尾

"d"是删除行, "G"是文件尾, 连起来就是从光标所在行删除到文件尾. 

2.2.3复制

yy: 复制单行

nyy: 复制多行

复制之后的粘贴, 依然可以使用p(小写)键或P(大写)键

2.2.4撤销

u: 撤销

ctrl + r: 反撤销

2.2.5替换

r: 替换光标所在处的字符

R: 从贯标所在处开始替换字符, 按ESC结束

r键替换单一字符, 不用进入输入模式, 实际使用时, 比进入输入模式删除后在修改, 要方便

2.2.6vim配置文件

这次末行模式参数设置, 多数需要在vim中才能生效

设置参数含义

:set nu

:set nonu

显示与取消行号

:syntax on

:syntax off

是否依照语法显示相关的颜色帮助. 在Vim中修改相关的配置文件或Shell脚本文件时, 默认会显示相应的颜色, 用来帮助排错. 如果觉得颜色产生了干扰, 可以取消此设置

:set hlsearch

:set nohlsearch

设置是否将查找的字符高亮显示. 默认时set hlsearch高亮显示

:set ruler

:set noruler

设置是否显示右下角的状态栏. 默认是set ruler显示

:set showmode

:set noshowmode

设置是否在左下角小时如"-INSERT-"之类的状态栏. 默认是set showmode

:set list

:set nolist

设置是否显示隐藏字符(Tab键使用"^I"表示, 回车符使用"$"表示). 默认是nolist显示. 如果要使用set list显示隐藏字符, 类似"cat -A 文件名"

vim支持更多的设置参数, 可以通过":set all"进行查看

大家会发现, 这些设置参数都只是临时生效, 一点关闭文件再打开, 又需要重新输入. 如果想要永久生效, 需要手工建立vim的配置文件"~/.vimrc", 把你需要的参数写入配置文件中就可以永久生效了

补充: Windows下回车符在Linux中是用"^M$"符号显示, 而不是"$"符. 这回导致Windows下编辑的程序脚本, 无法在Linux中执行. 这时可以通过命令"dos2unix", 把Windows格式转化尾Linux格式, 当然反过来"unix2dos"命令就是把Linux格式转化为Windows格式. 这两个命令都需要手工安装

2.2.7查找

/查找内容: 从光标所在行向下查找

?查找内容: 从光标所在行向上搜索

n: 下一个

N: 上一个

2.2.8替换

:1, 10s/old/new/g          替换1到10行所有old为new

:%s/old/new/g               替换整个文件的old为new

3.vim使用技巧

3.1在vim中导入其他文件内容或命令

3.1.1导入其他文件内容

:r 文件名          把文件内容导入光标位置

可以把其他文件的内容导入光标所在位置

3.1.2在vim中执行系统命令

:!命令            在vim中执行系统命令

这里只是在vim中执行系统命令, 但并不把系统命令的结果写入文件中. 主要用于文件编辑中, 查看系统信息

3.1.3导入命令结果

:r !命令        在vim中执行系统命令, 并把命令结果导入光标所在行

在vim中执行系统命令, 并把命令结果导入光标所在行

3.2设定快捷键

:map 快捷键 快捷键执行的命令                   自定义快捷键

vim允许自定义快捷键, 常用的自定义快捷键如下: 

:map ^P I#<ESC>        按"ctrl+p"时, 在行首加入注释

:map ^B ^x                   按住"ctrl+b", 删除行首第一个字母(删除注释)

注意: ^P快捷键不能手动输入, 需要执行ctrl + V + P来定义, 或者ctrl + V, 然后ctrl + P, ^B快捷键同理

3.3字符替换

:ab 源字符 替换为字符                      字符替换

在vim编辑器中, 有时候需要频繁输入某一个长字符串(比如邮箱), 这时使用字符替换, 能增加输入效率, 例如:

:ab mymail songzhenxing@582.com

当需要输入邮箱时, 我们输入mymail + 空格, 就可以替换成邮箱

注意: "源自符"不应设置的太短, 这样可能影响正常使用

3.4多文件打开

在vim中可以同时打开两个文件, 只要执行如下命令:

vim -o 文件名1 文件名2

vim -O 文件名1 文件名2

# -o(小写): 上下分屏打开两个文件

# -O(大写): 会左右分屏打开两个文件

ctrl+w, 然后上下箭头, 或者左右箭头进行不同文件的切换

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

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

相关文章

如何压缩照片?分享4种全面的方法!

随着智能手机的普及&#xff0c;我们每个人都成为了摄影爱好者。然而&#xff0c;随着拍摄的照片越来越多&#xff0c;手机内存也逐渐变得捉襟见肘。那么&#xff0c;如何有效地压缩照片&#xff0c;释放手机内存呢&#xff1f;今天&#xff0c;我们就来为你揭秘那些可以轻松压…

前端浏览器滚动条炫酷美化

一、文章引导 #mermaid-svg-2qRndEP8CFzlUhap {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-2qRndEP8CFzlUhap .error-icon{fill:#552222;}#mermaid-svg-2qRndEP8CFzlUhap .error-text{fill:#552222;stroke:#55222…

多模态+SNN个人学习历程和心得

祖传开头 这次想写一个一直深藏心中的研究方向&#xff0c;那就是多模态方向。其实当初在实验室那会儿&#xff0c;最先接触的就是多模态的工作&#xff0c;因此这是我科研之路的起点。只不过&#xff0c;后来经历了一些波折&#xff0c;导致个人没有往这个方向深挖&#xff0…

PayPal账号被关联!跨境卖家如何自救?关于PayPal防关联你不得不知道的事!

很多跨境卖家的支付平台都会选择 PayPal&#xff0c;但是 PayPal 账号在使用过程中也经常会遇见关联&#xff0c;风控等问题&#xff0c;这时候为了保护我们的 PayPal 账号安全&#xff0c;防关联就很重要。今天龙哥就分享一些关于 PayPal 防关联的内容&#xff0c;希望能够帮助…

重新认识canvas,掌握必要的联结密码

查看专栏目录 canvas示例教程100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…

C++ continue语句

作用&#xff1a;在循环语句中&#xff0c;跳过本次循环中余下尚未执行的语句&#xff0c;继续执行下一次循环 与break的区别在于&#xff0c;如果把上述continue换位break&#xff0c;则该程序执行到break则会直接退出for循环&#xff0c;不再执行后面的代码和以后的循环。 实…

Web实战丨基于django+html+css+js的电子商务网站

文章目录 写在前面实验目标需求分析实验内容安装依赖库1.登陆界面2.注册界面3.电子商城界面4.其他界面 运行结果写在后面 写在前面 本期内容&#xff1a;基于DjangoHTMLCSSJS的电子商务网站 实验环境&#xff1a; vscode或pycharmpython(3.11.4)django 代码下载地址&#x…

【Kafka-3.x-教程】-【七】Kafka 生产调优、Kafka 压力测试

【Kafka-3.x-教程】专栏&#xff1a; 【Kafka-3.x-教程】-【一】Kafka 概述、Kafka 快速入门 【Kafka-3.x-教程】-【二】Kafka-生产者-Producer 【Kafka-3.x-教程】-【三】Kafka-Broker、Kafka-Kraft 【Kafka-3.x-教程】-【四】Kafka-消费者-Consumer 【Kafka-3.x-教程】-【五…

观成科技-加密C2框架EvilOSX流量分析

工具简介 EvilOSX是一款开源的&#xff0c;由python编写专门为macOS系统设计的C2工具&#xff0c;该工具可以利用自身释放的木马来实现一系列集成功能&#xff0c;如键盘记录、文件捕获、浏览器历史记录爬取、截屏等。EvilOSX主要使用HTTP协议进行通信&#xff0c;通信内容为特…

蓝凌EIS pdf.aspx 任意文件读取漏洞

漏洞描述&#xff1a; 蓝凌EIS智慧协同平台是一个简单、高效的工作方式专为成长型企业打造的沟通、协同、社交的移动办公平台&#xff0c;覆盖OA、沟通、客户、人事、知识等管理需求&#xff0c;集合了非常丰富的模块&#xff0c;满足组织企业在知识、项目管理系统建设等需求的…

jmeter循环控制器

1.循环控制器 简单粗暴 写几次 循环几次 经常结合自定义变量使用 2.foreach控制器 搭配 变量一起使用的循环 一般变量的值是一个集合或者 是2个及2个以上的内容

[中阶]1月29-2月2晚8点-软件需求设计方法学全程实例剖析

建模方法学包含以下技能&#xff1a; A-业务建模——定位需要改进的目标组织&#xff08;人群或机构&#xff09;以及该组织接下来最需要改进的问题。 B-需求——描述为了改进组织的问题&#xff0c;所引入的信息系统必须具有的表现。 C-分析——提炼为了满足功能需求&#…

《ORANGE’S:一个操作系统的实现》读书笔记(二十七)文件系统(二)

上一篇文章我们记录了如何操作硬盘&#xff0c;并且编写了简单的硬盘驱动程序用于获取一些硬盘的参数。这篇文章就在上一篇文章的基础上记录文件系统&#xff0c;完善硬盘驱动程序。 文件系统 现在我们该仔细考虑如何构建一个文件系统了。这并不是我们第一次接触文件系统&…

python 工作目录 与 脚本所在目录不一致

工作目录&#xff1a;执行脚本的地方 我以为工作目录会是当前执行脚本的目录位置&#xff0c;但其实不是&#xff0c;例如&#xff1a; 图中红色文件为我执行的脚本文件&#xff0c;但是实际的工作目录是PYTHON LEARNING 可以用如下代码查询当前工作目录&#xff1a; import os…

dubbo的springboot集成

1.什么是dubbo&#xff1f; Apache Dubbo 是一款 RPC 服务开发框架&#xff0c;用于解决微服务架构下的服务治理与通信问题&#xff0c;官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力&#xff0c; 利用 Dubbo …

【三】把Python Tk GUI打包exe可执行程序,移植到其他机器可用

背景 这是一个系列文章。上一篇【【二】为Python Tk GUI窗口添加一些组件和绑定一些组件事件-CSDN博客】 使用python脚本写一个小工具。因为命令行运行的使用会有dos窗口&#xff0c;交互也不是很方便&#xff0c;开发环境运行也不方便分享给别人用&#xff0c;所以想到…

ubantu中的docker安装

1.Ubuntu Docker 安装 | 菜鸟教程 (runoob.com) 我就是看这个教程进行操作的 2.执行下面两步&#xff0c;就算是安装完成了 3.启动&#xff0c;并检查是否安装成功&#xff1a; 4.安装之后&#xff0c;怎么用&#xff0c;那就是自己随便探索咯&#xff0c;可以看博客&#xf…

3D Web可视化开发工具包HOOPS Communicator:提供Web端浏览大型模型新方案!

前言&#xff1a;HOOPS Communicator是Tech Soft 3D旗下的主流产品之一&#xff0c;具有强大的、专用的高性能图形内核&#xff0c;专注于基于Web的高级3D工程应用程序。其由HOOPS Server和HOOPS Web Viewer两大部分组成&#xff0c;提供了HOOPS Convertrer、Data Authoring的模…

【Spring Cloud】Gateway组件的三种使用方式

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《Spring Cloud》。&#x1f3af;&#x1f3af; &am…

游戏版 ChatGPT,要用 AI 角色完善生成工具实现 NPC 自由

微软与 AI 初创公司 Inworld 合作&#xff0c;推出基于 AI 的角色引擎和 Copilot 助理&#xff0c;旨在提升游戏中 NPC 的交互力和生命力&#xff0c;提升游戏体验。Inworld 致力于打造拥有灵魂的 NPC&#xff0c;通过生成式 AI 驱动 NPC 行为&#xff0c;使其动态响应玩家操作…