vim工作模式

vim

一、vim常用的工作模式

前言

这玩意命令太多,记得几个常用即可
命令模式
命令模式:使用vi(vim)打开某个文件的时候默认进入的模式就是命令模式。
这种模式下最基础的功能就是上下左右键,还可以使用按键组合的方式复制粘贴、删除功能
命令模式下的命令
命令作用
a在光标所在字符后插入
A在光标所在行尾插入
i在光标所在字符前插入
I在光标所在行首插入
o在光标下插入新行
O在光标上插入新行
操作类型操作键功能
光标方向移动上下左右上下左右
字母移动h j k l左 下 上 右
翻页Page Down 或ctrl+f/b向上/向下,翻页
行内快速跳转Home键或^或数字0跳转至行首
End键或$键跳转至行尾
行间跳转IG(是数字1)或者gg跳转到文件的首行
G跳转到文件的末行
数字 n+shift+g(数字加大写G)跳转到文件中的第n行
删除x或Del删除光标处的单个字符
dd删除或剪切从光标处开始的当前行内容
d^删除当前光标之前到行首的所有字符(不包含光标)
d$删除当前光标之前到行尾的所有字符包含光标
复制yy复制当前行整行的内容到剪贴板
nyy复制光标处开始的n行内容
粘贴p将缓冲区中的内容粘贴到光标位置出之后(下一行)
P(大)粘贴到光标位置处之前(上一行)
替换r替换光标所在字符
R从光标处开始替换,按ESC键结束
操作键功能
u按一次取消最近的一次操作,多次重复按u键,回复以进行的多步操作
U用于取消对当前行所做的所有编辑
shift+zz或ZZ保存当前的文件内容并退出vi编辑器
插入/编辑模式
插入\编辑模式:在命令模式下,按i键或者insert键可以进入编辑模式。
在编辑模式下,依然还可以使用上下左右键移动光标,同时还可以输入文字到文件中。
从编辑模式下返回到命令模式下需要按ESC键
末行模式
末行模式:在一般模式中,按 : / ? 就会在当前视图的最后一行出现相应的符号,
就代表进入了相应的末行命令模式下。
功能命令备注
保存文件:w保存所作操作
:w /root/newfile另存为其他文件
退出vim:q未修改退出
:q!未修改强制退出
:wq保存并退出
删除多行文件:n,nd
命令功能
:e ~/install.log打开新的文件进行编辑
:r /etc/filesystems在当前文件中读入其他文件内容
:! 命令vim中查看命令结果
:r !命令导入命令结果到光标所在处
:s /old/new/在当前行中查找到第一个字符“old”替换为“new”
: s /old/new/g将当前行中查找到的所有字符串“old”替换为“new”
:m,ns /old/new/g在行号“m,n”范围内替换所有的字符串“old“为”new“
: %s /old/new/g在整个文件范围内替换所有的字符串”old”为“new”
😒 /old/new/og在命令末尾加入c命令,将对每个替换动作提示用户进行确认
vim使用技巧—设置快捷键
在末行模式下输入:map 快捷键 快捷键执行的命令
例1::map ^P I#<esc>(效果:当输入crtl+p快捷键时在光标当前行首添加#。)^需要输入crtl+VP需要输入crtl+P     
例2::map ^D dd <esc>^需要输入crtl+VD需要输入crtl+D当输入crtl+D的时候,删除光标当前行。
例3::map ^B ^x当输入crtl+B快捷键时,光标会移动到行首,然后删除第一个字符。
注:如果想让这些快捷键永久生效,可以吸入vim的配置文件,/etc/vimec把需要的快捷键写入行尾。保存退出后执行. /etc/vimrc来加载配置文件。

二、V模式

进入v模式,移动光标选择区域,常用于编辑文件多行注释使用
CTRL+v 进入列模式
向上或向下移动光标,把需要注释、编辑的行的开头选中
按大写I
再插入注释符或需要批量擦汗如的符号
再按ESC键,完成添加

三、意外关闭产生的交换文件

