linux入门到精通-第三章-vi(vim)编辑器
目录
- 文本编辑器
- gedit介绍
- vi(vim)
- 命令模式
- 命令模式
- 编辑模式
- 末行模式
- 帮助教程
- 保存文件
- 切换到编辑模式
- 光标移动(命令模式下)
- 复制粘贴
- 删除
- 撤销恢复
- 保存退出
- 查找
- 替换
- 可视模式
- 替换模式
- 分屏
- 其他用法
- 配置文件
文本编辑器
gedit介绍
gedit是一个GNOME桌面环境下兼容UTF-8的文本编辑器。它使用GTK+编写而成,它十分的简单易用,有良好的语法高亮,对中文支持很好,支持包括gb2312、gbk在内的多种字符编码。gedit是一个自由软件。
这是 Linux 下的一个纯文本编辑器,但你也可以把它用来当成是一个集成开发环境 (IDE), 它会根据不同的语言高亮显现关键字和标识符。
vi(vim)
vi(Visualinterface)编辑器是 Linux 系统中最常用的文本编辑器,vi在linux界有编辑器之神的没有,几乎所有Linux 发行版中都包含 vi 程序。
vi 工作在字符模式下,不需要图形界面,非常适合远程及嵌入式工作,是效率很高的文本编辑器,尽管在 Linux上也有很多图形界面的编辑器可用,但是vi的功能实那些图形编辑器所无法比拟的。
vim是vi的升级版,它不仅兼容 vi的所有指令,而且还有一些新的特性,例如vim 可以撤消无限次、支持关键词自动完成、可以用不同的颜色来高亮你的代码。vim普遍被推崇为类vi 编辑器中最好的一个。
命令模式
命令模式
任何时候,不管用户处于何种模式,只要按一下ESC键,即可使vi进入命令模式。我们在shell环境(提示符为$)下输入启动vim命令,进入编辑器时,也是处于该模式下。
在命令模式下,用户可以输入各种合法的vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的vi命令,则vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是vi的合法命令,vi会响铃报警。
编辑模式
在命令模式下输入插入命令i (I) 、附加命令a (A) 、打开命令o(O) 、替换命s (S)都可以进入文本输入模式,此时vi窗口的最后一行会显示“插入”。
末行模式
末行模式下,用户可以对文件进行一些附加处理,尽管命令模式下的命令可以完成很多功能,但要执行一些如字符串查找、替换、显示行号等操作还是必须要进入末模式的。
在命令模式下,输入冒号即可进入末行模式。此时vi窗口的状态会显示出冒号,等待用户输入命令。用户输入完成后,按回车执行,之后vi编辑器又自动返回到命令模式下。
帮助教程
vimtutor
保存文件
一定要先退出插入模式(按ES进入命令模式),然后(小写状态下),shift +zz (按住“shift”+ 按两下“z”键),或者(大写状态下: Zz) 即可保存退出当前文件
第一步: 进入命令模式(ESC)
第二步: shifit+zz
切换到编辑模式
按键 | 功能 |
---|---|
i | 光标位置当前处插入文字 |
l | 光标所在行首插入文字 |
o(字母) | 光标下一行插入文字(新行) |
O(字母) | 光标上一行插入文字(新行) |
a | 光标位置右边插入文字 |
A | 光标所在行尾插入文字 |
s | 删除光标后边的字符,从光标当前位置插入 |
S | 删除光标所在当前行,从行首插入 |
光标移动(命令模式下)
按键 | 功能 |
---|---|
Ctrl + f | 向前滚动一个屏幕 |
Ctrl + b | 向后滚动一个屏幕 |
gg | 到文件第一行行首 |
G(大写) | 到文件最后一行行首,G必须为大写 |
mG或mgg | 到指定行,m为目标行数 |
0(数字) | 光标移到到行首(第一个字符位置) |
$ | 光标移到到行尾 |
I(小写L) | 向右移动光标 |
h | 向左移动光标 |
k | 向上移动光标 |
j | 向下移动光标 |
^ | 光标移到到行首(第一个有效字符位置) |
复制粘贴
按键 | 功能 |
---|---|
[n]yy | 复制从当前行开始的 n 行 |
p | 把粘贴板上的内容插入到当前行 |
删除
按键 | 功能 |
---|---|
[n]x | 删除光标后 n 个字符 |
[n]X | 删除光标前n个字符 |
D | |
[n]dd | 删除从当前行开始的n行(准确来讲,是剪切,剪切不粘贴即为删除) |
dG | 删除光标所在开始到文件尾的所有字符 |
dw | 删除光标开始位置的字,包含光标所在字符 |
d0(0为数字) | 删除光标前本行所有内容,不包含光标所在字符 |
dgg | 删除光标所在开始到文件首行第一个字符开始的所有字符 |
撤销恢复
按键 | 功能 |
---|---|
.(点) | 执行上一次操作 |
u | 撤销前一个命令 |
ctrl+r | 反撤销 |
100 + . | 执行上一次果作100次 |
保存退出
按键 | 功能 |
---|---|
ZZ(shift+z+z) | 保存退出 |
查找
按键 | 功能 |
---|---|
/字符串 | 从当前光标位置向下查找 (n,N查找内容切换) |
?字符串 | 从当前光标位置向上查找 (n,N查找内容切换) |
替换
按键 | 功能 |
---|---|
r | 替换当前字符 |
R | 替换当前行光标后的字符(ESC退出替换模式) |
可视模式
按键 | 功能 |
---|---|
v | 按字符移动,选中文本,可配合h、i、k、l选择内容,使用d删除,使用y复制 |
Shift +v | 行选 (以行为单位)选中文本,可配合h、i、k、l选择内容,使用d删除,使用y复制 |
Ctrl+v | 列选选中文本,可配合h、i、k、l选择内容,使用d删除,使用v复制 |
替换模式
分屏
其他用法
配置文件
相关文章:
linux入门到精通-第三章-vi(vim)编辑器
目录 文本编辑器gedit介绍vi(vim)命令模式命令模式编辑模式末行模式 帮助教程保存文件切换到编辑模式光标移动(命令模式下)复制粘贴删除撤销恢复保存退出查找替换可视模式替换模式分屏其他用法配置文件 文本编辑器 gedit介绍 gedit是一个GNOME桌面环境下兼容UTF-8的文本编辑器…...
Mybatis面试题(三)
文章目录 前言一、Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之外,还有哪些标签?二、当实体类中的属性名和表中的字段名不一样,如果将查询的结果封装到指定 pojo?三、模糊查询 like 语句该怎么写四、…...
Qt扩展-KDDockWidgets 简介及配置
Qt扩展-KDDockWidgets 简介及配置] 一、概述二、编译 KDDockWidgets 库1. Cmake Gui 中选择源文件和编译后的路径2. 点击Config,配置好编译器3. 点击Generate4. 在存放编译的文件夹输入如下命令开始编译 三、qmake 配置 一、概述 kdockwidgets是一个由KDAB组织编写…...
Vue3搭配Element Plus 实现候选搜索框效果
直接上代码 <el-col :span"14" class"ipt-col"><el-input v-model"projectName" class"w-50 m-2" input"inputChange" focus"inputFocusFn" blur"inputBlurFn" placeholder"请输入项目名…...
进程间的通信方式
文章目录 1.简单介绍2.管道2.1管道的基础概念**管道读写规则**:**管道特点** 2.2匿名管道匿名管道父子进程间通信的经典案例: 2.3命名管道基本概念:命名管道的创建:命名管道的打开规则:匿名管道与普通管道的区别**例子:用命名管道…...
分类预测 | Matlab实现基于MIC-BP-Adaboost最大互信息系数数据特征选择算法结合Adaboost-BP神经网络的数据分类预测
分类预测 | Matlab实现基于MIC-BP-Adaboost最大互信息系数数据特征选择算法结合Adaboost-BP神经网络的数据分类预测 目录 分类预测 | Matlab实现基于MIC-BP-Adaboost最大互信息系数数据特征选择算法结合Adaboost-BP神经网络的数据分类预测效果一览基本介绍研究内容程序设计参考…...
phpcms v9对联广告关闭左侧广告
修改目录“\caches\poster_js”下的文件“53.js”,修改函数“showADContent()” 将代码: str "<div idPCMSAD_"this.PosID"_"i" style"align_b":"x"px;top:"y"px;width:"this.Width&…...
7.2.4 【MySQL】匹配范围值
回头看我们 idx_name_birthday_phone_number 索引的 B 树示意图,所有记录都是按照索引列的值从小到大的顺序排好序的,所以这极大的方便我们查找索引列的值在某个范围内的记录。比方说下边这个查询语句: SELECT * FROM person_info WHERE nam…...
1400*C. No Prime Differences(找规律数学)
解析: 由于 1 不是质数,所以我们令每一行的数都相差 1 对于行间,分为 n、m之中有存在偶数和都为奇数两种情况。 如果n、m存在偶数,假设m为偶数。 如果都为奇数,则: #include<bits/stdc.h> using name…...
Python基础之装饰器
文章目录 1 装饰器1.1 定义1.2 使用示例1.2.1 使用类中实例装饰器1.2.2 使用类方法装饰器1.2.3 使用类中静态装饰器1.2.4 使用类中普通装饰器 1.3 内部装饰器1.3.1 property 2 常用装饰器2.1 timer:测量执行时间2.2 memoize:缓存结果2.3 validate_input:数据验证2.4 log_result…...
IDEA设置Maven 镜像
第一步:右键项目,选择Maven->Create ‘settings.xml’ 已经存在的话是Open ‘settings.xml’: 第二步:在settings.xml文件中增加阿里云镜像地址,代码如下: <?xml version"1.0" encodin…...
项目评定等级L1、L2、L3、L4
软件项目评定等级的数量可以因不同的评定体系和标准而异。一般情况下,项目评定等级通常按照项目的规模、复杂性和风险等因素来划分,可以有多个等级,常见的包括: L1(Level 1):通常表示较小规模、…...
一个基于SpringBoot+Vue前后端分离学生宿舍管理系统详细设计实现
博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…...
工作相关----《配置bond》
进入到/etc/sysconfig/network-scripts,按照要求配置主备关系 vim ifcfg-bond0,编写主要内容如下: /*mode1 表示主备份策略,miimon100 系统每100毫秒监测一次链路连接状态, 如果有一条线路不通就转入另一条线路*/ BOND…...
Nacos、ZooKeeper和Dubbo的区别
Nacos、ZooKeeper和Dubbo是三个不同的分布式系统组件,它们之间有以下几点区别: 功能定位:Nacos主要提供服务发现、配置管理和服务治理等功能,而ZooKeeper主要是分布式协调服务,提供了分布式锁、分布式队列等原语&#…...
刷一下算法
记录下自己的思路与能理解的解法,可能并不是最优解法,不定期持续更新~ 1.盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容…...
three.js——GUI的使用
GUI的使用 效果图1、导入gui2、创建一个GUI对象3、通过gui调用方法 name:按钮的名称 效果图 1、导入gui // 导入ligui import { GUI } from three/examples/jsm/libs/lil-gui.module.min.js2、创建一个GUI对象 const gui new GUI()3、通过gui调用方法 name:按钮的名称 // 创…...
LeetCode 332. Reconstruct Itinerary【欧拉回路,通路,DFS】困难
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...
236. 二叉树的最近公共祖先 Python
文章目录 一、题目描述示例 1示例 2示例 3 二、代码三、解题思路 一、题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满…...
WPF中DataGrid控件绑定数据源
步骤 创建数据源:首先,我们需要创建一个数据源,可以是一个集合(如List、ObservableCollection等),也可以是一个DataTable对象。数据源中的每个元素代表一行数据。 设置DataGrid的ItemsSource属性ÿ…...
Linux arm64 set_memory_ro/rw函数
文章目录 一、函数简介1.1 简介1.2 change_memory_common1.3 __change_memory_common 二、apply_to_page_range函数2.1 apply_to_page_range2.2 apply_to_p4d_range2.3 apply_to_pud_range2.4 apply_to_pmd_range2.5 apply_to_pte_range 三、hook系统调用参考资料 一、函数简介…...
安达发|APS排单软件中甘特图的应用
近几年来,企业对生产效率和管理水平的要求越来越高。为了提高生产效率,降低生产成本,许多企业开始引入先进的生产计划与调度系统(APS),实现生产过程的自动化、智能化管理。APS排产软件是一种能够根据企业的…...
快速上手Linux基础开发工具
目录 软件包管理器 概念理解 用法示例 - 以yum为例 vim 模式的切换 常用操作 插件和配置 gcc/g gdb make / makefile 软件包管理器 概念理解 在Linux下安装软件的话,一个比较原始的办法是下载程序的源代码,然后进行编译,进而得到…...
【开发工具】idea 的全局搜索快捷键(Ctrl+shift+F)失效
文章目录 前言1. 取消 输入法的快捷键(推荐使用)2.更改 idea的快捷键3. 热键占用总结 前言 当你发现在idea 中看到用于全局搜索的快捷键就是 CtrlshiftF,可是怎么按都不管用的时候,你就不要再执着于自己的操作继续狂点电脑按键了…...
港联证券:“火箭蛋”来袭 蛋价涨势能否延续?
上个交易周(9月11日至15日),鸡蛋期货商场呈现了意想不到的涨势。9月15日,鸡蛋期货多个合约大涨,其中2310合约涨超5.6%,主力合约2311盘中两度触及涨停,最终收涨6%。业内人士以为,鸡蛋…...
Vue3_vite
使用Vue-cli创建 使用vite创建 Composition API 组合API setup 1.Vue3中的一个新的配置项,值为一个函数 2.可以将组件中所用到的数据,方法等配置在setup中. 3.setup函数的两种返回值 3.1若返回一个对象,则对象中的属性,方法,在模板中均可以直接使用. 3.2若返回一个渲染函数…...
python-字符串去掉空格的常见方法
python提供了去掉字符串空格的方法,可以满足大部分需求。 但在实际应用中,还需要灵活借助python其他方法,来实现字符串空格的删除。 比如,去掉字符串的全部空格、字符串连续空格保留一个等,都需要结合其他的方法来实现…...
如何写出一个成熟的线上线下结合的营销方案?
分享一下咱们案例库里策划的一个线上线下结合的活动的案例。 这个活动是为了推广一个新品牌,增加品牌知名度和用户粘性。 你可以根据以下几个要点来进行活动策划: 1、目标: 让目标用户了解并喜欢新品牌,激发用户参与和分享&am…...
Vc - Qt - “扩张“的窗口
该示例演示了一个"扩张的窗口",主窗口的布局为水平布局,内置两个子窗口,采用定时器设置左边窗口的宽度,达到控制"扩张"的目的。 #include <QApplication> #include <QWidget> #include <QHBox…...
vue学习-02vue入门之组件
删除Vue-cli预设 在用户根目录下(C:\Users\你的用户名)这个地址里有一个.vuerc 文件,修改或删除配置 组件 Props(组件之间的数据传递) Prop 的大小写 (camelCase vs kebab-case)不敏感Prop 类型: String Number Boolean Array Object Date Function Symbol传递静态或动态 Pr…...
做网站难还是app难/知名的搜索引擎优化
卫星各个波段的说明及用途(C/Ku/Ka/S/L) 波段说明c波段4.0-8.0GHz,用于通信卫星下行传输信号,大口径天线接收信号,雨衰小ku波段10.7-18.1GHz,接收天线效率更高,小口径天线接收信号,雨衰大,成本…...
兰州做家教去哪个网站比较好/网络推广渠道
职场的新人做事要有自己的原则,那么职场新人如何把握原则呢?一起来和小编看看吧。尊重原则:职场新人新到职场遭到“欺生”很常见,如果掌握了处事技巧这就没问题了,小峰在佛山觅得一份新的文案策划职位,新公…...
汽车城网站建设方案/下载百度 安装
转载于:https://blog.51cto.com/1101837/2087926...
企业网站推广的收获与启示/软件培训
as3 flash和android java类似,都是加一个一个的监听器,然后在回调函数里面处理事务win32的开发,是直接去扫描句柄信号做判断,as3 还有android java,相当于对句柄写好了可以录入函数的接口,等待你录入回调函…...
重庆丰都建设局网站/360开户推广
转自:https://sherlockliao.github.io/2017/05/01/git/ 平时使用git老是要去查找用法,十分不方便,于是决定写一篇文章记录一下git里面常用的命令,持续更新。 git init 将目录变成git repository git add readme.txt 添加readme.t…...
wordpress主题 免费 cms/软件外包公司排行榜
Gitlab 使用总结 总体来说Gitlab是一个很不好理解的代码版本工具,但是为了工作更高效还是把它疏通了一遍,至于怎么注册Gitlab和配置ssh密匙这个就不多赘述了,网上教程很多,可自行Google。 一,Gitlab的三区和两个概念G…...