Linux:vim的简单使用

在这里插入图片描述

个人主页 : 个人主页
个人专栏 : 《数据结构》 《C语言》《C++》《Linux》

文章目录

  • 前言
  • 一、vim的基本概念
  • 二、vim的基本操作
  • 三、vim正常模式命令集
  • 四、vim底行模式命令集
  • 五、.xxx.swp的解决
  • 总结


前言

本文是对Linux中vim使用的总结


一、vim的基本概念

vim是一款多模式的文本编辑器,vim里有许多子命令,来进行代码编写的操作。本文将总结vim的三种常用模式,分别是命令模式(command mode),插入模式(insert mode),底行模式(last line mode),其中默认打开命令模式

  • 命令模式
    控制屏幕光标的移动,字符,字或行的删除,移动复制某区段及进入插入模式,或者到底行模式
    在这里插入图片描述
    输入 vim 文件名 指令后进入的界面就是命令模式
  • 插入模式
    只有在插入模式下,才可以做文字输入,按[ESC]键可以回到命令模式。
    在这里插入图片描述
    在命令模式下输入:i,a,o都可以进入命令模式
  • 底行模式
    文件保存或退出,也可以进行文件替换,找字符串(/ 字符串),列出行号(set nu)等操作。在命令模式下,shift + ; 进入底行模式。在底行模式下,可以查看vim的所有模式( help vim-modes)
    在这里插入图片描述
    在这里插入图片描述
    按h,j,k,l进行左,下,上,右移动光标。输入shift ; q退出

二、vim的基本操作

在这里插入图片描述

  • 进入vim,在系统提示符号输入vim及文件名称后,就可以进入vim全屏膜编辑模式
    在这里插入图片描述
    要注意,在命令行模式下,不能输入文字。要在插入模式才能输入文字
  • 命令行模式 到 插入模式
    输入 i,a,o都可以
    在这里插入图片描述
    但输入i,光标不移动。输入a,光标向右移动一字符。输入o,光标向下移动一行。
    在这里插入图片描述
    现在我们处于命令行模式,光标位于第三个a处。
    输入 i :
    在这里插入图片描述
    输入:o
    在这里插入图片描述
    输入:a
    在这里插入图片描述

  • 插入模式 切换至 命令行模式
    目前处于插入模式,就只能一直输入文字,如果发现输入错误,想用光标往回移动,将该字符删除,可以先输入 ESC转到命令行模式在删除文字。当然也可以直接删除
    在这里插入图片描述

  • 命令行模式 转到 底行模式
    输入shift ;
    在这里插入图片描述

三、vim正常模式命令集

  • 插入模式

输入 i 切换进入插入模式,按 " i "进入插入模式后从光标当前位置开始输入文件
输入 a 进入插入模式,从目前光标所在位置的下一个位置开始插入文字
输入 o 进入插入模式,插入新的一行,从行首开始输入文字


  • 移动光标

vim可以直接用键盘上的光标来上下移动,但正规的vim是用小写字母 h,j,k,l分别控制光标左,下,上,右移动一格
输入 shifr g(G):移动到文件的最后
在这里插入图片描述
输入 $:移动到光标所在行的行尾
在这里插入图片描述
输入 ^:移动光标到所在行的行首。 ^ 和 $ 表示一行的开始与结尾,被称为锚点符号
在这里插入图片描述
输入 w:光标调到下一个字的开头
在这里插入图片描述
输入 e:光标调到下一个字的字尾
在这里插入图片描述
输入 b:光标回到上个字的开头
在这里插入图片描述
输入 #|:光标移到该行的第#个位置
在这里插入图片描述
输入 gg:进入文本开始
在这里插入图片描述
输入 shift + g :进入文本末端
在这里插入图片描述
输入 ctrl + b :屏幕向后移动一页
输入 ctrl + f:屏幕向前移动一页
输入 ctrl + u:屏幕向后移动半页
输入 ctrl + d:屏幕向前移动半页


  • 删除文字

x:每按一次,删除光标所在位置的一个字符
在这里插入图片描述
#x:表示删除光标所在位置的后面(包含自己在内)#个字符
在这里插入图片描述
X(大写):每按一次,删除光标所在位置前一个字符
在这里插入图片描述
dd:删除光标所在行
在这里插入图片描述
#dd:从光标所在行开始删除#行
在这里插入图片描述


  • 复制

yy:复制光标所在行到缓冲区
#yy:复制包含光标所在行后#行到缓冲区
p:将缓冲区的字符贴到光标所在的位置。注意:所有与y有关的复制命令都必须与p配合才能完成复制与粘贴功能。
在这里插入图片描述
在这里插入图片描述
注意dd可以与p配合使用,当只使用dd,就是删除。但是在dd后再使用p就是剪切。


  • 替换

