Vim学习(一)——基本命令与三种模式
写在前面,
致敬
8月3日,Vim创始人Bram Moolenaar去世,在此向老爷子致敬!感谢他为这个世界带来的优秀编辑器Vim。
基本介绍
Vim全称叫Vi IMproved. 而vi则是Visual Interface的缩写,他们处理都是ASCII码字符数据;vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、 windows。
熟练使用vim绝对是你成为Linux大牛不可或缺的本领,但其命令复杂,需要一定的时间。
在Ubuntu终端下执行
sudo apt-get install vim #安装Vim。
三种模式
在Vim中,打开一个文件后,并不处在编辑模式,而是Normal模式(命令模式),命令模式下可完成一些查找、光标移动等操作,不对文件做手动编辑;
若要手动录入文本内容,应该按i进入vim编辑器的insert模式(输入模式);输入模式按Esc退回normal命令模式。
除此以外,还有一种特殊的模式可以执行文件保存、退出编辑器、查找替换等操作,称为“末行模式”。
因此,不同的操作切记要进入正确的模式:
Esc到Normal命令模式;
Normal下按i到insert输入模式;
Normal命令模式下按冒号:到末行模式。
vim编辑器三种模式之间的切换关系、按键操作如下:
1. Normal模式(命令模式)
启动Vim后,Vim会处于Normal模式。在Vim的Normal模式下,所有的键就是功能键,下面附上Vim功能键分布图,每个按键都具有一定的功能:
命令模式下的基本操作:
(1)光标跳转:按gg跳转至文件第一行的行首、按G跳转至文件最后一行的行首。
(2)复制、粘贴、删除操作:按向下箭头键将光标移动某处,再按2yy,将会复制光标处开始的2行内容(若直接按yy则只复制一行) 。再将光标移动至要粘贴处,然后按下p,完成粘贴操作。
(3)查找关键词:按gg键回到文件开头,输入 /initdefault[关键字] 可在整个文件内查找“initdefault“关键词,并高亮显示;按 n 键跳转至第2个匹配结果,再按一次n键跳转至第3个匹配结果。
2、insert模式(输入模式)
在Normal模式下,按下键盘上的i键入Insert输入模式(当然还有其他方式,比如按下a、o、O等,i是最常用的方法),当你在Vim左下角看到 -Insert- 字体,表明你已经进入Vim的Insert输入模式。
在Insert模式输入下,你可以自由的输入你想要输入的东西了,就像使用其他编辑器一样。
3、末行模式
也叫 Visual模式。在Normal命令模式下,按键盘v键进入Visual模式,左下角会有VISUAL字样。在Visual末行模式下,可以让你选择文件的一部分内容,以便进行删除、复制等操作。
Vim三个基本模式之间的切换
每次切换模式都要按Esc键先切换到Normal模式,即命令模式。当然也可以用CTRL+[ 或CTRL-C 先切到命令模式(CTRL-C 主要用来强制中止VIM正在执行的各种很耗时的操作)。
1、Normal命令模式<-----> Insert输入模式
用Vim打开文件,默认就是Normal命令模式。此时按下键盘i、a、o、I即可进入Insert输入模式。在编辑模式中,按Esc就可返回到Normal命令模式。如果你不确定是否进入了Normal模式,可以多次按下Esc键。
进入编辑模式按键的含义:
i 在光标所在字符前开始输入文字(insert)。
a 在光标所在字符后开始输入文字(append)。
o 在光标所在行下开一新行来输入文字(open)。
I 在行首开始输入文字。
2、Normal命令模式<----->Visual末行模式
在Normal命令模式下,按键盘v键进入Visual模式,左下角会有VISUAL字样。在Visual末行模式下,按下键盘上的Esc键回到Normal命令模式。
在Normal命令模式下,按键盘冒号:键进入Visual模式,表示要输入vim命令;可输入的命令如下:
:q 退出(更确切的说应该是关闭当前文件)
:w 文件名 保存。如果还是保存为当前文件,不必写文件名
:wq 保存并退出(退出后自动进入Normal命令模式)
:q! 强制退出不保存
:wq! 强制保存并退出。 保存时遇到E45 readonly option is set (add!to override)可用。
删除单行内容 :将光标移动到需要删除的行,按一下ESC键,确保退出编辑模式,
按两次键盘上面的d键,就可以删除了。
删除多行: 将光标移动到需要删除的行,按一下ESC键,确保退出编辑模式,
在dd命令前面加上要删除的行数。例如,如果要删除第4行以下的3行,请按下 3 dd
相关文章:
Vim学习(一)——基本命令与三种模式
写在前面, 致敬 8月3日,Vim创始人Bram Moolenaar去世,在此向老爷子致敬!感谢他为这个世界带来的优秀编辑器Vim。 基本介绍 Vim全称叫Vi IMproved. 而vi则是Visual Interface的缩写,他们处理都是ASCII码字符数据&am…...
unity新输入系统的简单使用(New InputSystem)
1、在包管理器 unity注册表中下载安装InputSystem 2、给玩家添加组件PlayerInput,点击CreatAction,创建一个InputAct InputAct,这是玩家的输入文件,在里面可以设置玩家输入 3、使用 例如玩家控制角色移动 在InputAct中,默认已经设置好了移…...
Redis——特性介绍与应用场景
Redis特性介绍 In-memory data structrues 众所周知,MySQL是一种关系型数据库,其通过表的结构存储数据,就类似于建立了一个excel表格来存储数据。但是像视频这类数据并不适合存储在关系型数据库中,因此存在非关系型数据库——通…...
网络:路由
1. 路由器 路由器工作在三层,每个接口都处于不用的网段中,即不同的广播域。但大多情况下,两台路由器直接相连的接口是同一个广播域,即一个网段。 路由器具有判断网络地址和选择路径的功能,能在多网络互联的环境中&…...
利用三维内容编辑器制作VR交互课件,简单好用易上手
随着虚拟现实技术的不断发展,越来越多的教育机构开始尝试将其应用于教育教学中。然而,要实现这一目标并不容易,需要专业的技术支持和开发团队。 为了解决这一问题,广州华锐互动研发了三维内容编辑器,它是一种基于虚拟现…...
中国首款量子计算机操作系统本源司南 PilotOS正式上线
中国安徽省量子计算工程研究中心近日宣布,中国国产量子计算机操作系统本源司南 PilotOS 客户端正式上线。 如果把量子芯片比喻成人的“心脏”,那么量子计算机操作系统就相当于人的“大脑”,量子计算应用软件则是人的“四肢”。 据安徽省量子…...
基层社会治理平台建设方案[113页PPT]
导读:原文《基层社会治理平台建设方案[113页PPT]》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 完整版领取方式 完整版领取方式: 如需获取完…...
认识vite
一.了解vite的不同版本的更新 vite1版本是基于vue项目的,无法跨框架使用vite2可以跨框架(vue2,vue3,react)vite3模板变更;vite cli优化;import.meta.glob API变化;其他vite4主版本主…...
华为运动健康,十年创新天地宽
我听一位朋友讲过这样一个故事。某天早上,急诊科的医生迎来了一位患者,患者进来后直接说:“大夫,我房颤了。” 这位医生非常诧异,因为心脏房颤确实非常危急,但很多时候并没有明显的生理体征,患者…...
深度学习(37)—— 图神经网络GNN(2)
深度学习(37)—— 图神经网络GNN(2) 这一期主要是一些简单示例,针对不同的情况,使用的数据都是torch_geometric的内置数据集 文章目录 深度学习(37)—— 图神经网络GNN(…...
Unity游戏源码分享-乐节奏休闲游戏源码 guitar hero 支持mobile
Unity游戏源码分享-乐节奏休闲游戏源码 guitar hero 支持mobile 完整版下载地址:https://download.csdn.net/download/Highning0007/88198766...
VS Code配置Prettier格式化Apex
先决条件 安装nodejs和npm安装vs code安装salesforce extension pack 配置Prettier Apex 创建本地Salesforce项目 (Standard) command shift p -> SFDX: Create Project with Manifest -> Standard 打开terminal运行npm init生成package.json文件 安装prettier ap…...
Spring-Cloud-Loadblancer详细分析_4
在RoundRobinLoadBalancer.choose中的serviceInstanceListSupplierProvider就是获取服务列表的关键,那么此对象是怎么拿到的呢,让我们回到RoundRobinLoadBalancer的创建过程 Configuration(proxyBeanMethods false) ConditionalOnDiscoveryEnabled pub…...
openocd调试esp32(通过FT232H)
之前在学习ESP32,其中有一部分课程是学习openocd通过JTAG调试程序的,因为我用的是ESP32-wroom,usb端口没有集成对应的usb转jtag的ft232,查了ESP32相关的资料(JTAG 调试 - ESP32 - — ESP-IDF 编程指南 latest 文档 (es…...
Nokia5110使用方法及实例编写51单片机
文章目录 Nokia5110实物图引脚和原理图51单片机实例软件模拟SPI实现控制Nokia5110显示字符发送字节时序图(图片太多了,关键图片已截取出来)初始化需要配置实例编写回顾接线结束Nokia5110 Nokia是诺基亚拆下来的屏幕。使用SPI控制 84x48 的点阵 LCD,可以显示 4 行汉字,采用…...
3个月快速入门LoRa物联网传感器开发
在这里插入图片描述 快速入门LoRa物联网传感器开发 LoRa作为一种LPWAN(低功耗广域网络)无线通信技术,非常适合物联网传感器和行业应用。要快速掌握LoRa开发,需要系统学习理论知识,并通过实际项目积累经验。 摘要: 先学习LoRa基础知识:原理、网络架构、协议等,大概需要2周时间…...
【小梦C嘎嘎——启航篇】内存管理小知识~
【小梦C嘎嘎——启航篇】内存管理小知识~😎 前言🙌malloc/calloc/realloc的区别?new 与 deletenew与delete要找好搭档才能保证万无一失 new 与 delete的内部实现细节是怎么样的呢???new 的内部实现细节dele…...
ClickHouse查看执行计划(EXPLAIN语法)
1.EXPLAIN 语法示例 EXPLAIN [AST | SYNTAX | QUERY TREE | PLAN | PIPELINE | ESTIMATE | TABLE OVERRIDE] [setting value, ...] [ SELECT ... | tableFunction(...) [COLUMNS (...)] [ORDER BY ...] [PARTITION BY ...] [PRIMARY KEY] [SAMPLE BY ...] [T…...
线程池
线程池 什么是线程池? 想象一下 假设我是个漂亮妹子,这时候接受了舔狗A的表白,随着时间的推移,逐渐不喜欢A这小子了,于是我就想换个男朋友,可是 1.处理分手,需要消耗一定成本 2.再找一个新对象…...
配置:Terminal和oh-my-posh
目录 命令行安装oh-my-posh查看安装情况配置PowerShell启用oh-my-posh、设置主题配色安装字体Terminal中的配置 命令行安装oh-my-posh Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString(https://ohmy…...
Video Station for DSM 7.2.2:解决群晖新版系统视频管理兼容性问题的完整方案
Video Station for DSM 7.2.2:解决群晖新版系统视频管理兼容性问题的完整方案 【免费下载链接】Video_Station_for_DSM_722 Script to install Video Station in DSM 7.2.2 and DSM 7.3 项目地址: https://gitcode.com/gh_mirrors/vi/Video_Station_for_DSM_722 …...
别再死记硬背Flex属性了!用这5个真实网页布局案例,带你彻底搞懂CSS Flexbox
别再死记硬背Flex属性了!用这5个真实网页布局案例,带你彻底搞懂CSS Flexbox 每次看到Flexbox那十几个属性列表就头疼?明明背了justify-content和align-items的区别,实际写代码时还是得反复查文档?不如换个学习方式——…...
安卓开发者的新玩具:在Android Studio里集成DeepSeek模型,打造你的专属AI助手App
安卓开发者的新玩具:在Android Studio里集成DeepSeek模型,打造你的专属AI助手App 作为一名长期奋战在Android开发一线的工程师,我最近发现了一个令人兴奋的新趋势:将本地化AI模型直接集成到移动应用中。这不再是科幻电影里的场景&…...
如何通过Universal Android Debloater实现手机性能翻倍?终极指南揭秘
如何通过Universal Android Debloater实现手机性能翻倍?终极指南揭秘 【免费下载链接】universal-android-debloater Cross-platform GUI written in Rust using ADB to debloat non-rooted android devices. Improve your privacy, the security and battery life …...
告别手动挖洞:用Acunetix 13.0自动化扫描你的Pikachu靶场(附详细配置与报告解读)
从零到精通的Acunetix实战:Pikachu靶场自动化安全评估指南 在网络安全学习的过程中,靶场环境就像武术训练中的木人桩,而自动化扫描工具则是帮助我们快速发现弱点的"火眼金睛"。本文将带你深入探索如何将Acunetix这款专业级扫描工具…...
从PCIe到UCIe:NOP操作的演变与芯片互连设计中的那些‘小心思’
从PCIe到UCIe:NOP操作的演变与芯片互连设计中的那些‘小心思’ 在芯片互连技术快速迭代的今天,从PCIe到UCIe的演进不仅仅是带宽和速率的提升,更体现了设计哲学的根本转变。当我们聚焦于看似简单的NOP(No Operation)操作…...
OneNote到Markdown转换终极指南:深度解析开源迁移工具的技术实现
OneNote到Markdown转换终极指南:深度解析开源迁移工具的技术实现 【免费下载链接】onenote-md-exporter ConsoleApp to export OneNote notebooks to Markdown formats 项目地址: https://gitcode.com/gh_mirrors/on/onenote-md-exporter 在数字化笔记管理领…...
FlashDB掉电保护原理:确保嵌入式数据安全的终极指南
FlashDB掉电保护原理:确保嵌入式数据安全的终极指南 【免费下载链接】FlashDB An ultra-lightweight database that supports key-value and time series data | 一款支持 KV 数据和时序数据的超轻量级数据库 项目地址: https://gitcode.com/gh_mirrors/fl/FlashD…...
从零到壹嵌入式Linux编程实战教程课:第 5 课:Linux 基础命令与文件系统入门
第5课 Linux基础命令与文件系统入门 文章目录 第5课 Linux基础命令与文件系统入门一、课程目标二、Linux 命令基础1. 命令基本格式 三、目录与文件管理命令1. ls — 查看目录内容2. cd — 切换目录3. pwd — 显示当前路径4. mkdir — 创建目录5. rmdir — 删除空目录6. cp — 复…...
思源宋体TTF字体:5分钟快速上手的完整免费使用指南
思源宋体TTF字体:5分钟快速上手的完整免费使用指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为中文排版寻找专业又免费的字体解决方案吗?思源宋体TTF…...
