【Linux】vim的基本操作与配置(上)

Hello everybody!今天我们要进入vim的讲解了。学会了vim,咱们就可以在Linux系统上做一些简单的编程啦!

那么废话不多说,咱们直接进入正题!

1.初识vim

vim是一款多模式的文本编辑器,可以对一个文件进行编辑操作。

它一共有三个模式:命令模式,底行模式,插入模式。

下面我将分别对这三个模式进行讲解。

2.vim基本操作

2.1三种模式的切换

首先我们先创建一个文件test.c,然后用vim打开它。

然后就来到如图所示的界面,此时默认处于命令模式,暂时无法键入信息。

如果想要键入信息,需要输入字符'i',就会从命令模式编程插入模式:

左下角变成INSERT,可以键入信息。敲ESC返回命令模式。

要从命令模式切换到底行模式,需要敲SHIFT+L右边的那个键。合起来的效果就是冒号(敲ESC退出):

此事左下角出现了一个冒号,然后敲wq可以退出vim。w的意思是保存,q的意思是退出。如果在打开vim时你没有进行任何的编辑操作,可以不用保存,直接在底行模式下敲q退出。

注意,底行模式不可以直接切换到插入模式,插入模式也不可以直接切换到底行模式。都需要切换到命令模式过渡。

3.用vim写一个简单的c语言代码

咱们的vim没有配置过,所以写代码会有些难受,不过没关系,先试着写一下!

先切换到插入模式写入代码,再切换到底行模式退出。

随后用gcc编译器编译我们刚写好的test.c文件(后缀一定要是.c,否则编译不通过)。编译完成后会产生一个a.out的可执行程序,执行该程序后就可以看到代码允许的结果啦!

4.vim基本操作

4.1set nu

在底行模式下输入set nu,可以显示行号。

4.2复制,粘贴,撤销,剪切操作

首先这些操作是在命令模式下完成的。

yy:复制光标所在行的内容。支持在yy前加数字,表示复制包括光标所在行在内的以下几行。

p:粘贴,支持在p前加数字,表示粘贴被复制内容的次数。

dd:剪切,同样支持在dd前加数字,往往与p配合使用。

u:撤销

CTRL+r:对撤销命令进行撤销。

例如:我把光标放在int那一行,敲4yy,此时左下角会出现4 lines yanked,表示4行被选中。

然后我把光标放到第4行,敲3p:

所得结果就是把我刚才复制的内容粘贴了3遍。

敲u撤销以上操作。

可是我刚撤销完就后悔了,可以敲CTRL+r来进行还原:

我在第三行敲2dd:

那么原来的第3,4行就被剪掉了,可以选择合适的位置敲p再粘贴回来。

5.光标定位

vim在没有配置的情况下不支持鼠标定位,所有的操作需要通过键盘来完成。

5.1 SHIFT+4

敲SHIFT+4光标可以迅速定位到当前行的末尾。

5.2 SHIFT+6

敲SHIFT+6,光标可以迅速定位到当前行的开头。

5.3gg

gg:迅速将光标定位到文本的最开始。

5.4SHIFT+g

SHIFT+g:迅速将光标定位到文本的结尾。

当然也支持n shift g(n为数字)。可以将光标定位到文本的第n行。

5.5 h j k l

除了上下左右键可以移动光标,h j k l键也可以移动光标,大家可以自己试一下。

当然也支持在前面加数字,和上文基本类似。

5.6 w b

w:以单词为单位进行光标后移。

b:以单词为单位进行光标前移。

6.大小写转换

在命令模式下,SHIFT按着不动,再按ESC下面的波浪号可以实现大小写转换。

例如:

第三行本来想小写的,但不小心弄成大写的了,可以通过次操作将这一行转换成小写。

7.行内局部删除

在命令模式下:

x:从光标位置向后删除一个字符;n+x:从光标位置向后删除n个字符;

shift+x:从光标位置向前删除一个字符;n+shift+x:从光标位置向前删除n个字符;

8.文本替换

在命令模式下:

方法一:

r+字符:对光标位置的字符进行替换。n+r+字符:对光标后n个位置的字符进行替换。

例如:输入3 r a,就会将前三个字符替换成a。

方法二:

shift+r:进行替换模式。

从此,每次键入的字符会对光标后面的字符逐一替换:

9.从命令模式进入插入模式的常用方法

i:光标不变,直接进入插入模式。

o:光标另起一行,进入插入模式。

a:光标向后挪动一个字符,进入插入模式。

10.总结

在这篇文章中,我已经给大家讲了大部分关于vim的操作,绝大部分是在命令模式下的。

在下一篇文章中我会把剩下的有关vim的操作讲完,并且教大家如何配置vim,让我们在vim上能够十分方便的写代码。

