vi | vim基本使用

news2024/11/23 0:43:48

vim三模式:① 输入模式    ②命令模式      ③末行模式(编辑模式)

vim四模式:① 输入模式    ②命令模式      ③末行模式(编辑模式)  ④V模式

一、命令模式进入输入模式方法

二、命令模式基础操作:

1.移动光标

1)光标移动:h   j   k  l  (备用方向键)

                       左 下 上 

2)移动到文件   gg

      移动到文件    G   shift+g

3)  移动到行    ^  

     移动到行    $

4)  移动到指定行 :n  移动到第n行

2.删除(剪切) 复制

1)删除单个字母       

 x    

多个nx    (一般不用)

2)删除单行(剪切) 

dd   

多行ndd      :n1, n2d指定范围行   

3)粘贴到光标      

小p              

复制单行       yy

4)粘贴到光标       

大P    shift+p     

复制n行        nyy

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

dG d$

   从光标所在行删除到文件

d^

3.撤销  u    U一次性   反撤销ctrl+r

4.替换  r   替换光标所在单个字符

       R   从光标所在开始替换,esc结束

       “r”键替换单一字符,实际使用时,比进入输入模式删除 x 再修改

三、末行模式(编辑模式)基础操作:

1.保存退出方式

:w保存不退出

先输入:w (新文件名)另存为新文件 再:wq 保存退出

:q     不退出·

:wq   保存退出

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

:wq  强制保存退出, 对文件没有写权限的时候,强制写入数

2.常用显示行号set nu

set nu手工建立vim配置文件  放在 .vimrc 可多文件次使用

vim 支持更多的设置参数,:set all”进行查看

补充:Windows 下回车符在 Linux 中是用“^M$”符号显示,而不是$”符。这样会导致 Windows下编辑的程序脚本,无法在 Linux 中执行。这时可以通过命令“dos2unix”,把 Windows 格式转为 Linux格式,当然反过来“unix2dos”命令就是把 Linux 格式转为 Windows 格式。这两个命令默认没有安装,需要手工安装才能使用。

3.查找 /查找内容    从光标所在行向下查找    按n 是下一个

     \ 查找内容                 上

取消高亮  :noh   或者  /  输入一个搜不到的

4.替换

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

:%s/old/new/g      替换整个文件的 old 为 new(建议手工替换)

:1,10s/^/#/g       替换 1 10 行打备注

:1,10s/^#//g        取消行首注释

而在 C 语言,PHP 语言等大多数语言中,是使用“//”开头作为注释的,我们当然用 vim 来写这些程序语言脚本,批量//”注释 :1,10s/^/\/\//g 1 到 10行,                                        

  取消 1 到 10 行行首的//      :1,10s/^\/\///g

5.  :ab 源字符  替换字符

需频繁输入某个长字符串(比如邮箱),使用字符串替换, 放在 .vimrc 可多文件使用

:ab mymail 45731230@163.com 当碰到“mymail”时,转变为邮箱

当下次输入源字符 敲空格 就变换成替换字符  

6.  导入其他文件        :r 文件名 把文件内容导入所在光标位置

   不退出查看命令      :!命令 在 vim 中执行系统命令  :r date!导入时间(常用)

    多文件打开(参考另外文件)

​​​​​​​

四、vim多文件小技巧:

vim -o  文件文件2    上下分屏

通过先按“ctrl+w”,再按“上下箭头”的方式在两个文件之间切换。

vim -O  文件文件2    左右分屏

通过先按“ctrl+w”,再按“左右箭头”的方式在两个文件之间切换。

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

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

相关文章

Hybrid接口的基础配置

Hybrid模式是交换机端口的一种配置模式,它允许端口同时携带多个VLAN(虚拟局域网)的流量。Hybrid端口可以指定哪些VLAN的数据帧被打上标签(tagged)和哪些VLAN的数据帧在发送时去除标签(untagged)…

828华为云征文|部署知识库问答系统 MaxKB

828华为云征文|部署知识库问答系统 MaxKB 一、Flexus云服务器X实例介绍1.1 云服务器介绍1.2 核心竞争力1.3 计费模式 二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置 三、部署 MaxKB3.1 MaxKB 介绍3.2 Docker 环境搭建3.3 MaxKB 部署3.4 Max…

