网站建设哪个公司的好,打工网站校企合作建设,爱网站关键词查询工具,免费学网页设计VI是Linux/Unix下标配的一个纯字符界面的文本编辑器。由于不支持鼠标功能#xff0c;也没有图形界面#xff0c;相关的操作都要通过键盘指令来完成#xff0c;需要记忆大量命令。因此很多人不大喜欢它#xff0c;但同时由于键盘的方式往往比鼠标来得快#xff0c;一旦熟练… VI是Linux/Unix下标配的一个纯字符界面的文本编辑器。由于不支持鼠标功能也没有图形界面相关的操作都要通过键盘指令来完成需要记忆大量命令。因此很多人不大喜欢它但同时由于键盘的方式往往比鼠标来得快一旦熟练后用起来是有种非常流畅的感觉的也有人因此而非常喜欢它。 不管你喜欢也好不喜欢也好VI是Linux的标配编辑器很多时候你也只有这一个编辑器可用如果要做一个Linux Coder熟悉VI还是非常有必要的。 PS由于VI的命令非常多本文主要只介绍一些基础命令。并且就算是这些基础命令中也有许多是不大常用的我就把这些命令以灰色文字显示了初学者可以不用太关注这些灰色命令。 两种工作模式 前面已经说过由于VI没有图形界面如翻页、移动光标、保存、退出等操作都必须借助键盘来完成。另外VI还提供了大量快捷键来加速操作因此VI统的编辑模式下还引入了一种新的工作模式——命令模式。 编辑模式 在此模式下输入可见字符时和传统Windows环境下输入字符的功能相同。按Esc键可切换值命令模式。 命令模式 在此模式下输入的可见字符对应的是命令。当插入命令执行后进入编辑模式。 PS有的文章中还列举了一种Last Line模式这个可以算作一种特殊的命令模式只不过命令会显示在最后一行并且需要敲回车才能执行。这些命令通常以 :/?$ 等特殊字符开头。 模式查询要判断当前处于那种模式可以通过最后一行状态栏来判断如果处于编辑模式则显示为如下两种状态。 模式间的切换在编辑模式下通过Esc键可以进入命令模式命令模式下执行某些插入命令后进入编辑模式。如果你不知道当前处于那种模式下按ESC进入命令模式按Insert进入编辑模式。 启动VI VI的启动参数有不少但通常的使用方式如下vi filename 如果参数中的文件存在则打开该文件如果参数中的文件不存在则会新建该文件不是立即创建而是在保存的时候创建。 插入文本 刚进入VI时是出于命令模式的这是是无法输入文本的因此需要进入插入模式。进入插入模式的命令有如下几个 i 从目前光标所在之处插入文字 a 从目前光标所在下一个字符插入文字 o 往下插入一个空行 O 往上插入一个空行 输入这几个命令后就进入了编辑模式可以通过屏幕下方最后一行看到当前为插入状态 可以通过Insert键切换插入状态和改写状态和图像界面中一样。 另外在命令模式下也可以通过Insert键进入编辑模式插入状态不过通常还是前面介绍的四个命令来进入编辑模式。 离开和保存文件 在VI中离开和保存文件对应的命令有这几个使用前记得进入命令模式: :w 保存 :w filename 另存为 :wq 保存并退出 [常用] :q! 强制退出 SHIFTzz 保存并退出功能同:wq [常用] 移动光标 在VI中移动光标并不是我们游戏中常用的WASD而是h、j、k、l分别控制光标左、下、上、右移一格分别分布在右手四个指头新手需要一段时间来适应。使用非常频繁需要熟练掌握。 其它一些光标控制命令如下 CtrlB屏幕往后移动一页。 CtrlF屏幕往前移动一页。 CtrlU屏幕往后移动半页。 CtrlD屏幕往前移动半页。 gg移动文章的开头。 G移动到文章的最后。 w光标跳到下个word的开头。 e光标跳到下个word的字尾。 b光标回到上个word的开头。 $移到光标所在行的行尾。 ^移到该行第一个非空白的字符。 0移到该行的开头位置。 #移到该行的第#个位置例51、121。 另外还有几个行操作相关命令集中介绍一下 :set nu 显示行号 :set nonu 隐藏行号:# 移动到第#行如:15CtrlG 在状态栏显示当前进度 #G 移动到第#行例15G 删除文字 x删除光标所在位置的后面一个字符。 #x例如6x 表删除光标所在位置的后面6个字符。 X大字的X每按一次删除光标所在位置的前面一个字符。 #X例如20X 表删除光标所在位置的前面20个字符。 dd删除光标所在行。 #dd例如6dd表删除从光标所在的该行往下数6行之文字。 复制粘贴 我个人并不是很习惯VI提供的复制粘贴由于没有高亮选中用起来感觉不是很方便。平时大都是用的终端工具的复制粘贴功能因此这里的命令我都加灰了感兴趣的可以看看。 yw将光标所在处到字尾的字符复制到缓冲区中。 p将缓冲区内的字符粘贴到光标所在位置(指令yw与p必须搭配使用)。 yy复制光标所在行。[超常用] p复制单行到您想粘贴之处。(指令yy与p必须搭配使用) #yy如6yy表示拷贝从光标所在的该行往下数6行之文字。[常用] p: 复制多行到您想粘贴之处。(指令#yy与p必须搭配使用) ayy将复制行放入buffer a, vi提供buffer功能可将常用的数据存在buffer ap将放在buffer a的数据粘贴。 b3yy将三行数据存入buffer b。 b3p将存在buffer b的资料粘贴 撤销和重做 撤销和重做在任何编辑器里都是非常有用的命令 u假如您误操作一个指令可以马上按u回复到上一个操作。 . 重复执行上一次的指令 查找和替换 查找和替换的语法笔记复杂先简单的介绍一下查找的语法 /patternEnter 向下查找pattern匹配字符串 ?patternEnter 向上查找pattern匹配字符串 使用了查找命令之后使用如下两个键快速查找 n按照同一方向继续查找 N按照反方向查找 至于替换的语法限于篇幅所限这里就不介绍了给一个链接供大家参考一下http://blog.csdn.net/lanxinju/article/details/5731843。 VI对编程的支持 VI对编程还是提供了一定的支持的。例如它是支持括号配对、语法高亮显示的。 不过由于并不支持语法解析功能作为编码工具和专业的代码编辑器如SourceInsight、VisualStudio等比起来还是有很大差距的。个人感觉做小型项目和临时修改代码用还行但做大型项目是有点力不从心的。 转载于:https://www.cnblogs.com/TianFang/archive/2013/01/17/2865159.html