Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1308747
  • 博文数量: 273
  • 博客积分: 5865
  • 博客等级: 准将
  • 技术积分: 3280
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-11 10:01
文章分类

全部博文(273)

文章存档

2015年(33)

2014年(11)

2013年(11)

2012年(136)

2011年(32)

2010年(50)

分类: LINUX

2012-07-13 14:06:45

movement by screens

 

ctrl + F - 向前滚动一屏,光标移动到下一屏的第一行

ctrl + B - 向后滚动一屏,光标移动到上一屏的最后一行

ctrl + D - 向前滚动半屏,光标移动到屏幕中间一行

ctrl + U - 向后滚动半屏,光标移动到屏幕中间一行

ctrl + E - 向前滚动一行,光标位置保持不变

ctrl + Y - 向后滚动一行,光标位置保持不变

 

如果想滚动屏幕但却不希望移动光标的位置,可以使用 z 命令。

 

zENTER - 滚动屏幕使光标所在行移动到屏幕第一行

z.(点号) - 滚动屏幕使光标所在行移动到屏幕中间

z-(减号) - 滚动屏幕使光标所在行移动到屏幕最后一行

 

在 z 命令前添加 n 前缀表示把第 n 行移动到屏幕的相应位置,如 200zENTER 表示把第 200 行移动到屏幕第一行。

 

有时系统中会出现一些系统消息影响你的编辑工作,这时使用命令 ctrl + L 可以使 vi 刷新屏幕。

 

H - 光标移动到当前屏的第一行

M - 光标移动到当前屏的中间一行

L - 光标移动到当前屏的最后一行

nH - 光标移动到当前屏从第一行开始向下的第 n 行

nL - 光标移动到当前屏从最后一行开始向上的第 n 行

 

ENTER、+ - 光标移动到下一行的第一个字符

-(减号) - 光标移动到上一行的第一个字符

上面三个命令把光标移动到一行中第一个不是空白或 tab 字符的位置。

^ - 光标移动到行内第一个非空白的字符处

0 - 光标移动到行内的第一个字符处,包括空白

n| - 光标移动到当前行的第 n 个字符处

 

movement by text blocks

 

e - 光标移动到单词末尾

E - 光标移动到单词末尾,忽略标点

( - 光标移动到当前句的开头

) - 光标移动到下一句的开头

{- 光标移动到当前段落的开头

} - 光标移动到下一段落的开头

[[ -光标 移动到当前 section 的开头

]] -光标 移动到下一 section 的开头

 

寻找句子的结尾,vi 查找标点:? , . !。有两种情况 vi 认为是句子的结尾,上述标点后面紧跟两个以上的空格,或是一行的最后一个非空白字符为上述标点中的一个。

 

movement by searchs

 

/pattern - 从光标所在位置开始,向文件的结尾搜索 pattern,如果能够搜索到,光标会移动到 pattern 的第一个字符处

?pattern - 从光标所在位置开始,向文件的开头搜索 pattern,如果能够搜索到,光标会移动到 pattern 的第一个字符处

 

n - 在同一个方向搜索下一个匹配的 pattern

N - 在相反的方向搜索下一个匹配的 pattern

/ENTER - 效果同命令 n

?ENTER - 效果同命令 N

 

set 选项 wrapscan 设置是否循环搜索。如果开启 wrapscan 选项,当搜索到最后一个 pattern 后则会从文件的开头或结尾继续搜索,如果关闭 wrapscan 选项,搜索到最后一个 pattern 后会显示一个错误消息。

 

行内搜索

 

下面这些命令仅在当前行执行搜索,不会把光标移动到其他行。( 以下命令中的 x 可以为任何字符 )

fx - 从光标所在处向后查找字符 x,并把光标移动到字符 x 上

Fx - 从光标所在处向前查找字符 x,并把光标移动到字符 x 上

tx - 从光标所在处向后查找字符 x,并把光标移动到 x 前一个字符上

Tx - 从光标开始处向前查找字符 x,并把光标移动到 x 后一个字符上

; - 在同一个方向重复执行前一个行内搜索命令

, - 在相反方向重复执行前一个行内搜索命令

 

:set nu 显示行号,:set nonu 不显示行号。命令 ctrl + G 会使 vi 在屏幕的最下方显示如下信息:当前行号,文件的行数,当前显示的行数占文件总行数的百分比。

 

``(反引号) - 光标移回上一次光标移动之前光标所在的位置。如果执行了一些编辑后使用 G 命令移动光标,那么 `` 会把光标移回执行编辑的位置;如果刚执行过搜索,`` 则会把光标移回开始搜索时光标所在位置。

''(两个单引号) - 光标移回上一次光标移动之前光标所在行的第一个字符处

阅读(1327) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~