Linux编辑器vim(含vim的配置)

在这里插入图片描述

文章目录

  • 前言
  • vim的基本概念
  • vim基本操作
    • 进入vim
    • 模式切换
    • 退出vim
  • vim指令
    • vim命令模式指令
    • vim底行模式命令
  • 简单vim配置

前言

本篇文章,小编将介绍Linux编辑器–>vim以及vim的配置。

vim的基本概念

  • 正常/普通/命令模式(Normal mode)
    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
  • 插入模式(Insert mode)
    -只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
  • 底行模式(last line mode)
    文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入:help vim-modes

在这里插入图片描述

vim基本操作

进入vim

创建一个新的文件,如:text.c文件

通过指令 vim text.c即可进入vim界面

进入vim界面内你是无法进行编辑的,此时是正常模式,只有进入插入模式才可进行编辑

注意:在没有创建text.c文件的前提下,使用指令 vim text.c也是可以直接进入的。在退出的时候,如果直接退出,那么没有保存text.c文件,在当前目录下,是没有text.c文件的;如果在vim界面内保存退出,在当前目录下就可以看到text.c文件。

模式切换

刚刚说了,刚进入vim界面是无法进行编辑,处于正常模式,所有指令都是命令

  • 命令模式–>插入模式

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

在这里插入图片描述

如上图所示,按完i后,左下角会有一个-- INSERT --字样,表示已经进入插入模式,可以进行编辑。

  • 插入模式–>命令模式

按键盘左上角Esc键即可

注意:切换到命令模式都是按Esc

  • 命令模式–>底行模式

按下键盘shift+;,实际上就是:

如上图所示,有一个,表明已进入底行模式

  • 底行模式–>命令模式

按键盘左上角Esc键即可

注意:底行模式和插入模式之间无法切换

在这里插入图片描述

退出vim

vim界面有些特殊,鼠标都不起作用,那么如何退出呢?

首先进入底行模式,一下指令是退出操作:

  • : w (保存当前文件)
  • : wq (输入「wq」,存盘并退出vim)
  • : q! (输入q!,不存盘强制退出vim)

vim指令

vim命令模式指令

  • 移动光标

vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格
「G」:移动到文章的最后
「 $ 」:移动到光标所在行的“行尾”
「^」:移动到光标所在行的“行首”
「w」:光标跳到下个字的开头
「e」:光标跳到下个字的字尾
「b」:光标回到上个字的开头
「#l」:光标移到该行的第#个位置,如:5l,56l
[gg]:进入到文本开始
[shift+g]:进入文本末端
「ctrl」+「b」:屏幕往“后”移动一页
「ctrl」+「f」:屏幕往“前”移动一页
「ctrl」+「u」:屏幕往“后”移动半页
「ctrl」+「d」:屏幕往“前”移动半页

  • 删除文字
    「x」:每按一次,删除光标所在位置的一个字符
    「#x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
    「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
    「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
    「dd」:删除光标所在行
    「#dd」:从光标所在行开始删除#行

  • 复制

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」:复制#个字到缓冲区
「yy」:复制光标所在行到缓冲区。
「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

  • 替换

「r」:替换光标所在处的字符。
「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

  • 撤销上一次操作
    「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回
    复。
    「ctrl + r」: 撤销的恢复

  • 更改

「cw」:更改光标所在处的字到字尾处
「c#w」:例如,「c3w」表示更改3个字

  • 跳到指定的行

「ctrl」+「g」列出光标所在行的行号。
「#G」:例如,「15G」,表示移动光标至文章的第15行行首

vim底行模式命令

  • 列出行号
    「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。

  • 跳到文件中的某一行
    「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

  • 查找字符
    「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。
    「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。

  • 保存文件
    「w」: 在冒号输入字母「w」就可以将文件保存起来

  • 离开vim
    「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。
    「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。

简单vim配置

我们在vim下写代码,会有很多问题,如:无法自动缩进,不能补齐括号等问题,在编程中带来不便。为了解决这一问题,我们需要去配置一下我们的vim,这样才能使得vim使用起来更加方便。

