Linux学习笔记之VI(VIM)编辑器

百度关于vi的资料 http://baike.baidu.com/view/908054.htm

关于vi 和vim的介绍可以在上面的网址看到。

1   进入和退出vi

进入:在终端命令行输入 vi 文件名   就会进入vi,并且建立了一个空的名字为刚才输入的文件,假如进入vi的时候不加文件名,那么进入vi后系统会自动建立一个空文件,你可以在命令模式下给这个文件改名。

退出:按ESC切换到命令模式下,输入

:q   这是没有保存就退出,一般系统会提示你要不要保存

:q!  强制退出,不保存

:wq  保存并退出

如果之前没有命名文件名,可以在w后跟上你想要起的文件名

2 vi 的三种模式

命令模式(进入时的默认模式):

任何输入都会作为编辑命令,内容不会出现在屏幕上,如果输入错误,系统会发出错误提示声音。任何输入都会立即反应;

输入模式(编辑模式):

从命令模式进入输入模式,可以输入i健,然后就可以输入字符了,在输入模式下按ESC会返回命令模式;

特殊模式(最后行模式):

以“:“或者”/“为前导的指令,出现在屏幕的最后一行,任何输入都会被当成特别指令。

( 所以上次我们写C程序的步骤就是:终端输入 vi hello.c  进入vi编辑器,此时默认为命令模式,按i健进入编辑模式,然后就可以输入程序了,完成以后,按ESC键,即退出编辑模式,进入了命令模式,然后输入“:“,即进入最后行模式,然后我们输入保存退出命令wq 即可。)

Vi中关于编辑的命令非常多,这里就不一一介绍了,网上有很多,命令关键在于使用,只有使用熟练了,才能体会到vi编辑器的效率。下面是节选自《Linux C编程》(清华出版社,李玉波)中的一节介绍vim的,vim的命令基本和vi一样,大家可以参考。

vim(vi improve)可以说是Linux中功能最为强大的编辑器,它是由UNIX系统下的传统文本编辑器vi发展而来的。下面首先介绍一下vi。

vi是个可视化的编辑器(vi就意味着可视化—— visual)。 那么,什么是可视化的编辑器呢?可视化的编辑器就是可以在编辑文本的时候看到它们。非可视化的编辑器的例子可以举出不少,如ed、sed和edlin(它是DOS自带的最后一个编辑器) 等。vi成为BSD UNIX的一部分,后来AT&T也开始用vi,于是标准UNIX也开始 用vi。Linux下的vim是vi的一个增强版本,有彩色和高亮等特性,对编程有很大的帮助。

1. 启动与退出vim

由于vim的功能很多,首先来看如何启动和退出vim。

(1) 在Linux提示符下键入vim(或使用vim myfile来编辑已经存在的文件)即可启动它。

(2) 要退出vim,先按下Esc键回到命令行模式,然后键入“:”,此时光标会停留在最下面一行,再键入“q”,最后按下Enter键即可,见图2-1。

技巧:

在X-Window下也可以通过在“开始”菜单里找到“编程”︱Vi I Mproved来运行X-Window下的vim。

2. 命令行模式的操作

命令行模式提供了相当多的按键及组合按键来执行命令,帮助用户编辑文件。由于这些命令相当多,在此仅作简单介绍。

(1) 移动光标

在命令行模式和插入模式下,都可以使用上、下、左、右4个方向键来移动光标的位置。但是有些情况下,如使用telnet远程登陆时,方向键就不能用,必须用命令行模式下的光标移动命令。这些命令及作用见表2-1。

表2-1  常用的移动光标的命令


命    令


操 作 说 明


h


将光标向左移动一格


l


将光标向右移动一格


j


将光标向上移动一格


k


将光标向下移动一格


0


将光标移动到该行的最前面


$


将光移动到该行的最后面


G


将光标移动到最后一行的开头


W或w


将光标移动到下一个字


e


将光标移动到本单词的最后一个字符。如果光标所在的位置为本单词的最后一个字符,则跳动到下一个单字的最后一个字符。标点符号如“.”、“,”或“/”等字符都会被当成一个字


b


将光标移动到单词的最后一个字符,如果光标所在位置为本单词的第一个字符,则跳到上一个单词的第一个字符


