Linux 命令每日一练:vi命令

来源:互联网 发布:js原型面试题 编辑:程序博客网 时间:2024/06/05 21:52

Linux中vi 命令 —>可以理解记忆为:visual insert(即可视化插入)—> 是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。

这里写图片描述

vi编辑器支持命令模式(command mode)和编辑模式(edit mode);默认情况下,打开vi编辑器后自动进入命令模式。
命令模式
可以完成对文件的操作命令,可以控制屏幕光标的移动,字符、字或行的删除,移动复制某区段以及进入编辑模式。
编辑模式
只有在edit mode下,才可以做文字输入。

从命令模式 —-> 编辑模式 使用“A”、“a”、“O”、“o”、“I”、“i”键。

  • 按「a」进入编辑模式后,是从当前光标闪烁位置的下一个位置开始输入文字;
  • 按「A」进入编辑模式后,在行末添加文本;
  • 按「i」进入编辑模式后,是从当前光标闪烁位置开始输入文件;
  • 按「I」进入编辑模式后, 在行首插入文本;    
  • 按「o」进入编辑模式后,是插入新的一行,在当前行后面插入一空行。
  • 按「O」进入编辑模式后,是插入新的一行,在当前行前面插入一空行。

从编辑模式 —-> 命令模式 使用“Esc”键。

命令格式:
vi [选项]… [文件/文件列表]……

命令参数:

  • +<行号>:从指定行号的行开始显示文本内容;
  • -b:以二进制模式打开文件,用于编辑二进制文件和可执行文件;
  • -c<指令>:在完成对第一个文件编辑任务后,执行给出的指令;
  • -d:以diff模式打开文件,当多个文件编辑时,显示文件差异部分;
  • -l:使用lisp模式,打开“lisp”和“showmatch”;
  • -m:取消写文件功能,重设“write”选项;
  • -M:关闭修改功能;
  • -n:不实用缓存功能;
  • -o<文件数目>:指定同时打开指定数目的文件;
  • -R:以只读方式打开文件;
  • -s:安静模式,不现实指令的任何错误信息。

实例演练及总结:

如果vi命令后面接一个不存在的文件名,执行语句时则创建这个不存在的文件。
这里写图片描述

这里写图片描述

说明:关于退出vi编辑器及保存文件
在退出「编辑模式」之后的「命令行模式(command mode)」下,按一下「:」冒号键进入「Last line mode」,如果输入的是:
1) : w filename (对操作的文件会以指定的文件名filename另存为)
2) :w! (对操作的文件强制保存并退出vi编辑器)
3) : wq (对操作的文件保存并退出vi编辑器)
4) : q (对操作的文件不进行保存并退出vi编辑器)
5): q! (对操作的文件不进行并强制退出vi编辑器)
6): ZZ (命令模式下保存当前文件所做的修改后并退出vi编辑器)

vi编辑器提供了丰富的内置命令,有些内置命令使用键盘组合键即可完成,有些内置命令则需要以冒号“:”开头输入。并将常用内置命令分为如下几大类以方便查找使用:

移动光标
  
vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母h、j、k、l来分别控制光标左、下、上、右移一格。
按Ctrl+b:屏幕往”后”移动一页。
按Ctrl+f:屏幕往”前”移动一页。   
按Ctrl+u:屏幕往”后”移动半页。   
按Ctrl+d:屏幕往”前”移动半页。   
按数字0:移到文章的开头。   
按G:移动到文章的最后。  
按$:移动到光标所在行的”行尾”。   
按^:移动到光标所在行的”行首” 。  
按w:光标跳到下个字的开头 。  
按e:光标跳到下个字的字尾 。  
按b:光标回到上个字的开头 。  
按#l:光标移到该行的第#个位置,如:5l,56l。
按#:15:光标移到15行。
按:e文件名:在命令模式下,打开并编辑指定名称的文件;
按:n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件;
按:f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例;

删除文字  
 
按x:每按一次,删除光标所在位置的”后面”一个字符。
按#x:例如,6x表示删除光标所在位置的”后面”6个字符。
按X:大写的X,每按一次,删除光标所在位置的”前面”一个字符。
按#X:例如,20X表示删除光标所在位置的”前面”20个字符。
按dd:删除光标所在行。   
按#dd:从光标所在行开始删除#行。
按D:删除从当前光标到光标所在行尾的全部字符;

复制
  
按yw:将光标所在之处到字尾的字符复制到缓冲区中。   
按#yw:复制#个字到缓冲区   
按yy:复制光标所在行到缓冲区。   
按#yy:例如,6yy表示拷贝从光标所在的该行”往下数”6行文字。  
按p:将缓冲区内的字符贴到光标所在位置。注意:所有与”y”有关的复制命令都必须与”p”配合才能完成复制与粘贴功能。
按P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;

替换  
 
按r:替换光标所在处的字符。   
按R:替换光标所到之处的字符,直到按下「Esc」键为止。
a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,“s/”表示进行替换操作;

回到上一次操作
  
按u:如果您误执行一个命令,可以马上按下u,回到上一个操作。按多次”u”可以执行多次回复。

更改

按 cw:更改光标所在处的字到字尾处。
按c#w:例如,c3w表示更改3个字 。

跳至指定的行
  
按Ctrl+g:列出光标所在行的行号。   
按#G:15G表示移动光标至文章的第15行的行首。

显示行号
set nu: 会在文件中的每一行前面显示出行号
:set number:在命令模式下,用于在最左端显示行号;
:set nonumber:在命令模式下,用于在最左端不显示行号;
:行号: 光标跳转到指定行的行首;
:$: 光标跳转到最后一行的行首;

查找、匹配
/keyword:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。
?keyword:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示;如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。

待后面更加熟练之后继续进行详细总结,敬请期待…..

原创粉丝点击