分享

学习vi

 农夫子oice 2009-08-22

学习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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多