配置项一般都放在用户家目录下的.vimrc文件中,.vimrc就叫做配置文件,家目录中如果没有这个文件可以自行创建一个touch .vimrc,然后可以将配置项写入.vimrc文件中。

在这里,向大家简单介绍几个常见的配置:

set nu//设置行号
syntax on//语法高亮
set showmode//底部显示当前处于什么模式
set cursorline//显示行号下划线
set shiftwidth=4//设置缩进的空格数为4
……

但是,有了这些配置依然远远不够,还需要安装插件。

下面给大家展示一下我的配置好的vim:

在这里插入图片描述
可以自动补齐,自动缩进等,和VS没什么太大差别啦

这里的自动化配置方案读者可以私信小编,小编将为大家提供。

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=m7v059zdx3bb
在这里插入图片描述

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

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

相关文章

Gin 框架之jwt 介绍与基本使用

文章目录 一.JWT 介绍二.JWT认证与session认证的区别2.1 基于session认证流程图2.2 基于jwt认证流程图 三. JWT 的构成3.1 header : 头部3.2 payload : 负载3.2.1 标准中注册的声明 (建议但不强制使用)3.2.2 公共的声明3.2.3 私有的声明3.2.4 定义一个payload 3.3 signatrue : …

【计算机网络】概述|分层体系结构|OSI参考模型|TCP/IP参考模型|网络协议、层次、接口

目录 一、思维导图 二、计算机网络概述 1.计算机网络定义、组成、功能 2.计算机网络分类 3.计算机网络发展历史 (1)计算机网络发展历史1:ARPANET->互联网 (2)计算机网络发展历史2:三级结构因特网 …

jenkins对接K8S

创建连接K8S的凭据 查看需要使用到的命名空间 [rootk8s ~]# kubectl get ns |grep arts-system arts-system Active 16d创建service accounts [rootk8s ~]# kubectl create sa jenkins-k8s -n arts-system serviceaccount/jenkins-k8s created [rootk8s ~]# kubectl…

一键批量处理,轻松为HTML文本添加所需内容

你是否曾经遇到过需要批量处理大量HTML文本的情况?是否曾经因为一个个编辑而感到繁琐和无趣?现在,这些问题都可以得到轻松解决!我们的文本批量处理工具,为你提供一站式的服务,让你告别重复繁琐的操作&#…

java eazyexcel 实现excel的动态多级联动下拉列表(2)使用MATCH+OFFSET函数

原理 同样是将数据源放到一个新建的隐藏的sheet中,第一行是第一个列表的数据,第二行是每一个有下级菜单的菜单,他下面的行就是他下级菜单的每一值使用MATCH函数从第二行找到上级菜单对应的列根据OFFSET函数从2中获取的列,取得下级…

深度学习之处理多维特征的输入

我们首先来看一个糖尿病的数据集: 在数据集中,我们称每一行叫做sample,表示一个样本,称每一列是feature,也就是特征在数据库里面这就是一个关系表,每一行叫做记录,每一列叫做字段。 每一个样本都…

2024年第一篇博客

这是2024年的第一篇博客,2023年笔者经历了一连串的生活、工作、学习上的转折和调整,跌跌撞撞时光飞逝,转眼间就踏着元旦的钟声步入了2024年,前思后想、辗转反侧、犹豫再三不知道从哪里开始博客新的篇章,这个问题坦诚说…

ARL灯塔vps云服务器安装

前提是vps服务器已经安装好docker 1、下载压缩包到本地 2、解除不能扫描edu等域名的限制 解压docker_arl.zip,打开docker_arl/config-docker.yaml文件 删除掉edu.cn等限制域名(图中已删除) 3、上传至vps云服务器 将docker_arl文件上传到云服务器opt目录下 这里我…

使用Pinctrl 和 Gpio 子系统 配置引脚

1. 关于Pinctrl 和 GPIO 子系统 1.1 Pinctrl 子系统 Pinctrl 子系统 主要负责处理SOC(System on chip )的引脚控制,现代MCU中很多引脚 都是多功能的,可以配置成不同的角色(GPIO,I2C,SPI,UART,PWM等) Pinctrl 子系统就是用来管理…

