当前位置: 首页 > Linux

Linux入门系列4--vi-vim编辑器

时间:2023-04-06 02:51:28 Linux

Linux入门系列4--vi/vim编辑器上一篇《Linux入门系列3--linux远程登录工具》讲解了如何使用常用工具进行远程连接和管理linux服务器,要管理服务器必然涉及到脚本文件的创建和编辑,所以在介绍命令之前,本文先讨论一下linux下编辑器的知识。一、Vi/Vim介绍VI(VisualInterface),是一种文本编辑器,主要用于Unix和类Unix环境。Vim(Vi+improved)在Vi的基础上改进了功能,相当于Vi的增强版。所有类Unix系统都会内置一个vi文本编辑器,就像Windows计算机上的记事本一样,可以编辑文本内容。vi编辑器是Unix系统的原始编辑器,允许您查看文件中的行并在文件中移动、插入、编辑和替换文本。但是由于Unix系统是商业操作系统,所以国外的程序员“RichardStallman”发起了GNU项目(这个项目的目标是创建一个完全自由的操作系统,实现Unix系统的标准接口,所以全面向上与Unix兼容,但可以免费使用),在GNU项目中,程序员在将vi编辑器移植到开源世界的同时对其进行了改进,因此更名为“Viimproved”,也就是我们所说的vim。ps:GNU项目,英文全称是“GNUisNotUnix”。简单的说,就是一个开发类Unix操作系统的项目。GNU操作系统由GNU软件包和第三方免费软件包组成,所以它最大的特点就是免费。因此,vim是从vi发展而来的具有编程能力的文本编辑器,可以通过字体颜色主动识别语法的正确性,方便程序设计。Vim具有代码补全、编译和错误跳转等方便的编程功能,在程序员中被广泛使用。有些linux发行版可能没有安装vim(需要的话可以自己安装),但是肯定有vi编辑器。作为介绍性文章,本文仅演示两者的常用用法。编辑器具有三种模式:通用模式、编辑模式和命令模式。每种模式可以执行不同的操作,完成不同的功能。三种模式可以相互转换。通用模式主要用于:复制、粘贴、删除;编辑模式主要用于编辑文本;命令模式主要用于保存和查找文本。2、通用模式我们平时在windos系统上编辑文件,肯定会涉及到复制、粘贴、删除等操作,而这些操作在vi中都是在通用模式下进行的。普通模式是默认模式,需要它作为进入编辑模式和命令模式的桥梁。使用vi命令打开一个文件,直接进入通用模式。在此模式下,您可以对文本内容进行复制、粘贴、删除等操作。可以通过键盘方向键控制光标移动到指定位置,也可以通过快捷键控制光标位置。1.1复制命令(语法)功能说明case(说明)yy复制当前光标所在行y*y复制从当前光标所在行开始的*行,包括末尾的空格单词;如果要复制整个单词,把光标放在单词的第一个字母上1.2粘贴命令(语法)功能说明案例(Description)p粘贴粘贴到当前光标的下一行(复制行),或者After当前光标字符(copiedword)1.3删除命令(语法)功能描述case(描述)dd删除光标当前行d*d删除从光标当前行开始的*行d2d:表示删除2行开始从当前光标所在行开始dw删除光标后的一个词。删除光标后,包括尾随空格;如果要删除整个单词,把光标放在单词的第一个字母上,类似ywx删除光标后一个字符相当于delX删除光标前一个字符相当于Backspace1.4撤消命令(语法)功能说明案例(description)uUndo1.5定位上面的复制、粘贴、删除,到目前为止我们都是使用方向键来控制鼠标的位置,但是这样效率太低了,通过下面的定位命令可以快速定位。将光标定位在普通模式,进入编辑模式进行编辑,可以大大提高效率。命令(语法)功能说明case(说明)shift+^第一行shift+$行尾1+shift+g页眉先按1再按shift和g组合键shift+g页尾*+shift+g任意行先按数字*,同时按shift和g组合键,调试程序时很有用。3、编辑模式在普通模式下,通过以下i、a、o、r命令进入编辑模式,对文档内容进行编辑。这些命令的区别在于进入编辑模式后光标插入点不同。命令功能说明i当前光标前I当前光标所在行首a当前光标后A当前光标所在行尾o当前光标下一行,新开一行O当前光标的上一行,在当前光标后另开一行r,新的输入会替换一个字符R来替换当前光标后的多个字符。4、命令模式在普通模式下,可以使用以下三个命令:“:”、“/”、“?”进入底行命令模式完成文件保存和内容查找替换字符。执行命令后,可以通过ESC返回普通模式。3.1文件保存语法格式:[Option]+Enter选项分为w、q、!可以相互结合使用。w:保存q:退出!:强制执行case:w保存:wfilename将文件保存为filename:wq保存退出:wq!强制保存退出:wq!文件名将文件另存为文件名并退出编辑器?两者的功能一样,只能记住一个语法格式/要查找的词+回车?要查找的词+回车如果用第一种语法/查询,按n键找下一个,shift+n查找下一个second语法相反,n查找上一个,shift+n向下查找下一个case/heimatengyun在当前文档中查找heimatengyun字符串相当于?heimatengyun3.3替换内容可以通过以下命令替换当前文档中的内容语法格式:[range]s/要替换的内容/新内容/[c,e,g,i]+enterrange:1,5表示从第一行到第五行。1、$表示从第一行到最后一行,相当于%。%表示当前编辑的文章。可组合选项:c表示确认,每次替换前询问;e表示不显示错误;g表示globe不要求整行更换;我的意思是忽略不区分大小写;I的意思是casesensitivecase1,3s/you/YOU在当前文档的第1到3行搜索你并替换为YOU。注意这里不是单词替换,只要匹配上就替换掉。例如第二行存在your这个词,则替换为YOUr1,3s/you/YOU/c替换前会询问是否替换s/e/E/g替换当前行的所有e都是E。假设当前光标所在行的内容是whereareyoufrom替换后变成hErEarEyoufrom3.4显示行号:setnu显示行号:setnonu关闭行号以上是vi编辑器的基本命令,大家可以多敲几遍就记住了。至此我们已经学会了使用vi编辑器来创建和管理各种文件。下一篇文章将讲解Linux中常用的命令。学会命令后,可以制作各种脚本来完成各种任务。