历史上的今天
返回首页

历史上的今天

今天是:2025年03月17日(星期一)

正在发生

2020年03月17日 | 第004课 vi编辑器的使用详解

2020-03-17 来源:eefocus

vi编辑器1:一个编辑器具备的功能

一个编辑器(例如Windows中的记事本)具备的功能:


打开文件、新建文件、保存文件

光标移动

文本编辑

(多行间|多列间)复制、粘贴、删除

查找和替换

vi编辑器2:vi编辑器的环境设置

为了更方便的使用vi编辑器,我们需要先对vi编辑器进行一些配置。打开虚拟机终端,输入以下命令:


cd  /etc/vim     //进入vi配置文件目录

cp  vimrc  ~/.vimrc //复制配置文件到我们自己的家目录(这样配置文件只会对我们自己有效,不会影响其它用户)

cd  ~         //进入到家目录

gedit  .vimrc    //使用gedit编辑器编辑.vimrc配置文件


在.vimrc中加入如下内容:


"关闭兼容功能

set nocompatible 

"显示行号

set number

"编辑时 backspace 键设置为2个空格

set backspace=2

"编辑时 tab 键设置为4个空格

set tabstop=4

"设置自动对齐为4个空格

set shiftwidth=4

"搜索时不区分大小写

set ignorecase

"搜索时高亮显示

set hlsearch


保存,退出。


vi编辑器3:vi编辑器的三种模式__模式间相互切换

vi编辑器有三种模式,各个模式侧重点不一样。


一般模式 (光标移动、复制、粘贴、删除)

编辑模式(编辑文本) 

这里写图片描述

注意:


当不知道处于何种模式时,按ESC键返回到一般模式。

ccwq(write quit)

i(insert)

vi编辑器4:文件的打开新建保存

1.打开文件、新建文件、保存文件


vi 文件名


如果文件存在,输入结束后,:wq保存并退出文件

如果文件不存在,输入结束后,:wq就可以新建并保存文件

在编辑完成时,返回一般模式,


输入:w则保存文件,如果已经保存文件,输入:q则退出文件

直接输入:wq保存并退出

如果不想保存被修改的内容,则:q!强制退出。


2.进入编辑模式


在一般模式输入:


i(在光标前开始插入文本)


a(在光标后开始插入文本)


o(在当前行之下新开一行,并到行首)


vi编辑器5:如何使vi快速移动光标__vi的难点


3.光标移动 

在一般模式下,hjkl这四个按键就可以移动光标 

h (左) 

j (下) 

k (上) 

l (右)


1)快速的定位到某一行:


文件头、文件尾、指定某一行

ngg  //光标移至第n行的行首(n为数字,想要跳转的行),

1gg  //就跳到第一行的行首,就是文件头

2gg  //就跳到第二行的行首

G   //转至文件结尾


注意:ngg和G是在一般模式


2)在某一行如何快速定位到某一列:


0  //(数字零)光标移至当前行行首 

$  //光标移至当前行行末 

fx //搜索当前行中下一个出现字母x的地方


注意:0、$、fx是在一般模式


vi的难点:


vi操作之前,先判断一下当前是哪一种模式,再看光标所在位置。 

当你不知道处于何种模式时,使用esc键返回到一般模式。 

再看光标,难点在于移动光标,可以做到快速切换到某一行某一列。


vi编辑器6:文本复制粘贴删除撤销_百问网独家记忆方法


4.文本复制、粘贴、删除、撤销


复制 

yy  //复制当前行(y:yank(复制)) 

nyy  //复制当前行及其后的n*1行(n是数字)


粘贴


p   //粘贴(p:paste)


删除


dd  //删除光标所在行(d:delete) 

ndd  //删除当前行及其后的n*1行(n是数字) 

x   //删除光标所在位置的字符


撤销


u   //撤销上一步操作


注意: 

yy/nyy/dd/ndd/x/u都是在一般模式。


vi编辑器7:文本查找和替换__百问网独家记忆方法


5.查找和替换


查找 

/pattern  //从光标开始处向文件尾搜索pattern,后按下n或N

注意: 

n在同一个方向重复上一次搜索命令 

N在反方向重复上一次搜索命令 

n(N)来源于next


注意: 

在/pattern之前先跳到第一行则进行全文件搜索。


替换

 :%s/p1/p2/g  //将文件中所有的p1均用p2替换

 :%s/p1/p2/gc  //替换时需要确认


 s :substitute替换

 g :global全局

 c :confirm确认


vi编辑器8:vi难点回顾__实例演示2

vi的难点:


1)vi操作之前,先判断一下当前是哪一种模式,再看光标所在位置。 

2) 当你不知道处于何种模式时,使用esc键返回到一般模式。 

3) 再看光标,难点在于移动光标,可以做到快速切换到某一行某一列。


vi编辑器有三种模式及各模式常用操作


1)一般模式(光标移动、复制、粘贴、删除、撤销)


   hjkl、ngg/G、0、$、fx

   yy/nyy

   p

   dd/ndd、x

   u


2)编辑模式(编辑文本)


i a o


3)命令行模式(查找和替换、保存退出文件)


/pattern、:%s/p1/p2/gc、:wq


举例:


用vi 新建一个文件test2.txt,然后输入”welaome to the world of vi.”,并保存。

由于拼写错误,需要将其中的welaome中的a替换成c。

在上步的基础上,复制第一行到第二行和第三行。

在上步的基础上,删除第三行的全部内容。

在上步的基础上,搜索出现vi的地方。

在上步的基础上,将字符串vi替换成vim。

保存并退出。

推荐阅读

史海拾趣

