【Linux】vim 使用

news2024/11/25 5:33:39

目录

一,vim 与 vi 

1,vim 的基本概念

二,vim 的基本操作

三,vim 正常模式命令集

1,插入模式

2,从插入模式或者底行模式切换为命令模式

3,移动光标

4,删除文字

5,复制

6,替换

7,撤销上一次操作

8,更改

9,跳至指定的行

四,vim 末行模式命令集

1,列出行号

2,跳到文件中的某一行

3,查找字符

4,保存文件

5,离开 vim

五,vim 操作总结

1,三种模式

2,vim 操作

六,简单 vim 配置

1,配置文件的位置

2,常用配置选项,用来测试


一,vim 与 vi 

vi / vim 的区别简单点来说,它们都是多模式编辑器,不同的是 vim 是 vi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于 x window、 mac os、 windows。

1,vim 的基本概念

vim 的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

正常/普通/命令模式(Normal mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入 Insert mode下,或者到 last line mode

插入模式 (Insert mode)

只有在 Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。

末行模式 (last line mode)

文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开 vim,底行模式直接输入:help vim-modes

二,vim 的基本操作

进入vim,在系统提示符号输入 vim 及文件名称后,就进入 vim 全屏幕编辑画面:

不过有一点要特别注意,就是你进入 vim 之后,是处于 [正常模式],你要切换到 [插入模式] 才能够输入文字。

[正常模式]切换至[插入模式]

输入 a

输入 i

输入 o

以上按键都可以,区别不大,一般使用 i ;

[插入模式] 切换至 [正常模式]

目前处于 [插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到 [正常模式] 再删除文字。当然,也可以直接删除

[正常模式] 切换至 [末行模式]

「shift + ;」, 其实就是输入「:」

退出 vim 及保存文件,在 [正常模式]下,按一下「:」冒号键进入「Last line mode」,例如:

w ( 保存当前文件 )

wq ( 输入「wq」,存盘并退出vim )

q! ( 输入q!,不存盘强制退出 vim )

在底行模式下直接回车即可退出;

三,vim 正常模式命令集

1,插入模式

按「i」切换进入插入模式「insert mode」,按 “i” 进入插入模式后是从光标当前位置开始输入文件;

按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;

按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

2,从插入模式或者底行模式切换为命令模式

按「ESC」键。

3,移动光标

vim 可以直接用键盘上的光标来上下左右移动,但正规的 vim 是用小写英文字母「h ] ,「j」、「k」、 「l」,分别控制光标 左、下、上、右 移一格

按「G」: 移动到文章的最后

按「 $ 」:移动到光标所在行的“行尾”

按「^」:移动到光标所在行的“行首”

按「w」:光标跳到下个字的开头

按「e」:光标跳到下个字的字尾

按「#l」:光标移到该行的第 # 个位置,如:5l,56l

按[gg]:进入到文本开始

按「ctrl」+「b」:屏幕往“后”移动一页

按「ctrl」+「f」:屏幕往“前”移动一页

按「ctrl」+「u」:屏幕往“后”移动半页

按「ctrl」+「d」:屏幕往“前”移动半页

4,删除文字

「x」:每按一次,删除光标所在位置的一个字符

「#x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符

「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符

「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符

「dd」:删除光标所在行

「#dd」:从光标所在行开始删除#行

5,复制

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。

「#yw」:复制#个字到缓冲区

「yy」:复制光标所在行到缓冲区。

「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。

「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须                     与  “p” 配合才能完 成复制与粘贴功能。

6,替换

「r」:替换光标所在处的字符。

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

7,撤销上一次操作

「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执               行多次回复。

「ctrl + r」: 撤销的恢复

8,更改

「cw」:更改光标所在处的字到字尾处

「c#w」:例如,「c3w」表示更改3个字

9,跳至指定的行

「ctrl」+「g」列出光标所在行的行号。

「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

四,vim 末行模式命令集

在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式。

1,列出行号

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

2,跳到文件中的某一行

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

3,查找字符

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

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

4,保存文件

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

5,离开 vim

「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。

「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。

五,vim 操作总结

1,三种模式

正常模式

插入模式

底行模式

2,vim 操作

打开,关闭,查看,查询,插入,删除,替换,撤销,复制等等操作。

六,简单 vim 配置

1,配置文件的位置

在目录 /etc/ 下面,有个名为 vimrc 的文件,这是系统中公共的 vim 配置文件,对所有用户都有效。

而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root 目录下, 通常已经存在一个 .vimrc 文件,如果不存在,则创建之。

切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~

打开自己目录下的 .vimrc文件,执行 vim .vimrc

在当前主目录下能找到;

2,常用配置选项,用来测试

设置语法高亮: syntax on

显示行号: set nu

设置缩进的空格数为4: set shiftwidth=4

3,自动一键配置

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

以上的用普通账号操作;

直接一步到位;

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

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

相关文章

Mitsuba 3多视角渲染简明教程

Mitsuba 3 是一款面向研究的渲染系统,用于正向和反向光传输模拟。 它由一小组核心库和各种插件组成,这些插件实现从材质和光源到完整渲染算法的功能。 Mitsuba 3 努力保持与其前身 Mitsuba 0.6 和 Mitsuba 2 的场景兼容性。然而,在大多数其他…

CSS实现元素显示与隐藏的方式整理

目录 前言 一、display属性 二、visibility属性 三、opacity属性 四、height和width属性 前言 在CSS中,有多种方法可以用来控制元素的显示和隐藏。这些方法主要包括:display, visibility, opacity 和 width/height。理解这些属性的区别、使用场景以…

阿里云2核2G经济型e实例ecs.e-c1m1.large性能测评

阿里云服务器ECS经济型e实例2核2G配置规格ecs.e-c1m1.large,CPU采用Intel Xeon Platinum架构处理器,e系列云服务器是阿里云面向个人开发者、学生、小微企业,在中小型网站建设、开发测试、轻量级应用等场景推出的全新入门级云服务器。目前云服…

施耐德电气远程 Pro-face Win 版远程 HMI 客户端

施耐德电气远程桌面 Pro-face Remote HMI Client for Win 是 Pro-face Remote HMI 应用程序的 Windows 桌面应用程序。它可以从一台 PC 远程查看多个 HMI RT 屏幕。 Pro-face Win 版远程 HMI 客户端 - 功能 特征 多显示器模式 一台 PC 屏幕上最多可显示 6 个屏幕。 支持全屏模…

GaussDB SQL基础语法示例-数组表达式

目录 一、前言 二、条件表达式的概念及GaussDB中的常见的数组表达式 三、GaussDB中常用的数组表达式(语法 示例) 1、expression IN (value [, ...]) 2、expression NOT IN (value [, ...]) 3、expression operator ANY/ SOME (array expression) …

c语言基础:L1-070 吃火锅

以上图片来自微信朋友圈:这种天气你有什么破事打电话给我基本没用。但是如果你说“吃火锅”,那就厉害了,我们的故事就开始了。 本题要求你实现一个程序,自动检查你朋友给你发来的信息里有没有 chi1 huo3 guo1。 输入格式&#x…

HT5010 音频转换器工作原理

HT5010是一款低成B的立体声DA转换器,内部集成了内插滤波器、DA转换器和输出模拟滤波等电路。其可支持多种音频数字输入格式,支持24-bit字节。 该HT5010 基于一个多比特位的Δ-Σ调制器,将数字信号转化成两个声道的模拟信号并经过模拟滤波器滤…

创建ABAP数据库表和ABAP字典对象-创建表01

创建表 创建表在你的Package包中 选择(右键单击)包并从上下文菜单中选择New > Other ABAP Repository Object: 2.输入过滤器文本表>数据库表,然后选择Next。 3.输入一个名称,例如ZTRAINING_XXX(一般是具体的项目描述XXX),然后选择Nex…

Go 内存逃逸

内存逃逸(memory escape)是指在编写 Go 代码时,某些变量或数据的生命周期超出了其原始作用域的情况。当变量逃逸到函数外部或持续存在于堆上时,会导致内存分配的开销,从而对程序的性能产生负面影响。Go 编译器会进行逃…

2023年免费CRM软件盘点:14款热门工具全面比较(含开源)

在初创企业或小型企业阶段,特别是在预算有限且客户管理需求较为基础的情境下,使用免费的CRM系统通常是一个理智的选择。这类系统虽然在功能上可能不如付费版本丰富,但基本的客户信息管理、销售跟踪和沟通记录等核心功能通常都能满足需求。 对…

某全球头部ICT公司:全球多个交付中心实现安全的内外网文件交换

全球领先的ICT基础设施和智能终端提供商 H科技公司是全球领先的ICT基础设施和智能终端提供商,致力于为客户创造价值、保障网络安全稳定运行、推动产业良性发展。H科技公司聚焦全联接网络、智能计算、创新终端等领域,在产品、技术、基础研究、工程能力等…

私域流量的完美进阶:从加粉撩客到入站营销

要么写一些值得让大家看的东西,要么做一些值得让大家写的事情。 ——本富兰克林 对普罗大众来说,私域最初的印象要追溯到社交电商兴起之时。 2011年左右,微信的出现,带火了社交电商家族非常重要的成员——微商。让无数本来机会很…

折纸达珠峰高度(forwhile循环、闭包函数循环)

对折0.1mm厚度的纸张多少次,高度可达珠峰高度8848180mm。 (本笔记适合熟悉循环和列表的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅…

通过netstat命令查看Linux的端口占用

一、netstat 完整写作network statistics,简写为netstat ,常用的几个参数为l、n、t、u、p。 -l : 仅展示监听状态下的程序(state 为LISTEN)。 -n :会使用ip端口的方式,来进行地址的描述。不使用-n就会变成服务器的名称…

MySql优化经验分享

一条sql的具体执行过程 连接 我们怎么查看MySQL当前有多少个连接? 可以用show status命令,模糊匹配Thread, Show global status like "Thread%" show global variables like wait timeout;—非交互式超时时间,如JDBC…

HDFS集群环境部署(超级详细!!)

一、部署Hadoop的关键点 1.上传,解压到/export/server,配置软链接 2.修改4个配置文件,workers,hadoop.env.sh,core-stie.xml,hdfs-site.xml 3.SCP分发到root2,root3,并设置环境变量 4.创建数据目录,并修改文…

基于springboot实现游戏分享网站系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现游戏分享网站演示 摘要 网络的广泛应用给生活带来了十分的便利。所以把游戏分享管理与现在网络相结合,利用java技术建设游戏分享网站,实现游戏分享的信息化。则对于进一步提高游戏分享管理发展,丰富游戏分享管理经验能起到…

PHP短网址短链接生成源码/长链接在线缩短源码/支持黑夜模式

源码简介: PHP短网址短链接生成源码,长链接在线缩短源码,它支持黑夜模式,反应灵敏的设计,优雅简洁的界面,大方简约。PHP源码,强大的短网址生成源码。 简洁、优雅、反应灵敏的设计。创建URL、创…

分库分表分区

分库分表分区 数据库分库、分表和分区是水平切分数据库的策略,有助于提高数据库性能、可伸缩性和负载均衡。 概念 **分库:**将一个库的数据拆分到多个相同的库中,访问的时候访问一个库。**分表:**把一个表的数据放到多个表中&a…

【数智化案例展】拜耳虫虫拜拜——全渠道倾听客户声音,持续指引产品改善与服务升级...

‍ 光速斑马案例 本项目案例由光速斑马投递并参与数据猿与上海大数据联盟联合推出的《2023中国数智化转型升级创新服务企业》榜单/奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 虫虫拜拜是拜耳集团成立的上门除虫服务品牌,创立初衷是通过专业科学的…