{


将光标移动到前面的“{”处。在C语言编程时,如果按两次就会找到函数开头“{”处,如果再次连续按两次还可以找到上一个函数的开头处


}


同“{”的使用,将光标移动到后面的“}”


Ctrl+b


如果想要翻看文章的前后,可以使用Page Down和Page Up;但当这两个键不能使用时,可以使用Ctrl+b将光标向前卷一页,相当于Page Up


Ctrl+f


将光标向后卷一页,相当于Page Down


Ctrl+u


将光标向前移半页


Ctrl+d


将光标向后移半页


Ctrl+e


将光标向下卷一行


Ctrl+y


将光标向后卷一行


N+\


将光标移至第n行(n为数字)

(2) 复制文本

复制文本可以节省重复输入的时间,vim也提供了以下的操作命令,见表2-2。

表2-2  常用的复制文本的命令


命    令


操 作 说 明


y+y


将光标目前所在的位置整行复制(连续按两次y)


y+w


复制光标所在的位置到整个单词所在的位置(w,可以理解为word,即一个单词)


n+y+w


若输入3yw,则会将光标所在位置到单词结束以及后面两个单词(共3个单词)一起复制


n+y+y


若按3yy,则将连同光标所在位置的一行与下面两行一起复制


p


将复制的内容粘贴光标所在的位置。若复制的是整行文本,则会将整行内容粘贴到光标所在的位置

(3) 删除文本

删除文本命令一次可删除一个字符,也可以一次删除好几个字符或是整行文本,见表2-3。

表2-3  常用的删除文本的命令


命    令


操 作 说 明


d+左方向键


连续按d和左方向键,将光标所在位置前一个字符删除


d+右方向键


将光标所在位置字符删除


d+上方向键


将光标所在位置行与其上一行同时删除


d+下方向键


将光标所在位置行与下一行同时删除


d+d


连按两次d,可将光标所在的行删除,若是连续删除,可以按住d不放


d+w


删除光标所在位置的单词,若是光标在两个字之间,则删除光标后面的一个字符


n+d+d


删除包括光标所在行及向下的n行(n为数字)


n+d+上方向键


删除包括光标所在行及向上的n行


n+d+下方向键


同n+d+d命令


D


将光标所在行后所有的单词删除


x


将光标所在位置的字符删除


X


将光标所在位置前一个字符删除


n+x


删除光标所在位置及其后的n个字符


n+X


删除光标所在位置及其前的n个字符

(4) 找出行数及其他按键

当我们编写程序时,常常需要跳到某一行去修改,因此每一行的行号就相当重要。vim为此提供的命令见表2-4。

表2-4  常用的找出行数的命令


命    令


操 作 说 明


Ctrl+g


在最后一行中显示光标所在位置的行数及文章的总行数


nG


将光标移至n行(n为数字)


r


修改光标所在字符


R


修改光标所在位置的字符,可以一直替换字符,直到按下ESC键


u


表示复原功能


U


取消对行所做的所有改变


.


重复执行上一命令


Z+Z


连续两次输入z,表示保存文件并退出vi


%


符号匹配功能,在编辑时,如果输入“%(”,系统将会自动匹配相应的“)”

3. 命令行模式切换到输入模式

进入vim时,默认的模式是命令行模式,而要进入输入模式输入数据时,可以用下列按键:

●       按“a”键  从目前光标所在位置的下一个字符开始输入。

●       按“i”键  从光标所在位置开始插入新输入的字符。

●       按“o”键  新增加一行,并将光标移到下一行的开头。

4. 最后行模式的操作

vim的最后行模式是指可以在界面最底部的一行显示的输入命令,一般用来执行查找特定的字符串、保存及退出等任务。在命令行模式下输入冒号“:”,就可以进入最后行模式了,还可以使用“?”和“/”键进入最后行模式。比起命令行模式的诸多操作命令,最后行模式的操作命令就少多了,见表2-5。

表2-5  最后行模式主要的操作命令


命    令


操 作 说 明


e


在vi中编辑时,可以使用e创建新的文件


n


加载新文件


w


写文件,也就是将编辑的内容保存到文件系统中。vim在编辑文件时,先将编辑内容保存在临时文件中,如果没有执行写操作直接退出的话,修改内容并没有保存到文件中


w!


如果想写只读文件,可以使用w!强制写入文件


q!


表示退出vim,但是文件内容有修改的话,系统会提示要先保存,如果不保存退出,需要使用命令q!强制退出


set nu


set可以设置vim 的某些特性,这里是设置每行开头提示行数。想取消设置,使用命令set none


/


查找匹配字符串功能。在编辑时,想查找包含某一个字符串,可以用“/字符串”自动查找,系统会突出显示所有找到的字符串,并转到找到的第一个字符串。如果想继续向下查找,可以按n键;向前继续查找则按N键



也可以使用“?字符串”查找特定字符串,它的使用与“/”相似,但它是向前查找字符串

 

5. vim的注意事项

由于Linux系统的vim编辑器是从UNIX下的vi发展而来的,而UNIX下的vi编辑器是从行编辑器ed发展而来的。因此,vim不如目前流行的微软推出的同类编辑器易用、直观,但是它的强大功能却是微软同类产品无法比拟的。因此一些人学习时可能会感到有一些不便和困惑。针对这类问题,这里列出了使用vim中应注意的一些事项。当然要熟练使用vim,还需要平时操作中不断地提高和积累。

●       插入编辑方式和命令方式切换时出现混乱

这种情况产生的原因通常是:还未输入插入命令便开始进行文本输入,从而无法在正确位置输入文本;另外,当插入信息后,还未按Esc键结束插入方式,就又输入其他的命令信息,从而使命令无法执行。

当出现这种情况时,首先要确定自己所处的操作方式,然后再确定下一步做什么工作。若不易搞清楚当前所处的状态,还可以使用Esc键退回到命令方式重新进行输入。

●       在进行文档编辑时,vim编辑器会产生混乱

这种状态的产生往往是由于屏幕刷新有误,此时可以使用Ctrl+l键对屏幕进行刷新,如果是在终端,可以用Ctrl+r进行屏幕刷新。

●       对屏幕中显示的信息进行操作时,系统没有反应。

出现这种情况可能是由于屏幕的多个进程被挂起(如不慎用了Ctrl+s键等),此时可用Ctrl+q进行解脱,然后重新进行输入。

●       当编辑完成后,不能正确退出vim

出现这种情况的原因可能是系统出现了意外情况。如:文件属性为只读、用户对编辑的文件没有写的权限。如果强行执行退出命令“:w!”仍无法退出,可以用“:w newfile”命令将文件重新存盘后再退出,以减少工作中的损失,这个新文件newfile应是用户有写权限的文件。

如果暂时没有可以使用的文件,可以借用/tmp目录建一个新的文件。因为Linux系统中的/tmp是一个临时目录,系统启动时总要刷新该目录,因此操作系统一般情况下不对此目录下进行保护。但当处理完成后,切记应将新文件进行转储,否则依然会造成信息损失。

●       在使用vim时,万一发生了系统掉电或者突然当机的情况怎么办?

工作时发生了掉电和当机,对正做的工作无疑是一种损失,但是vim程序可使损失降到最小。因为,对vim的操作实际上是对编辑缓冲区的数据操作,而系统经常会将缓冲区的内容自动进行保存。因此,当机后用户可以在下次登陆系统后使用-r选项进入vi,将系统中最后保存的内容恢复出来。例如,在编辑cd文件的时候突然断电或者系统崩溃后的恢复命令为:

[[email protected] david]$ vi cd -r

vim的学习应侧重于实际的应用,在了解vim的使用规则后应该多上机操作,不断积累经验,逐步地使自己成为vi编辑能手。

时间: 2024-05-22 08:43:56

Linux学习笔记之VI(VIM)编辑器的相关文章

linux学习笔记六(vim编辑器)

前言:vim编辑器是一个很强的编辑器,一定要学会灵活的运用才能够事半功倍的效果. 内容: 1.vim编辑器的简单说明. vi: Visual Interface vim: VI iMproved 全屏编辑器,模式化编辑器 2.打开文件  # vim /path/to/somefile  vim +# :打开文件,并定位于第#行   vim +:打开文件,定位至最后一行  vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首 3.关闭文件   首先要进入到末行模式

linux学习之路之vim编辑器的使用

本章将介绍vim编辑器的使用 vim编辑器是vi编辑器的增强版 vim是一种全屏的编辑器,是一种模式化的编辑器,之所以称为模式化的编辑器,因为vim有多种模式. 接下来将介绍vim主要的三种模式: 编辑模式(也叫命令模式):在该模式下你可以完成字符串跳转,字符串删除,翻屏操作等操作 输入模式:在该模式下输入的任何字符都会保存在该文件中,作为文件的一部分 末行模式:在该模式下,可以实现字符串搜索,字符串替换等操作 vim编辑器的三种模式之间的相互转换 模式转换: 编辑模式-->输入模式 i:在当前

linux学习笔记--vim程序编辑器

1,在linux系统中使用文本编辑器来编辑自己的linux参数配置文件是一件很重要的事情,因此系统管理员至少应该要熟悉一种文本编辑器. 2,不同的linux distribution各有不同的附加软件,linux命令行界面下的文本编辑器有Emacs,pico,nano,joe与vim 3,学习vim的重要性 (1)所有的UNIX Like系统都内置vi文本编辑器,其他的文本编辑器不一定存在 (2)很多软件的编辑接口都会主动调用vi (3)vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确

Linux学习手记 - vi/vim 编辑器显示行号

显示行号 1. 打开vi 编辑器 2. 输入  :set number 3. 回车 关闭行号显示 1. 打开vi 编辑器 2. 输入  :set nonumber 3. 回车 行号在每次打开 vi/vim 编辑器都可以显示 1. 找到 /etc/vimrc(/etc/virc) 配置文件 2. vim /etc/vimrc 3. 将 set number 加入到文件末尾,然后 :wq 保存退出 原文地址:https://www.cnblogs.com/martin001/p/9649574.ht

【转】Linux上vi(vim)编辑器使用教程

Linux上vi(vim)编辑器使用教程 ------------------------------------------------------------ ikong ------------------------------------------------------------- vi(vim)是上Linux 非常常用的编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率.vi是 “visual interface”

【Linux学习笔记】第5章 VIM工具

5.1vim介绍vim是vi的升级版,带有颜色显示,先安装包yum install -y vim-enhancedvim分为三种模式:一般模式.编辑模式.命令模式. 5.2vim颜色显示和移动光标相同的文件信息在不同目录下显示颜色会有差异.相同内容,不同文件名,显示颜色也会有差异.vim的配置文件/etc/vimrc. 5.3vim一般模式下移动光标一般模式下:h或向左的方向键 光标向左移动一个字符l或者向右的方向键 或者空格键 光标向右移动一个字符Ctrl+f或PageUp键 屏幕向前移动一页

Linux学习笔记--vi

在Linux上使用vi命令修改一个文件内容的时候,发现无法保存,每次写完使用“:q!”命令可以正常退出但是使用":wq!"命令保存文件并退出时出现一下信息提示: E212: Can't open file for writing Press ENTER or type command to continue 出现这个错误的原因可能有两个: 1.当前用户的权限不足 2.此文件可能正被其他程序或用户使用. 一般错误原因都是前者,解决方案是在使用vi命令打开文件时,前面加上sudo来临时提供

Linux 中 vi / vim 编辑器的简单介绍后续增加强大的功能

vi/vim编辑器 一般模式:光标移动,复制整行粘贴行,搜索替换,删除字符,删除列等 移动光标的方法 h 或 向左箭头键(←) 光标向左移动一个字符 j 或 向下箭头键(↓) 光标向下移动一个字符 k 或 向上箭头键(↑) 光标向上移动一个字符 l 或 向右箭头键(→) 光标向右移动一个字符 如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标. 如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓&

linux学习笔记(一)-文件目录相关的命令&&文件通配符

一.几个命令概述 1.查看目录以及目录底下的文件:ls(-a显示隐藏文件:-d显示目录本身:-l显示详细内容:-R递归显示,即把子目录的文件也显示出来:-h以更加被人类理解的格式显示,比如显示文件大小的时候用M为单位显示:-i显示文件索引ID) 2.查看文件内容:cat,head,tail,less,more,tac cat:将文件连接起来,输出在屏幕上,可接多个文件(-E:显示隐藏的换行符:-n:显示出行号) head:默认查看文件的前10行(-n#:查看文件的前#行.空白行也是一行) tai