茉莉餐厅官网:学习vi

来源:百度文库 编辑:中财网 时间:2024/04/29 20:41:00

学习vi

作者:夏武

1 vi介绍

vi是Unix世界里极为普遍的全萤幕文本编辑器,几乎可以说任何一台Unix机器都会提供这套软件。Linux当然也有,它的vi其实是elvis(版权问题),不过用法都差不多。由于vi的广泛使用,因此学习vi是很有意义的。

2 基本概念

vi存在两种模式:指令模式和输入模式。在指令模式下输入的按键将做为指令来处理。而在输入模式下,vi则把输入的按键当作插入的字符来处理。指令模式切换到输入模式只需键入相应的输入命令即可,而从输入模式切换到指令模式,则需在输入模式下键入ESC键。

3 快捷键

3.1 由指令模式进入输入模式

表1是由指令模式进入输入模式的指令列表。

表1 由指令模式进入输入模式指令

快捷键 用途 快捷键 用途 a 从光标所在位置后面开始新增 A 从光标所在行行尾新增 i 从光标所在位置前面插入 I 从光标所在行的第一个非空格字符前面插入 o 在光标所在行下新增一行并进入输入模式 O 在光标所在行上新增一行并进入输入模式

3.2 文件操作

表2是文件操作的指令列表。

表2 文件操作指令

快捷键 用途 快捷键 用途 :wq 保存退出 :q! 不保存退出

3.3 基本编辑操作

表3是基本编辑指令列表。

表3 基本编辑指令

快捷键 用途 快捷键 用途 x 删除光标所在位置的字符 dd 删除光标所在的行 r 修改光标所在位置的字符,接着输入新的字符 R 进入替换状态,新增字符会覆盖原有字符,直到按 [ESC] 回到指令模式下为止 s 删除光标所位置字符,并进入输入模式 S 删除光标所在行,并进入输入模式 0 移动到光标所在行的行首 j 移动到下一行 k 移动到上一行 CTRL-n 移动到下一行 CTRL-p 移动到上一行 CTRL-d 向下半页 CTRL-f 向下一页 CTRL-u 向上半页 CTRL-b 向上一页 H 移动到窗口的首行 M 移动到窗口的中间行 L 移动到窗口的末行 w 移动到后一个单词的第一个字母 e 移动到光标处的单词最后一个字母处 b 移动到光标处的单词第一个字母处 $ 移动到光标所在行行尾 d0 移动到光标所在行行首 ( 移动到光标所在行的上一行 ) 移动到光标所在行的下一行 { 移动光标所在段落的结尾 } 移动光标所在段落的开头 n- 向上移动n行 n+ 向下移动n行 nG 移动到第n行

4 组合编辑指令

组合指令包括指令和范围组成。表3的指令可以用来指定范围。例如:删除当前行以后的5行,指令为d5G。表4是组合编辑的指令列表:

表4 组合编辑指令

快捷键 用途 快捷键 用途 d 删除 y 复制 p 粘贴 c 剪切

5 杂项

表5 杂项指令

快捷键 用途 快捷键 用途 :%s/[被替换字符串]/[替换字符串]/g 替换字符串 /[查找的字符串] 查找字符串 gg=G 自动缩进 CTRL-n 自动完成(输入模式下)

6 .vimrc文件配置

很多情况下,我们使用的vi其实应该叫vim,这是一种vi的增强版。当在终端下使用vim的时候,默认情况下,编辑的界面上是没有显示行号、语法高亮度显示、智能缩进等功能。为了更好的在vim下进行工作,需要手动设置一个配置文件:.vimrc。下面是.vimrc的配置样例:

" 显示行号set nummber" 检测文件类型filetype on" 记录历史的行数set history=1000" 语法高亮显示syntax on" 设置自动对齐set autoindent" 设置智能对齐set smartindent" 设置TAB键为4个空格set tabstop=4" 显示匹配模式set showmatch" 去掉编辑错误时的响声set vb t_vb=" 在终端中使用鼠标set mouse=a" 查找时忽略大小写set ignorecase" 当执行:make,:next指令时自动保存文件内容set autowrite

7 总结

8 参考资料

  • Learning the vi editor, O'REILY
  • vim.org