【智能家居】6、语音控制及网络控制代码实现

一、语音控制 1、指令结构体编写 这个结构体定义了一个命令输入的模型。在这个模型中,包含以下几个部分: cmdName:一个长度为128的字符串,用于存储命令名称。dvicesName:一个长度为128的字符串,用于存储设备名称。cmd:一个长度为32的字符串,用于存储具体的命令。Init:…

言传身留:NLP技术引领机器翻译革新

NLP技术引领机器翻译革新 一. 引言1.1 背景介绍1.2 目的和重要性1.2.1 NLP技术在机器翻译中的关键作用1.2.2 如何改善搜索引擎、语音助手等领域的应用 二. NLP技术在机器翻译中的应用2.1 文本理解2.1.1 情感分析2.1.2 上下文理解 2.2 语言生成2.2.1 自动生成翻译2.2.2 提高翻译…

qt初入门6:QChar和QString相关接口练习

简单了解编码: ​ latin1(ISO 8859-1)字符集是对ASCII基本字符集的扩展,都是1字节编码。 Unicode编码有多重存储方案,utf-8使用1~4字节编码,最少1字节;utf-16使用2-4字节编码,最少2字…

数据湖技术之发展现状篇

一. 大数据处理架构: 大数据处理架构的发展过程具体可以分为三个主要阶段:批处理架构、混合处理架构(Lambda、Kappa架构)、湖仓一体。首先是随着Hadoop生态相关技术的大量应用,批处理架构应运而生,借助离线…

Python在无人飞天航母

Python在无人飞天航母研发开发中发挥着重要的作用。无人飞天航母是一种未来战争装备,可以完成各种任务,包括反潜、侦查、打击、支援等。Python作为一种高级编程语言,具有以下重要性: 快速原型开发:Python具有简洁的语法…

中国新能源汽车持续跑出发展“加速度”,比亚迪迎来向上突破

2023年已经过去,对于汽车圈而言,2023年是中国车市的分水岭,在这一年,中国汽车工业70年以来首次进入全球序列,自主品牌强势霸榜,销量首次超过合资车。要知道,这是自大众于1984年进入中国市场成立…

sql server 2008 安装问题

1、sql server 2008 安装程序支持文件后安装界面就消失: 打开cmd以管理员身份运行 复制或者手动输入以下命令:secedit /configure /cfg %windir%\inf\defltbase.inf /db defltbase.sdb /verbose运行完成后,重新安装 卸载需删除注册表这几个…

【面试】测试开发面试题

帝王之气,定是你和万里江山,我都护得周全 文章目录 前言1. 网络原理get与post的区别TCP/IP各层是如何传输数据的IP头部包含哪些内容TCP头部为什么有浮动网络层协议1. 路由协议2. 路由信息3. OSPF与RIP的区别Cookie与Session,Token的区别http与…

计算方法实验1:熟悉MATLAB 环境

一、问题描述 熟悉MATLAB 环境。 二、实验目的 了解Matlab 的主要功能,熟悉Matlab 命令窗口及文件管理,Matlab 帮助系统。掌握命令行的输入及编辑,用户目录及搜索路径的配置。了解Matlab 数据的特点,熟悉Matlab 变量的命名规则&a…

Android 基础技术——m3u8格式与mp4格式的区别

笔者希望做一个系列,整理 Android 基础技术,本章是关于 m3u8格式与mp4格式的区别 m3u8是苹果公司推出的视频播放标准,是m3u的一种,只是编码格式采用的是UTF-8。 m3u8准确来说是一种索引文件,使用m3u8文件实际上是通过它…

什么是Java中的NIO?NIO与IO有什么区别?

什么是Java中的NIO?NIO与IO有什么区别? Java NIO,全称New IO,是Java 1.4版本中引入的一种新的IO处理方式。NIO与IO虽然有相同的作用和目的,但实现方式却大不相同。在传统的IO中,数据读取和写入是以字节流或…