r :替换光标所在处的字符
在这里插入图片描述
R:替换光标所到之处的字符,直到按ESC为止 (也就是 shift + r 进入替换模式)
在这里插入图片描述
shift ~:智能大小写转换
在这里插入图片描述


  • 撤销上一次操作

u :如果你误操作一个命令,可以按u,回到上一个操作。按多次u可以执行多次回复
在这里插入图片描述
ctrl + r:对撤销的回复
在这里插入图片描述


  • 更该

cw:更改光标所在处的字到字尾处
在这里插入图片描述
c#w:更改光标所在的字(包含光标所在的字)后#个字
在这里插入图片描述


  • 跳至指定的行
  • ctrl + g:列出光标所在的行号
  • 在这里插入图片描述
  • #G:光标移动至文件的第#行行首
  • 在这里插入图片描述

  • 批量化注释

ctrl + v -> j / k两个按键上下选中区域 -> shift + i -> // -> ESC
在这里插入图片描述

四、vim底行模式命令集

  • 列出行号

set nu:输入set nu后,会在文件中的每一行前面列出行号
在这里插入图片描述
set nonu:取消行号
在这里插入图片描述


  • 跳到文件中的某一行

#:#表示一个数字,在冒号后输入一个数字,在按回车键就会跳到该行
在这里插入图片描述


  • 查找字符

/关键字:先按/,再输入你想寻找的字符,如果第一次的关键字不是你想要的,可以一直按 n 会往后寻找到你要的关键词
在这里插入图片描述
?关键字:先按?,再输入你想寻找的关键字,如果第一次的关键字不是你想要的,可以一直按 n 会往后寻找到你要的关键字
在这里插入图片描述


  • 保存文件
    w:在冒号后输入字母w,就可以保存文件
    在这里插入图片描述

  • 退出vim

q:按q就是退出,如果无法离开vim,可以输入 q!强制退出vim
在这里插入图片描述
wq:一般建议离开时,搭配w一起使用,这样在退出的时候还可以保存文件

五、.xxx.swp的解决

在打开文件时,如果直接退出shell,会产生一个隐藏备份文件.xxx(文件名).swp。此时我们在打开xxx文件就无法打开,这时我们可以直接rm掉.xxx.swp文件
如下:我们vim test.txt文件再输入一些内容,之后直接退出shell就会查收.test.txt.swp文件
在这里插入图片描述
此时我们不能vim test.txt打开文件,会有如下提示
在这里插入图片描述
我们只有rm .test.txt.swp文件后才可以正常打开文件
在这里插入图片描述


总结

以上就是我对于Linux中vim使用的总结。感谢支持!!!
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

02-使用Git命令操作远程仓库,如克隆或添加远程仓库,拉取或推送内容

操作远程仓库 创建远程仓库 第一步: 访问GitHub官网,登录自己的账号创建一个远程仓库 第二步: 设置远程仓库的信息(一般远程库的名字和本地库的名字一样),仓库创建完成后可以看到仓库地址(每个仓库都会对应一个网络地址) 第三步: 查看本地仓库对应的Https/SSH连接 远程仓库命…

apk和小程序渗透测试

apk和小程序渗透测试 文章目录 apk和小程序渗透测试小程序渗透测试apk和小程序的抓包安装证书apk渗透 小程序渗透测试 小程序的默认路径在 C:\Program Files (x86)\Tencent\WeChat\WeChatApp 使用UnpackMiniApp、wxappUnpacker工具完成逆向 先打开UnpackMiniApp.exe工具 选…

Kotlin学习——kt里的作用域函数scope function,let,run,with,apply,also

Kotlin 是一门现代但已成熟的编程语言,旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作,并提供了多种方式在多个平台间复用代码,以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…

超全能!PDF转换+套用模板+在线制作电子画册的网站

上班族的朋友们,制作电子画册很苦恼吧!没有专业设计水准的,或是想偷偷小懒的看看这里!小编说的这些对你的工作非常有效! 想要轻轻松松就能制作能与专业设计师们媲美的电子画册,当然是需要一款超全能的工具&…

ESP32CAM视频查看实践

利用ESP32cam的摄像头进行视频查看。视频画质确实模糊,不过不妨碍其高性价比。 1、选择开发板及串口 2、打开例程 3、修改热点和摄像模式 4、复制链接查看 手机浏览器打开

LeetCode Hot100 169.多数元素