益升华(Essentra)公司的发展小趣事

益升华(Essentra)公司深知客户是企业发展的基石。因此,公司始终将客户服务放在首位,致力于为客户提供优质的产品和服务。公司建立了完善的客户服务体系,为客户提供从产品咨询、选购、安装到售后维护的全流程服务。同时,公司还积极开展客户回访和满意度调查活动,及时了解客户需求和反馈意见,不断改进产品和服务质量。这些努力使益升华(Essentra)公司赢得了客户的广泛赞誉和信任。

台湾町洋(dinkle)公司的发展小趣事

町洋公司创立于1983年,由一群志同道合的电子工程师创立。创业初期,町洋专注于接线端子及相关产品的研发与生产,凭借其独特的设计理念和精湛的生产工艺,逐渐在台湾市场上崭露头角。公司创始人深知产品质量的重要性,因此始终坚持严格的品质控制,赢得了客户的信赖。

Everbuild公司的发展小趣事

随着公司的逐步发展,Everbuild开始注重技术研发和品牌建设。公司投入大量资金引进先进的生产设备和技术人才,不断推出具有创新性的电子产品。其中,一款高性能的智能手机处理器在市场上引起了热烈反响,成为公司的明星产品。同时,Everbuild还加强了品牌宣传和推广,提高了品牌的知名度和美誉度。

Cedrat Technologies公司的发展小趣事

在电子行业中,合作与共赢是企业发展的重要途径。Cedrat Technologies积极与产业链上下游企业建立紧密的合作关系,共同推动电子行业的发展。通过与合作伙伴的协同创新和技术交流,Cedrat Technologies不仅拓展了自身的业务范围,也提升了在行业内的影响力和竞争力。

Aborn Electronics Inc公司的发展小趣事

随着产品线的不断丰富和技术实力的不断提升,Aborn Electronics开始积极寻求市场拓展。公司先后在国内外多个地区设立了销售网点和分支机构,并通过参加各类行业展会和论坛,加强与其他企业的交流与合作。同时,Aborn Electronics注重品牌建设,通过提升产品质量和服务水平,逐渐树立起了良好的企业形象和口碑。

辰颐电子公司的发展小趣事

辰颐电子公司成立于XXXX年,由一群热衷于电子技术的年轻人共同创立。他们看到了电子行业巨大的市场潜力和技术革新的重要性,决定投身于这一领域。初创时期,公司面临着资金短缺、技术瓶颈和市场竞争等多重挑战。然而,他们凭借对技术的执着追求和对市场的敏锐洞察,成功研发出了一款具有创新性的电子产品,并迅速在市场上打开了局面。

问答坊 | AI 解惑

如何实现单片机对多个步进电机的控制?

请教各位高手,如何实现单片机对多个步进电机的控制?只要能控制什么方法都行,谢谢各位!   我想用一个或多个单片机(几个单片机在一个电路板上)带动8个步进电机。我想通过电脑传给电路板8组数据,每组数据控制一个电机的正反转以及转数, ...…

查看全部问答>

wince编程文件打开问题

从一个listbox中获得文件名,然后想直接打开这个txt文件(不需要文件打开对话框),请问怎么实现,ShellExecute函数是不行的。。。请指教 …

查看全部问答>

高分跪请高手指教!关于无线网卡驱动的几个问题。

我最近参与了一个嵌入式系统开发的项目,该系统所用的DSP为Philips的TM1300,操作系统为pSOS嵌入式系统.我的主要工作是在WLAN下进行无线网卡驱动开发,我们所用的无线网卡型号为KN-W510P,网卡的MAC芯片为RTL8185,射频芯片为RTL8225,我移植开源代 ...…

查看全部问答>

S

Symbian正式进军中国市场啦!!! Symbian中国研发中心硬件设施已经建成,由于负责人均为英国总公司人员,现委托其正式合作伙伴Symbio中国研发中心协助招募开发测试工程师。 工作地点:北京中关村 Junior& Senior Tester 主要职责是编写code进 ...…

查看全部问答>

PDA里datagrid提供可编辑功能

在PDA里如何实现datagrid可直接编辑功能,MSDN上说不行,有没有其他的办法,或是用其他列表控件,请高手指教,先谢谢了,已经找了两天了都…

查看全部问答>

关于余量slack的一点思考

近日在思索关于建立/保持时间余量(也就是slack)的一点问题。书上或者官方文档都说,时序分析器会依据自身模型计算reg-reg路径的建立和保持时间余量,如果两者任中之一为负,则表示存在时序违规,将给应用带来潜藏的危机。那么是否意味着只要slack为 ...…

查看全部问答>

STM8编译器怪!

我在用STM8 编译器“ST Visual Develop”时发现C语言编译有这样的怪事,宏定义居然通不过,我用过一年多的Keil,从没出现过这样的事。程序如下: #include "stm8s.h" #define all  0x08; void main(void) {   &nb ...…

查看全部问答>

【挖电源】超宽输入范围的电源18~318V

该电源是某变送器里的电源板:   板子为6层板   输入电压范围 Vdc:18~100V Vac:85~265V   输出3路24V给外围供电,另还有一路输出MCU系统   功率不详   先上图看看,ipad拍的,不是很清晰   [ 本帖最 ...…

查看全部问答>

求解

如何在DSP中实现二维数组的相乘运算…

查看全部问答>

【信号处理】:FPGA数字信号处理原理及实现

本文包括“信号检测理论” “噪声及其处理” “数字信号及处理”3 小节 [ 本帖最后由 liuceone 于 2011-12-8 14:51 编辑 ]…

查看全部问答>