Leetcode—322. 零钱兑换【中等】(memset(dp,0x3f, sizeof(dp))

2024每日刷题&#xff08;159&#xff09; Leetcode—322. 零钱兑换 算法思想 dp实现代码 class Solution { public:int coinChange(vector<int>& coins, int amount) {int m coins.size();int n amount;int dp[m 1][n 1];memset(dp, 0x3f, sizeof(dp));dp[0][…

基于springboot+vue+uniapp的驾校报名小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…

使用随机森林模型在digits数据集上执行分类任务

程序功能 使用随机森林模型对digits数据集进行手写数字分类任务。具体步骤如下&#xff1a; 加载数据&#xff1a;从digits数据集中获取手写数字图片的特征和对应的标签。 划分数据&#xff1a;将数据集分为训练集和测试集&#xff0c;测试集占30%。 训练模型&#xff1a;使用…

鸿蒙开发笔记_电商严选02_登录页面跳转到我的页面、并传值

鸿蒙开发笔记整理,方便以后查阅! 由于上班较忙,只能抽空闲暇时间,快速整理更新中。。。 登录页面跳转到我的页面、并传值 效果图 我的设置页面 /*** 我的设置页面*/ import CommonConstants from ./CommonConstants import ItemData from ./ItemData import DataModel fr…

某个图形商标驳回,不建议做驳回复审!

近日一四川的网友联系到普推知产商标老杨&#xff0c;咨询看驳回的商标可以做驳回复审不&#xff0c;是个纯图形商标&#xff0c;这个一看是一标多类&#xff0c;就是在一个商标名称是申请两个类别&#xff0c;42类部分通过&#xff0c;35类全部驳回。 35类和42类引用的近似商标…

07_Python数据类型_集合

Python的基础数据类型 数值类型&#xff1a;整数、浮点数、复数、布尔字符串容器类型&#xff1a;列表、元祖、字典、集合 集合 集合&#xff08;set&#xff09;是Python中一个非常强大的数据类型&#xff0c;它存储的是一组无序且不重复的元素&#xff0c;集合中的元素必须…

SpringBoot 消息队列RabbitMQ死信交换机

介绍 生产者发送消息时指定一个时间&#xff0c;消费者不会立刻收到消息&#xff0c;而是在指定时间之后才收到消息。 死信交换机 当一个队列中的消息满足下列情况之一时&#xff0c;就会成为死信(dead letter) 消费者使用basic.reject或 basic.nack声明消费失败&#xff0…

LidarView之定制版本

介绍 LidarView软件定制开发需要关注几点&#xff1a;1.应用程序名称&#xff1b;2.程序logo&#xff1b;3.Application版本号&#xff1b;4.安装包版本号 应用程序名称 在项目的顶层cmake里边可以指定程序名称 project(LidarView)需要指定跟Superbuild一样的编译类型 set…

英语学习之fruit

目录 不熟悉熟悉 不熟悉 breadfruit 面包果 date 椰枣 raspberry 覆盆子 blackberry 黑莓 blackcurrant 黑加仑&#xff0c;黑醋栗 plum 李子 熟悉 apple 苹果&#x1f34e; coconut 椰子&#x1f965; banana 香蕉&#x1f34c; tomato 西红柿 pear 梨子 watermelon 西瓜…

30款免费好用的工具,打工人必备!

免费工具软件&#xff0c;办公人必备&#xff0c;提升工作效率 启动盘制作&#xff1a;Ventoype工具&#xff1a;微PEwindows/office jh工具&#xff1a;HEU KMS Activator桌面资料转移工具&#xff1a;个人资料专业工具右键菜单管理&#xff1a;ContextMenuManager驱动安装&a…

【面试八股总结】GMP模型

GMP概念 G&#xff08;Goroutine&#xff09;&#xff1a;代表Go协程&#xff0c;是参与调度与执行的最小单位。 存储Goroutine执行栈信息、状态、以及任务函数等。G的数量无限制&#xff0c;理论上只受内存的影响。Goroutines 是并发执行的基本单位&#xff0c;相比于传统的线…

虽难必学系列:Netty

Netty 是一个基于 Java 的高性能、异步事件驱动的网络应用框架&#xff0c;广泛用于构建各类网络应用&#xff0c;尤其是在高并发、低延迟场景下表现出色。作为一个开源项目&#xff0c;Netty 提供了丰富的功能&#xff0c;使得开发者可以轻松构建协议服务器和客户端应用程序。…

Nginx从入门到入土(一):DNS域名解析

前言 hostName&#xff0c;在Linux系统上是一个命令&#xff0c;用来显示和设置系统的主机名称。其实它就是域名。 常见的域名有我们熟悉的taobao.com;baidu.com等等。 我们在地址栏输入baidu.com 进入的就是此页面。我们看到地址栏里显示的是www.baidu.com 。 注意&#xf…

MySQL篇(运算符)(持续更新迭代)

目录 一、简介 二、运算符使用 1. 算术运算符 1.1. 加法运算符 1.2. 减法运算符 1.3. 乘法与除法运算符 1.4. 求模&#xff08;求余&#xff09;运算符 2. 比较运算符 2.1. 等号运算符 2.2. 安全等于运算符 2.3. 不等于运算符 2.4. 空运算符 2.5. 非空运算符 2.6.…

Java数据存储结构——平衡二叉树

文章目录 22.1.3 平衡二叉树22.1.3.1 LL22.1.3.2 LR22.1.3.3 RR22.1.3.4 RL 22.1.3 平衡二叉树 平衡二叉树的特点&#xff1a; 二叉树左右两个子树的高度差不超过1任意节点的左右两个子树都是一颗平衡二叉树 在原来的平衡二叉树中&#xff0c;新增数据会破坏平衡性&#xff…

Linux per memcg lru lock

内核关于per memcg lru lock的重要提交&#xff1a; f9b1038ebccad354256cf84749cbc321b5347497 6168d0da2b479ce25a4647de194045de1bdd1f1d 背景 自电子计算机诞生以来&#xff0c;内存性能一直是行业关心的重点。内存也随着摩尔定律&#xff0c;在大小和速度上一直增长。云…

Linux系统上搭建Vulhub靶场

Linux系统上搭建Vulhub靶场 ​vulhub​ 是一个开源的漏洞靶场&#xff0c;它提供了各种易受攻击的服务和应用程序&#xff0c;供安全研究人员和学习者测试和练习。要在 Linux 系统上安装和运行 vulhub​&#xff0c;可以按照以下步骤进行&#xff1a; 1. 安装 Docker 和 Docke…

数据结构(八)——Java实现七大排序

一、插入排序 1.直接插入排序 public static void insertSort(int []arr){for (int i 0; i < arr.length; i) {int j i-1;int tmp arr[i];for (; j >0 ; j--) {if(arr[j] > tmp){arr[j1] arr[j];}else{break;}}arr[j1] tmp;}}直接插入排序特性总结 1. 元素集合越…