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.mzph.cn/news/189180.shtml

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

相关文章

iOS Class Guard 成功了,但无法区分差异

iOS Class Guard 成功了,但无法区分差异 我正在开发一个静态库,并使用 Polidea 的 iOS Class Guard 来混淆我的静态库。我按照步骤在项目的根路径中下载 obfuscate_project,更改其中所需的名称,最后在终端中运行 bash obfuscate_p…

算法通关村第六关—二叉树的层次遍历经典问题(白银)

二叉树的层次遍历经典问题 一、层次遍历简介 广度优先遍历又称层次遍历,过程如下:  层次遍历就是从根节点开始,先访问根节点下面一层全部元素,再访问之后的层次,图里就是从左到右一层一层的去遍历二叉树&#xff0c…

学习笔记8——JUC入门基础知识

学习笔记系列开头惯例发布一些寻亲消息 链接:https://baobeihuijia.com/bbhj/contents/3/199561.html 进程和线程:进程是资源分配的最小单位,线程是CPU调度的最小单位 进程和线程的主要区别(总结)_进程和线程的区别-CSDN博客进程…

Flink的部署模式和运行模式

集群角色 Flink提交作业和执行任务,需要几个关键组件: 客户端:代码由客户端获取并作转换,之后提交给Jobmanager Jobmanager就是Flink集群的管事人,对作业进行中央调度管理;当从客户端获取到转换过的作业后…

NRF24L01 无线收发模块与 Arduino 的应用

NRF24L01 是一款常用的无线收发模块,与 Arduino 兼容性良好,可以用于实现无线通信和数据传输。本文将介绍如何将 NRF24L01 模块与 Arduino 配合使用,包括硬件的连接和配置,以及相应的代码示例。 一、引言 NRF24L01 是一款基于 2.…

CentOS或RHEL安装vscode

下载rpm安装包 网络下载或者下载到本地再上传到服务器,点击访问国内下载地址,不需要积分curl -fOL https://github.com/coder/code-server/releases/download/v4.19.1/code-server-4.19.1-amd64.rpm安装 rpm -i code-server-4.19.1-amd64.rpm关闭和禁用…

STM32F407-14.3.9-01输出比较模式

输出比较模式 此功能用于控制输出波形,或指示已经过某一时间段。 当捕获/比较寄存器与计数器之间相匹配时,输出比较功能: ● 将为相应的输出引脚分配一个可编程值,该值由输出比较模式(TIMx_CCMRx 寄存器中的 OCxM⑦…

Python批量Git Pull,对文件夹批量进行Pull操作

效果展示 说明 本来是想写的完善一些,但由于是自用,所以写出来后发现已经解决了自己的问题,所有 2和3功能没有写。 执行的话,需要 cmd 之后 直接 Python BatchGitPull.py 运行下面代码即可。 里面同时涉及到其他Pyhon知识点(写给…

Ubuntu18.04 Udacity project_9_PID_control 如何运行

工程源码和仿真器下载: 源码 仿真器 --- Ubuntu就下载 term2_sim_linux.zip 这个压缩文件即可 紧接着给方框中的文件赋可执行权限 打开project_9_PID_control文件夹 执行如下脚本,安装必要的库,比如websocket(程序生成的可执行…

springboot+vue志愿者在线报名服务管理系统java毕业设计源码+数据库

vuespringboot志愿服务管理系统 本项目是springbootvueElementuimysql源码 开发工具,idea和eclipse都可以,MySQL 源码下载地址 https://download.csdn.net/download/yibo2022/88401958?spm1003.2166.3001.6637.3https://download.csdn.net/download/yibo2022/884…

凯捷对汽车数字化的思考

标题凯捷(中国)对汽车行业数字化转型的探索 凯捷中国数字化研发团队有超过1200名专业顾问致力于数字化相关项目,分布在北京、天津、沈阳、呼和浩特、上海、昆山、杭州、广州、深圳等地,运用Rightshore交付模式和通过专业顾问为客…

Python 重要数据类型

目录 列表 序列操作 列表内置方法 列表推到式 字典 声明字典 字典基本操作 列表内置方法 字典进阶使用 字典生成式 附录 列表 在实际开发中,经常需要将一组(不只一个)数据存储起来,以便后边的代码使用。列表就是这样的…

流媒体方案之FFmepeg——实现物联网视频监控项目

目录 前言 一、FFmpeg介绍 二、FFmpeg简易理解 三、FFmpeg的重要概念 四、软硬件准备 五、移植、运行FFmpeg 六、运行FFmpeg 前言 最近想做一个安防相关的项目,所以跟着韦东山老师的视频来学习视频监控方案的相关知识,韦东山老师讲的课非常好&…

ABB YuMi协作式双臂机器人进入工厂,极大缓解劳动力短缺问题

原创 | 文 BFT机器人 日本SUS公司是一家为汽车和其他制造业提供铝框架和压铸铝部件的知名供应商,近年来,由于全球供应链面临严重中断,该公司希望能够寻找一家自动化供应商来帮助其恢复日本静冈县的产品生产。SUS公司表示,由于生产…

HarmonyOS——解决本地模拟器无法选择设备的问题

在使用deveco studio进行鸿蒙开发的时候,可能会遇到本地模拟器已经启动了,但是仍然无法选择本地模拟器中的设备,尤其在MAC环境中尤为常见。 解决办法: 先打开IDE启动本地模拟器,等模拟器启动后,退出IDE重新…

【代码】基于算术优化算法(AOA)优化参数的随机森林(RF)六分类机器学习预测算法/matlab代码

代码名称:基于算术优化算法(AOA)优化参数的随机森林(RF)六分类机器学习预测算法/matlab代码 使用算术优化算法(AOA)优化分类预测模型的参数,收敛性好,准确率提升明显&am…

Python 流程控制

目录 程序流程 顺序结构 分支结构 单分支 双分支 多分支 if 嵌套 循环结构 while循环 for 循环 退出循环 循环与分支嵌套 附录 程序流程 程序是由语句构成,而流程控制语句 是用来控制程序中每条语句执行顺序的语句。可以通过控制语句实现更丰富的逻辑…

后端项目操作数据库增删改查-使用MyBatis配置实现数据操作

一、创建一个数据表对应的实体类 在src/main/java/包名/路径下新建pojo.entity文件夹,如com.luoyang.small.pojo.entity,并在该文件夹下新增实体类java文件:如相册Album.java 该实体类的属性应与数据表的字段对应 数据表样例如下&#xff1a…

24年5月软考高项考哪些内容,考试大纲什么的?

信息系统项目管理师属于「计算机技术与软件专业技术资格(水平)考试」中的高级资格考试。 也称「软考高项」,可以「以考代评」用来评副高级职称。 一、软考备考前期准备 信息系统项目管理师考试科目包括: 《综合知识》、《案例分…

html原生echart柱状图

html原生echart柱状图 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Bar Chart Example</title><!-- Include Chart.js library --><script src"https://cdn.jsdelivr.net/npm/…