交换文件的产生于非正常关闭文件中。再次打开时会有报错信息产生。
并在源文件的目录下会产生以.开头swp结尾的文件。
如果向恢复未保存的内容使用 vim -r 源文件名 可以进行回复。
只是想要解决报错信息只要删除.开头swp结尾的文件即可

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

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

相关文章

python学习之argparse模块

1.介绍 argparse是python用于解析命令行参数和选项的标准模块&#xff0c;用于代替已经过时的optparse模块。argparse模块的作用是用于解析命令行参数。 我们很多时候&#xff0c;需要用到解析命令行参数的程序。 我们常常可以把argparse的使用简化成下面四个步骤 2.使用步骤…

利用信息差:优惠券分享和变现思路

标题&#xff1a;“利用信息差&#xff1a;优惠券分享和变现思路” 在如今的电商时代&#xff0c;优惠券已成为吸引消费者的重要利器。然而&#xff0c;许多人并不知道&#xff0c;优惠券不仅可以用来省钱购物&#xff0c;还可以成为一种赚取收益的利器。本文将探讨如何利用信…

Leetcode—138. 随机链表的复制【中等】(cend函数)

2024每日刷题&#xff08;129&#xff09; Leetcode—138. 随机链表的复制 实现代码 /* // Definition for a Node. class Node { public:int val;Node* next;Node* random;Node(int _val) {val _val;next NULL;random NULL;} }; */class Solution { public:Node* copyRan…

西藏在线教育系统哪家好,培训机构为什么讲师流动大?该如何留住讲师?

教育机构的核心竞争力其实还是产品竞争力&#xff0c;老师讲什么&#xff0c;这是教研团队在做的;老师如何讲&#xff0c;这是师资团队来做的;如何交付给学生&#xff0c;这是产品团队来做的&#xff0c;如果你有在线的团队的话&#xff0c;三个部分共同构成了整个产品&#xf…

Spring JdbcTemplate使用临时表+事务会话管理实现数据新增、查询及自动清除功能

需求描述&#xff1a; 由于某些情况下当查询过滤参数过大时&#xff0c;执行sql由于参数过大而报错&#xff0c;此时 需要使用临时表的方式&#xff0c;即 当参数超过某个阀值&#xff08;如 1000&#xff0c;可调整&#xff09;新增一张临时表&#xff0c;将原表 与 该临时表进…

代码随想录算法训练营第六十二天|503.下一个更大元素II、42.接雨水

代码随想录算法训练营第六十二天|503.下一个更大元素II、42.接雨水 503.下一个更大元素II 给定一个循环数组 nums &#xff08; nums[nums.length - 1] 的下一个元素是 nums[0] &#xff09;&#xff0c;返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元…

第十一篇:操作系统新纪元:智能融合、量子跃迁与虚拟现实的交响曲

操作系统新纪元&#xff1a;智能融合、量子跃迁与虚拟现实的交响曲 1 引言 在数字化的浪潮中&#xff0c;操作系统如同一位智慧的舵手&#xff0c;引领着信息技术的航船穿越波涛汹涌的海洋。随着人工智能、物联网、量子计算等前沿技术的蓬勃发展&#xff0c;操作系统正站在一个…

Java算法-力扣leetcode-14. 最长公共前缀

14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 ""。 示例 1&#xff1a; 输入&#xff1a; strs ["flower","flow","flight"] 输出&#xff1a; "fl"示…

富士Apeos 2350 NDA复印机报062 360代码故障

故障描述&#xff1a; 富士Apeos 2350 NDA复印机新机器刚拆箱安装&#xff0c;开机正常&#xff0c;自检扫描头一卡一卡的往前动几下就不动了、扫描灯也不亮扫描头也不能正常复位&#xff1b;按机器的复印键直接报062 360代码&#xff1b; 解答&#xff1a; 此代码为扫描故障&a…

PDF高效编辑:一键批量,PDF转图片的快速解决方案

在数字化时代&#xff0c;PDF文件已成为工作和学习中不可或缺的一部分。然而&#xff0c;有时我们可能需要将PDF转换为图片&#xff0c;以便更轻松地编辑、共享或处理。为了满足这一需求&#xff0c;许多高效的PDF编辑工具应运而生&#xff0c;其中“办公提效工具”一键批量PDF…