在学会vim后,就可以开使学习指令提权了!如果你是普通用户,安装或删除一些东西没有权限,可以将自己的指令权限提升到root。这部分的知识会在接下来的一两篇文章中讲解到位!

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

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

相关文章

分享一下 uniapp 打包安卓apk

首先需要安装 Java 环境,这里就不做解释了 第二步:打开 mac 终端 / cmd 命令行工具 使用keytool -genkey命令生成证书 keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore *testalias 是证书别名&am…

学生管理系统(javaSE第一阶段项目)

JavaSE第一阶段项目_学生管理系统 1.项目介绍 此项目是JavaSE第一阶段的项目,主要完成学生对象在数组中的增删改查,大家可以在此项目中发挥自己的想象力做完善,添加其他功能等操作,但是重点仍然是咱们前9个模块的知识点2.项目展示 2.1.添加功能 2.2.查看功能 2.3.修改功能 2…

数据库管理-第145期 最强Oracle监控EMCC深入使用-02(20240205)

数据库管理145期 2024-02-05 数据库管理-第145期 最强Oracle监控EMCC深入使用-02(20240205)1 监控方式2 度量配置3 阻塞4 DG监控总结 数据库管理-第145期 最强Oracle监控EMCC深入使用-02(20240205) 作者:胖头鱼的鱼缸&…

【C#】.net core 6.0 设置根目录下某个文件夹可访问,访问创建的图片等资源

欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。…

移动光猫gs3101超级密码及改桥接模式教程

文章目录 超级管理员账号改桥接模式路由器连接光猫,PPPOE拨号即可!附录:如果需要改桥接的话不知道拨号密码咋办打开光猫Telnet功能Telnet 登录 参考文章 移动光猫吉比特GS3101超级账号获取更改桥接 移动光猫gs3101超级密码及改桥接模式教程 …

蓝桥杯Web应用开发-CSS3 新特性【练习二:获得焦点验证】

页面上有一个姓名输入框和一个密码输入框&#xff0c;当聚焦输入框时&#xff0c;输入框的背景颜色会发生改变&#xff0c; 新建一个 index3.html 文件&#xff0c;在其中写入以下内容。 <!DOCTYPE html> <html lang"en"><head><meta charset&…

android studio下开发flutter

文章目录 1. 配置环境 https://flutter.cn/docs/get-started/install2. android studio下开发flutter 1. 配置环境 https://flutter.cn/docs/get-started/install 2. android studio下开发flutter 打开Android Studio -> File -> Settings -> Plugins 搜索Dart插件 …

如何使用websocket

如何使用websocket 之前看到过一个面试题&#xff1a;吃饭点餐的小程序里&#xff0c;同一桌的用户点餐菜单如何做到的实时同步&#xff1f; 答案就是&#xff1a;使用websocket使数据变动时服务端实时推送消息给其他用户。 最近在我们自己的项目中我也遇到了类似问题&#xf…

【浙大版《C语言程序设计实验与习题指导(第4版)》】实验7-2-7 方阵循环右移(附测试点)

本题要求编写程序&#xff0c;将给定nn方阵中的每个元素循环向右移m个位置&#xff0c;即将第0、1、⋯、n−1列变换为第n−m、n−m1、⋯、n−1、0、1、⋯、n−m−1列。 输入格式&#xff1a; 输入第一行给出两个正整数m和n&#xff08;1≤n≤6&#xff09;。接下来一共n行&am…

项目02《游戏-09-开发》Unity3D

基于 项目02《游戏-08-开发》Unity3D &#xff0c; 本次任务是做抽卡界面&#xff0c;获取的卡片增添在背包中&#xff0c;并在背包中可以删除卡片&#xff0c; 首先在Canvas下创建一个空物体&#xff0c;命名为LotteryPanel&#xff0c;作为抽卡界面&#xff0c; …

labelimg 在pycharm下载使用

labelimg 使用数据标注工具 labelimg 制作数据集 在pycharm中搜索labelimg 选择版本安装 labelimg install 使用数据标注工具制作数据集 启动 带参数启动 1、cmd cd到指定目录 2、带参数启动标注工具 左侧可以选择切换为需要的数据格式 一些快捷键 和自动保存&#xff0c…

芋道--如何新建自定义业务模块

由于自己的业务逻辑想要单独放到一个model中&#xff0c;所以这里讲讲在芋道中如何新建自定义Model。芋道官网的教程其实已经很详细了&#xff0c;这里讲一下社区版的Idea如何创建&#xff0c;同时针对一些细节做一下说明。 一、创建对应的业务模块 1&#xff09;创建对应的mod…