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使用的总结。感谢支持!!!
在这里插入图片描述

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

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

相关文章

Hdoop学习笔记(HDP)-Part.10 创建集群

十、创建集群 1.创建集群 开始安装集群 (1)Get Started (2)Selected Version 选择使用本地镜像仓库安装(Use Local Repository),将其他os部分删除 HDP-3.1:http://hdp01.hdp.com/HDP/centos7/3.1.5.0-152/ HDP-3.1-GPL&#…

行内元素和块级元素分别有哪些?有何区别?怎样转换?

行内元素和块级元素分别有哪些? 常见的块级元素: p、div、form、ul、li、ol、table、h1、h2、h3、h4、h5、h6、dl、dt、dd 常见的行级元素: span、a、img、button、input、select 有何区别? 块级元素: 总是在新行上…

Android Studio新版UI介绍

顶部菜单栏 左侧主要菜单入口项目名称分支名称 展开之后,主要功能与原来菜单栏功能一样,最大的变化就是把setting独立出去了。 而项目名称这里,展开就可以看到打开的历史工程列表,可以直接新建工程,原来需要在项目名称…

Fiddler抓包工具之fiddler的介绍及安装

Fiddler简介 Fiddler是比较好用的web代理调试工具之一,它能记录并检查所有客户端与服务端的HTTP/HTTPS请求,能够设置断点,篡改及伪造Request/Response的数据,修改hosts,限制网速,http请求性能统计&#xff…

socks5代理如何工作?socks5代理可以用来做什么?

socks5代理是一种网络代理服务器,它通常用于改变网络请求的传输方式和地址,从而使得网络请求能够通过代理服务器进行访问。本文将介绍socks5代理的工作原理、优势、使用场景以及如何选择合适的socks5代理。 一、socks5代理的工作原理 socks5代理是一种协…

基于vue+element-plus+echarts编写动态绘图页面

我们都知道网页的echarts可以画图,但是很多情况下都需要编码实现绘图逻辑,如果有一个前端页面可以让我输入数据然后动态生成图表的话那么该多好,其实这个需求不难实现,先看效果。 整体页面分为左右两个部分,其中左边的…

yolov5检测(前向)输入视频输出(不在图上画标签形式的原)图片的方法,及设置每隔几帧保存的方式(不每帧保存减少重复)

这些天我忽然有个需求,要更新迭代一个场景的检测模型,甲方爸爸提供的新数据集是监控视频形式的(因为拍视频确实更加的方便),而我训练模型确实要标注好的图片形式。 根据这些条件的话,思路应该是要这样的:首先使用现有的…

【Web】NISACTF 2022 个人复现

目录 ①easyssrf ②babyupload ③ level-up ④bingdundun~ 明天就新生赛了,练套题保持下手感吧 (文章只选取了一部分) ①easyssrf 输入/flag 输入file:///fl4g 访问/ha1x1ux1u.php ?filephp://filter/convert.base64-encode/resource/…

cmake和vscode 下的cmake的使用详解(二)

第四讲: GDB 调试器 前言: GDB(GNU Debugger) 是一个用来 调试 C/C 程序 的功能强大的 调试器 ,是 Linux 系统开发 C/C 最常用的调试器 程序员可以 使用 GDB 来跟踪程序中的错误 ,从而减少程序员的工作量。 Linux 开发 C/C …

【数据结构】初识排序 直接插入排序

初识排序 & 直接插入排序 🐟排序在现实中的应用🐟排序的概念🐟常见的排序算法🐟直接插入排序💦举例--直接插入排序在现实种的应用💦单趟直接插入排序讲解💦直接插入排序算法 🐟排…

用c语言自己实现qsort和冒泡排序

目录:1:冒泡排序 2:库函数qsort冒泡排序 3:库函数qsort排序结构体 4:自己实现qsort 1:冒泡排序 冒泡排序:的英文 Bubble Sort ,是一种最基础的 交换排序 。 之所以叫做冒泡排序,因为每一个元素都可以像小气泡一样,根…

c语言:模拟实现atoi函数

atoi函数的功能和用法&#xff1a; 主要功能&#xff1a;将字符串转换为整数。例如&#xff0c;将字符类型的“123”转换为整数123. #include <stdio.h> #include <stdlib.h>int main() {char str[] "123";int num atoi(str);printf("Converted …

4、RTC 实时时钟Demo(STM32F407)

RTC是个独立的BCD定时器/计数器。RTC 提供一个日历时钟&#xff0c;两个可编程闹钟中断&#xff0c;以及一个具有中断功能的周期性可编程唤醒标志。RTC还包含用于管理低功耗模式的自动唤醒单元。 (RTC实质&#xff1a;一个掉电(主电源)后还继续运行(由VBAT供电)的32位的向上计…

SpringBoot3.x + mp代码生成器(更新系列)

小伙伴们&#xff0c;有没有这样一个体验&#xff0c;每次开始写一个项目时&#xff0c;搭建项目环境&#xff0c;建entity&#xff0c;mapper&#xff0c;service&#xff0c;controller层文件的感到繁琐&#xff0c;这属实体力活呀&#xff01;然而&#xff0c;自从有了Mybat…

JSP格式化标签 formatDate日期格式转换

我们继续来讲格式化标签 formatDate 这个标签 作用是 将一个date时间类型的值转成指定格式的字符串 语法格式如下 value 是需要格式化的数据 type 是确定你要转什么类型的数据 这里有 日期型 时间型 日期时间型 dateStyle 专门用来设置日期格式 timestyle 的话 是专门用来设…

海外IP罗拉rola正版去哪里找?

免费海外IP代理能用吗&#xff1f;和收费的有哪些差异&#xff1f; 如今在这个大数据时代&#xff0c;无论你从事哪个行业&#xff0c;都离不开数据&#xff0c;尤其是做跨境电商的&#xff0c;更一步都离不开海外IP代理&#xff0c;无论是网站引擎优化还是营销推广、数据抓取…

SpringBoot——Quartz 定时任务

优质博文&#xff1a;IT-BLOG-CN 一、Scheduled 定时任务 【1】添加Scheduled相关依赖&#xff0c;它是Spring自带的一个jar包因此引入Spring的依赖&#xff1a; <dependency><groupId>org.springframework</groupId><artifactId>spring-context-su…

《opencv实用探索·六》简单理解图像膨胀

1、图像膨胀原理简单理解 膨胀是形态学最基本的操作&#xff0c;都是针对白色部分&#xff08;高亮部分&#xff09;而言的。膨胀就是使图像中高亮部分扩张&#xff0c;效果图拥有比原图更大的高亮区域。 2、图像膨胀的作用 注意一般情况下图像膨胀和腐蚀是联合使用的。 &…

Redis多机数据库

文章目录 Redis多机数据库一、主从复制1、旧版复制功能的实现a、同步b、命令传播 2、旧版复制功能的缺陷3、新版复制功能的实现a、部分同步功能b、复制实现步骤 4、心跳检测 二、哨兵1、Sentinel概念2、Sentinel初始化流程3、故障转移过程 三、集群1、几个概念2、集群创建流程a…

localStorage 和sessionStorage

localStorage 和 sessionStorage 是浏览器提供的两种客户端存储数据的方式&#xff1a; 生命周期&#xff1a; localStorage&#xff1a; 存储在 localStorage 中的数据在浏览器关闭后仍然保留&#xff0c;直到被显式删除或浏览器清除缓存。sessionStorage&#xff1a; 存储在 …