如何找到高质量的微信群?分享8种适用的方法!

优质的微信群资源&#xff0c;价值越来越高。有些微信群就算在里面你不能发广告&#xff0c;不能宣传自己的产品&#xff0c;但是你通过群里可以获取很多优质的信息资源。 很多专业群&#xff0c;都是不会让发广告&#xff0c;宣传自己的产品。在专业群里面&#xff0c;你只有…

【每日八股】淘天一面

&#x1f525; 个人主页: 黑洞晓威 &#x1f600;你不必等到非常厉害&#xff0c;才敢开始&#xff0c;你需要开始&#xff0c;才会变的非常厉害 rocketmq的消息重复发送问题&#xff1f;如何保证幂等&#xff1f; 如何保证幂等性&#xff1a; 消息 Key 设置&#xff1a;不建议…

时序医疗数据集---adfecgdb

数据集简介 该数据库包含了在波兰西里西亚医科大学妇产科&#xff0c;通过使用KOMPOREL系统收集的5位临产孕妇&#xff08;孕38至41周&#xff09;的多通道胎儿心电图&#xff08;FECG&#xff09;记录。这些记录通过腹部四个电极和安置在胎儿头部的直接心电图电极同步收集&am…

【算法】大数取模

int biginteger_mod(string n, int m) {int len n.size();int ans 0;for(int i 0; i < len;i)ans (int)(((long long)ans * 10 n[i] - 0) % m);return ans; }

如何自定义Markdown中插入图片的位置

工作中常常需要在VsCode下写Markdown笔记&#xff0c;在写笔记的过程中不免需要插入图片。  Markdown中插入笔记的操作往往是比较繁琐的&#xff0c;比如&#xff1a;在文档中引用本地某个文件夹下的图片&#xff0c;首先需要你先保存图片到本地路径&#xff0c;然后需要你在文…

Vue-Cli脚手架项目的搭建【新手快速入手】

目录 一、Vue CLI脚手架简介☺ 1.Node.js前置环境的安装 2.安装npm管理器 3.安装淘宝镜像(cnpm) 二、安装vue-cli 1. 版本号查看 2.旧版本卸载 3.新版本安装 4.检查 三、Vue项目的搭建 &#x1f4cc;进入Vue项目管理器 ★命令方式创建 若localhost拒绝访问怎么办&…

技术速递|Python in Visual Studio Code 2024年5月发布

排版&#xff1a;Alan Wang 我们很高兴地宣布 Visual Studio Code 的 Python 和 Jupyter 扩展将于 2024 年 5 月发布&#xff01; 此版本包括以下公告&#xff1a; “Implement all inherited abstract classes”代码操作新的自动缩进设置Debugpy 从 Python 扩展中删除&#…

Unity TileMap入门

概述 相信很多同学学习制作游戏都是从2D游戏开始制作的吧&#xff0c;瓦片地图相信大家都有接触&#xff0c;那接下来让我们学习一下这部分的内容吧&#xff01; Tilemap AnimationFrameRate:设置每帧动画的播放速率。Color:瓦片地图的颜色TileAnchor:锚点&#xff0c;&#x…

Docker容器创建各种镜像

目录 1.Docker创建Mysql容器 2.Docker创建Redis容器 3.Docker 创建minio容器 1.Docker创建Mysql容器 拉取镜像 docker pull mysql:8.0.20 宿主机创建挂载目录 /opt/mysql/conf /opt/mysql/data /opt/mysql/log 启动命令 docker run --name mysql -p 3306:3306 -v /opt/…

HashMap源码解析

HashMap是Java集合框架中非常重要的一个类,它实现了Map接口,用于存储键值对。HashMap允许使用null作为键和值,下面是对 HashMap源码的基本解析,主要关注其内部结构和核心方法。 内部结构 Node 节点 HashMap内部通过Node类来存储键值对。每个Node对象包含一个键、一个值、…