linux文本编辑器vi常用的命令模式命令

来源:互联网 发布:淘宝佰腾qq申诉 编辑:程序博客网 时间:2024/04/30 10:06

光标定位:

h,j,k,l   分别用于光标左移,下移,上移,右移一个字符

Ctrl+b  将屏幕向文件首方向翻滚一整屏(即PgUp

Ctrl+f  将屏幕向文件尾方向翻滚一整屏(即PgDn

H     将光标移至当前屏幕首行的行首(即左上角)

nH     将光标移至当前屏幕第N行的行首

M      将光标移至当前屏幕显示文件的中间行的行首

L       将光标移至当前屏幕最后一行的行首

nL     将光标移至当前屏幕的倒数第N行的行首

w      将光标右移至下一个字的字首

e     如果光标起始位置处于字内,则该命令将把光标移动到本字字尾;如果光标起始位置处于字尾,则该命令将把光标移动到下一个字的字尾

b    如果光标起始位置处于字内,则该命令将把光标移动到本字字首;如果光标起始位置处于字首,则该命令将把光标移动到上一个字的字首

0    移动到光标所在行的行首

$    移动到光标所在行的行尾

^    移动到光标所在行的第一个字符(非空格)

替换和删除:

rc   用字符c替换光标所指向的当前字符

nrc  用字符c替换光标及其右侧的n个字符

x   删除光标处的字符

nx   删除从光标所在位置开始向右的n-1个字符

dw  删除一个单词。若光标处的某个词的中间,则从光标所在位置开始删除移至删除到词尾(连空格一起删)

ndw  删除n个指定的单词

db   如果光标在某个单词首字母上,删除该词之前的一个词,如果光标在某个单词中间,删除光标所在位置之前的那部分单词

ndb   如果光标在某个单词首字母上,删除该词之前的n个词,如果光标在某个单词中间,删除光标所在位置之前的那部分单词及其之前的n-1个词

dd  删除光标所在的整行(剪切)

ndd 删除当前行及其后的n-1行的内容

复制和粘贴:

yy  将当前行的内容复制到缓冲区

nyy 将当前开始的n行内容复制到缓冲区

p  将缓冲区的内容写到光标所在行的下一行

撤销和重复:

/str 往右移动到有str的地方

str往左移动到有str的地方

n 向相同的方向移动到有str的地方

N向相反的方向移动到有str的地方

退出:

u 取消前一次的误操作或不合适的操作对文件造成的影响,使之恢复到这种误操作或不合适操作被执行之前的状态

. 再执行一次前面刚完成的某个复杂的命令

ZZ 存盘退出

ZQ 作废退出

n 直接输入要移动到的行号即可实现跳行

q 退出vi

wq 保存退出vi

q!不保存退出vi

文件相关:

w file 将当前编辑的内容存盘

n1n2 w file 将从n1开始到n2结束的行写到file文件中

nw file 将第n行写到file文件中

1.w file 将从第1行起到光标当前位置的所有内容写到file文件中

.$w file 将从光标当前位置到文件结尾的所有内容写到file文件中

r file 打开另一个文件file

e file 新建file文件

f file 把当前文件改名为file文件,保存后,新名字的文件及原文件都存在(相当于“另存为”)

字符串搜索、替换、删除:

/str/ 把当前光标开始往右移动到有str的地方

:?str 把当前光标开始往左移动到有str的地方

/str/ w file  将含有str的行写到文件file

/str1/ /str2/ w file 把从含str1开始到含str2结束的内容写到file文件

s/str1/str2/ 将第一个str1替换为str2(光标需停到含str1的行)

s/str1/str2/g 将所有的str1替换为str2(光标需停到含str1的行)

.$s/str1/str2/g 将从当前位置到结束的所有的str1替换为str2

文本的复制、移动和删除:

n1n2 co n3 将从n1开始到n2为止的所有内容复制到n3后面

n1n2 m n3 将从n1开始到n2为止的所有内容移动到n3后面

d 删除当前行

nd 删除整个文件的第n行;

dn 删除从当前行开始的n

n1n2 d 删除从n1开始到n2为止的所有内容

.$d  删除从当前行到结尾的所有内容

/str1/ /str2/d  删除含str1开始到含str2为止的所有内容

执行shell命令:

:!Cmd 运行shell命令Cmd

n1n2 w Cmd   n1n2行的内容作为Cmd命令的输入,如果不指定n1n2,则将整个文件的内容作为命令Cmd的输入

rCmd 将命令运行的结果写入当前行位置

原创粉丝点击