题目: 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 方法一:哈希表 ​ class Solution {public int…

Go 语言注释教程

注释是在执行时被忽略的文本。 注释可用于解释代码,使其更易读。 注释还可用于在测试替代代码时防止代码执行。 Go支持单行或多行注释。 Go单行注释 单行注释以两个正斜杠(//)开头。 在//和行尾之间的任何文本都将被编译器忽略&#xf…

常用OSPF命令有哪些?详细解释~赶快收藏起来!

OSPF(Open Shortest Path First开放式最短路径优先)是一种动态路由协议,属于内部网关协议(Interior Gateway Protocol,简称IGP),是基于链路状态算法的路由协议。 配置OSPF会使用到哪些命令? 1、OSPF (1&…

C/C++11 语法/概念易错总结(1)

文章目录 缺省参数函数重载引用引用和指针内联宏的优缺点auto范围forNULL和nullptr 缺省参数 半缺省参数必须从右往左依次来给出&#xff0c;不能间隔着给 void Func(int a, int b 10, int c 20){cout<<"a "<<a<<endl;cout<<"b &…

uniapp运行到安卓基座app/img标签不显示

img是html中的标签&#xff0c;他也是一个单标签 image属于服务器控件&#xff0c;是个双标签 问题&#xff1a;uniapp运行到app安卓基座后图片无法显示 原因&#xff1a;自己使用了img标签&#xff0c;而且输入路径无提示&#xff0c;img标签导致图片不显示 解决&#xff…

阅读文献总结2023

阅读文献基于卷积神经网络多源融合的网络安全态势感知模型 阅读文献 基于卷积神经网络多源融合的网络安全态势感知模型 题目基于卷积神经网络多源融合的网络安全态势感知模型文章信息&#xff1a;年份2023发文单位山西财经大学收录刊会计算机科学 &#xff08;北大核心&#…

微服务架构:解析分布式系统的演进

目录 微服务是什么&#xff1f; 微服务的优势 微服务的挑战 应对微服务挑战的方法 结论 在当今快速发展的软件开发领域&#xff0c;微服务架构成为一种备受瞩目的设计理念&#xff0c;被广泛应用于构建灵活、可扩展的分布式系统。本文将深入探讨什么是微服务&#xff0c;为…

掌握HarmonyOS框架的ArkTs如何管理和共享状态数据

ARKTS&#xff08;Ark TypeScript&#xff09;是HarmonyOS应用框架的一部分&#xff0c;提供了一种灵活而强大的状态管理机制。在ARKTS中&#xff0c;AppStorage和LocalStorage是两个关键的概念&#xff0c;它们分别用于应用级和页面级的状态共享。通过深入了解这两个特性&…

管理员配置Jupterhub

在Ubuntu上演示如何部署R语言环境&#xff0c;包括 posit的已经编译了一些R的安装 系统已经装了R&#xff0c;我额外编译的R如何让大家都能用到 如何配置RStudio jupyterhub的配置和使用 管理员如何配置jupyterhub 用户如何配置自己的jupyter环境 Ubuntu上的R部署 这一次…

【C语言】与文件有关的操作

目录 1. 前言2. 什么是文件&#xff1f;2.1 程序文件2.2 数据文件2.3 文件名 3. 二进制文件和文本文件&#xff1f;4. 文件的打开和关闭4.1 流和标准流4.1.1 流4.1.2 标准流 4.2 文件指针4.3 文件的打开和关闭 5. 文件的顺序读写5.1 顺序读写函数介绍5.2 对比一组函数 6. 文件的…

不会代码(零基础)学语音开发(语音开发板)

语音开发板板载资源介绍 通过上图可以看到VDB-150S语音开发板应该是集目前上市的所有语音开发板中板载资源最为丰富的一款开发板。板载的主要资源有&#xff1a; 双色LED状态指示灯&#xff1b;两个测试时使用的按键开关&#xff1b;红外寻迹/接近传感器&#xff1b;固件烧录器…

Redis分布式锁学习总结

⭐️ 前言 想必大家都有过并发编程的经验&#xff0c;在一个单体应用中&#xff0c;可以通过java提供的各种锁机制来控制多线程对于单体应用中同一资源的并发访问&#xff1b;那么在分布式场景下&#xff0c;想要控制多个应用对于同一外部资源的并发访问&#xff0c;就要用到分…

使用YOLOv8训练自己的数据集

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 拉取项目 git clone https://github.com/ultralytics/ultralytics安装依赖 cd ultralytics pip install -r requirement.txt pip instal…

JAVA全栈开发 集合详解(day14+day15汇总)

一、数组 数组是一个容器&#xff0c;可以存入相同类型的多个数据元素。 数组局限性&#xff1a; ​ 长度固定&#xff1a;&#xff08;添加–扩容&#xff0c; 删除-缩容&#xff09; ​ 类型是一致的 对象数组 &#xff1a; int[] arr new int[5]; … Student[] arr …

一种LED驱动专用控制电路方案

一、基本的概述 TM1651 是一种带键盘扫描接口的LED&#xff08;发光二极管显示器&#xff09;驱动控制专用电路&#xff0c;内部集成有MCU 数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。本产品性能优良&#xff0c;质量可靠。采用SOP16/DIP16的封装形式。 二、特性说…