您的位置:首页 > 其它

vi常用命令

2010-03-29 10:58 309 查看
vi命令

vi 文件名-->这样就进入了一般模式

一般模式按i o a R进入编辑模式,从编辑模式按Esc退回一般模式。

一般模式按: / ?进入命令行模式。

一般模式光标移动方法

h 光标向左移动一个字符 j 光标向下移动一个字符

k 光标向上移动一个字符 l 光标向右移动一个字符

0 这是数字0,移动光标到光标所在这一行的最前面的字符

$ 移动光标到光标所在这一行的最后面的字符

H 将光标移动到当前屏幕的最上方那一行

L 将光标移动到当前屏幕的最下方那一 行

G 移动到这个文件的最后一行

nG n为数字,移动到这个文件的第n行

gg 移动到这个文件的第一行,相当于1G

n<enter> n为数字, 光标从当前屏幕向下移动n行

注: 如果想进行多次移动的话,例如向下移动30行,可以使用30j的组合键.

翻页

ctrl+f 向下移动一页 ctrl+b 向上移动一页

一般模式的搜索与替换

/word n:向下搜索;N:向上搜索

?word n:向上搜索;N向下搜索

替换:

:/%/s/old/new/g 将旧内容old替换为新内容new

:/%s/old//g 将旧内容替换为空,即删除

一般模式:删除 复制 与 粘贴

x X 在光标所在的行中, x 为向后删除一个字符(相当于del),X 为向前删除一个字符(相当于退格銉)

nx n为数字,连续向后删除n个字符.

dd 删除光标所在的那一整行

ndd n为数字,从光标所在的位置开始,向下删除n行

d1G 删除光标所在位置到这个文件第一行的所有数据

dG 删除光标所在位置到最后一行的所有数据

yy,Y 复制光标所在的那一行

nyy,nY 复制光标所在位置向下的n行.

y1G 复制光标所在行到第一行的所有数据

yG 复制光标所在行到最后一行的所有数据

y0 复制光标所在的那个字符到该行行首的所有数据

y$ 复制光标所在的那个字符到该行行尾的所有数据

p P p 为将已复制的数据粘贴到光标所在行的下一行,P 为将已复制的数据粘贴到光标所在行的上一行.

u 取消上一步的操作,可持续取消到文件打开 时的状态,并不是上次文件保存的状态.

U: 取消当前光标所在行的所有操作.

ctrl+r 取消u取消的操作

. 就是小数点, 意思就是重复前一个操作.

进入编辑模式:

i I i 为从当前光标前处插入 I 为在当前光标所在行的行首插入.

a A a 为从当前光标所在的下一个字符处开始插入 A 为从光标所在行的行尾处开始插入

o O o 为在当前光标所在行的下一行处插入新的一行。 O 为在当前光标所在行的上一行插入新的一行.

r R 替换 r会替换光标所在的那一个字符       R 会一直替换光标所在的文字,直到按下Esc键为止

Esc 退出编辑模式,回到一般模式中

命令行模式

:w 将编辑的数据写入硬盘文件中

:w! 若文件属性为"只读"时,强制写入该文件,不过,能不能写入与该文件的权限有关.

:q 退出不保存(离开vi)

:q! 若修改过文件,使用! 为强制离开不存储文件. 注: ! 在vi中,!常常具有强制的意思

:wq 保存文件并退出vi :wq! 则为强制保存并退出vi

:e! 将文件还原到最原始的状态

ZZ 若文件没有更改,则不存储离开,若文件已经更改,则存储后离开

:w filename 将编辑的文件另存为一个新文件.

:r filename 在编辑的文件中,读入另一个文件中的数据, 即将filename这个文件的内容加到光标所在行的后面.

:n1、n2 w filename 将n1到n2之间的内容存储成filename文件

:! command 可暂时离开vi到命令行模式下执行command的显示结果. 例如: :! ls /home 即可 在vi中查看/home中以ls输出的文件信息

:set nu 显示行号,

:set nonu 取消显示行号

本文出自 “憂零的博客” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: