Vi常用基本命令Word文件下载.docx

上传人:b****2 文档编号:3313280 上传时间:2023-05-01 格式:DOCX 页数:30 大小:29.77KB
下载 相关 举报
Vi常用基本命令Word文件下载.docx_第1页
第1页 / 共30页
Vi常用基本命令Word文件下载.docx_第2页
第2页 / 共30页
Vi常用基本命令Word文件下载.docx_第3页
第3页 / 共30页
Vi常用基本命令Word文件下载.docx_第4页
第4页 / 共30页
Vi常用基本命令Word文件下载.docx_第5页
第5页 / 共30页
Vi常用基本命令Word文件下载.docx_第6页
第6页 / 共30页
Vi常用基本命令Word文件下载.docx_第7页
第7页 / 共30页
Vi常用基本命令Word文件下载.docx_第8页
第8页 / 共30页
Vi常用基本命令Word文件下载.docx_第9页
第9页 / 共30页
Vi常用基本命令Word文件下载.docx_第10页
第10页 / 共30页
Vi常用基本命令Word文件下载.docx_第11页
第11页 / 共30页
Vi常用基本命令Word文件下载.docx_第12页
第12页 / 共30页
Vi常用基本命令Word文件下载.docx_第13页
第13页 / 共30页
Vi常用基本命令Word文件下载.docx_第14页
第14页 / 共30页
Vi常用基本命令Word文件下载.docx_第15页
第15页 / 共30页
Vi常用基本命令Word文件下载.docx_第16页
第16页 / 共30页
Vi常用基本命令Word文件下载.docx_第17页
第17页 / 共30页
Vi常用基本命令Word文件下载.docx_第18页
第18页 / 共30页
Vi常用基本命令Word文件下载.docx_第19页
第19页 / 共30页
Vi常用基本命令Word文件下载.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Vi常用基本命令Word文件下载.docx

《Vi常用基本命令Word文件下载.docx》由会员分享,可在线阅读,更多相关《Vi常用基本命令Word文件下载.docx(30页珍藏版)》请在冰点文库上搜索。

Vi常用基本命令Word文件下载.docx

F光标移到当前光标位置前面的第一个指定的字符下

t光标移到当前光标位置后面的第一个指定的字符前

T光标移到当前光标位置前面的第一个指定的字符前

%光标移动到与当前括号匹配的括号处

:

n光标移动到指定行

按数字:

移到文章的开头。

按G:

移动到文章的最后。

按w:

光标跳到下个字的开头

按e:

光标跳到下个字的字尾

按b:

光标回到上个字的开头

按:

#l:

光标移到该行的第#个位置,如:

5l,56l。

跳至指定的行

Ctrl+g列出光标所在行的行号。

#G:

例如,15G,表示移动光标至文章的第15行行首

14.光标控制

k:

上移nk上移n行

j:

下移nj下移n行

将光标移到第n行,按下mk

将光标移到第m行,按下"

ay'

k

即将第n到m的行存到a寄存器,以此类推,b,c........寄存器等

屏幕翻滚类命令

Ctrl+u:

向文件首翻半屏

Ctrl+d:

向文件尾翻半屏

Ctrl+f:

向文件尾翻一屏

Ctrl+b;

向文件首翻一屏

nz:

将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

zz将当前行置于屏幕中央

zt将当前行置于屏幕顶端

zb将当前行置于屏幕底端

编辑插入文本类命令

i:

在光标前

I:

在当前行首

a:

光标后

A:

在当前行尾

o:

在当前行之下新开一行

O:

在当前行之上新开一行

r:

替换当前字符

R:

替换当前字符及其后的字符,直至按ESC键

s:

从当前光标位置处开始,以输入的文本替代指定数目的字符

S:

删除指定数目的行,并以所输入文本代替之

ncw或nCW:

修改指定数目的字

nCC:

修改指定数目的行

J删除换行符

u取消上次操作

ctr-R重做

c修改指定的内容,和d相似

p将删除缓冲区中的内容插入光标当前的位置

y复制

viabc

n跳至下一个文件,:

e#回到刚才编辑的文件。

比如当前编辑文件为a,:

n跳至b,再:

n跳至c,:

e#回到b,想回到a的话用:

ea

打开一个,vi文件名

然后在vi的命令输入状态下输入

sp另外一个文件的路径及文件名

如此就可以在一个窗口打开3个文件了。

可以使用ctrl+两次按w

在3个文件中切换

edit编辑一个新的文件

previous打开文件列表中的前一个文件

next打开文件列表中的后一个文件

args指定一个文件列表

saveas给文件改名

file给正在编辑的文件改名,但不保存

split将窗口分成上下两个窗口

vsplit将窗口分成左右两个窗口

split文件为制定的文件打开新窗口

new打开新窗口,以及一个无名的缓冲区

close关闭窗口

ctr-ww切换窗口

ctr-w[hjkl]切换到窗口

ctr-w[HJKL]移动窗口

only只保存当前窗口,其他窗口关闭

ctw-w+增加当前窗口高度

ctw-w-减小当前窗口高度

qall所有的窗口都退出

wall所有的窗口内容都写入文件

取消上一命令(Undo)

重复命令(Redo)

重复命令只能在命令模式下工作,在该模式下按“.”键既可。

执行一个重复命令时,其结果是依赖于光标当前位置的。

fx往右移动到x字元上

Fx往左移动到x字元上

tx往右移动到x字元前

Tx往左移动到x字元前

;

配合f&

t使用,重复一次

配合f&

t使用,反方向重复一次

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

?

string往左移动到有string的地方

n配合/&

使用,重复一次

N配合/&

使用,反方向重复一次

d删除(delete)

y复制(yank)

p放置(put)

c修改(change)

x删除光标下的字符("

dl"

的缩写)

X删除光标前的字符("

dh"

D从当前位置删除到行尾("

d$"

dw从当前位置删除到下一个单词开头

db从当前位置删除到前一个单词的开头

diw删除光标上的单词(不包括空白字符)

daw删除光标上的单词(包括空白字符)

dG删除到文末

dgg删除到文首

如果你用"

c"

代替"

d"

,这会变成修改命令;

而改用"

y"

,则变成拷贝命令

「cw」:

更改光标所在处的字到字尾处

「c#w」:

例如,「c3w」表示更改3个字

复制

「yw」:

将光标所在之处到字尾的字符复制到缓冲区中。

「#yw」:

复制#个字到缓冲区

「yy」:

复制光标所在行到缓冲区。

「#yy」:

例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。

「p」:

将缓冲区内的字符贴到光标所在位置。

注意:

所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

daB删除{}及其内的内容(在非v可视模式下)

diB删除{}中的内容

ab选择()中的内容

ib选择()中的内容(不含())

aB选择{}中的内容

iB选择{}中的内容(不含{})

·

变量定位

gd转到光标下局部变量的定义处

Gd转到光标下全局变量的定义处

rfilename将文件filename插入在当前行之下

复制与剪切

xp交换前后两个字符的位置

ddp上下两行的位置交换

g/fred/t$拷贝行,从fred到文件末尾(EOF)

删除命令

ndw或ndW:

删除光标处开始及其后的n-1个字

do:

删至行首

d$:

删至行尾

ndd:

删除当前行及其后n-1行

x或X:

删除一个字符,x删除光标后的,而X删除光标前的

删除输入方式下所输入的文本

u撤消前一条命令的结果

.重复最后一条修改正文的命令

搜索及替换命令

/pattern:

从光标开始处向文件尾搜索pattern

pattern:

从光标开始处向文件首搜索pattern

n:

在同一方向重复上一次搜索命令

N:

在反方向上重复上一次搜索命令

s/p1/p2/g:

将当前行中所有p1均用p2替代

n1,n2s/p1/p2/g:

将第n1至n2行中所有p1均用p2替代

g/p1/s//p2/g:

将文件中所有p1均用p2替换

/向后搜索

向前搜索

``跳转到前一个位置

`a跳转到标记为a的位置

ma将光标的当前位置标记为a

`[跳转到最后一次修改的起始位置

`]跳转到最后一次修改的结束位置

`"

跳转到上次编辑该文件时光标最后停留的位置

s替换

substitute替换

%s/a/a/c对所有行替换

m,ns/a/a/c对从m到n行替换

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

nrc用c替换光标所指向的前n个字符

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

x删除光标所指向的当前字符

nx删除光标所指向的前n个字符

3x删除光标所指向的前3个字符

dw删除光标右侧的字

ndw删除光标右侧的n个字

3dw删除光标右侧的3个字

db删除光标左侧的字

ndb删除光标左侧的n个字

5db删除光标左侧的5个字

dd删除光标所在行,并去除空隙

ndd删除n行内容,并去除空隙

3dd删除3行内容,并去除空隙

从正文中删除的内容(如字符、字或行)并没有真正丢失,而是被剪切并复制到了一个

内存缓冲区中。

用户可

将其粘贴到正文中的指定位置。

完成这一操作的命令是:

p小写字母p,将缓冲区的内容粘贴到光标的后面

P大写字母P,将缓冲区的内容粘贴到光标的前面

yy复制当前行到内存缓冲区

nyy复制n行内容到内存缓冲区

5yy复制5行内容到内存缓冲区

/str1正向搜索字符串str1

n继续搜索,找出str1字符串下次出现的位置

str2反向搜索字符串str2

给出一个字符串,可以通过搜索该字符串到达指定行。

如果希望进行正向搜索,将待搜

索的字符串置于两个“

/”之间;

如果希望反向搜索,则将字符串放在两个“?

”之间。

例如:

/str/正向搜索,将光标移到下一个包含字符串str的行

str?

反向搜索,将光标移到上一个包含字符串str的行

/str/wfile正向搜索,并将第一个包含字符串str的行写入file

文件

/str1/,/str2/wfile正向搜索,并将包含字符串str1的行至包含字符串s

tr2的行写

正文替换

利用:

s命令可以实现字符串的替换。

具体的用法包括:

s/str1/str2/用字符串str2替换行中首次出现的字符串str1

s/str1/str2/g用字符串str2替换行中所有出现的字符串str1

.,$s/str1/str2/g用字符串str2替换正文当前行到末尾所有出现的字符串str1

1,$s/str1/str2/g用字符串str2替换正文中所有出现的字符串str1

g/str1/s//str2/g功能同上

从上述替换命令可以看到:

g放在命令末尾,表示对搜索字符串的每次出现进行替换;

不加g,表示只对搜索

字符串的首次出现进行替换;

g放在命令开头,表示对正文中所有包含搜索字符串的行

进行替换操作。

%s/old_word/new_word/g

这个指令是于在整个文件中替换特定字符串

字串搜寻与取代

s(substitute)指令可搜寻某行列范围。

g(global)指令则可搜寻整个编辑缓冲区的资料。

s指令以第一个满足该条件的字串为其取代的对象,若该行有数个满足该条

件的字串,也仅能取代第一个,若想取代所有的字串则需加上g参数。

7)查找替换

/<

C-R>

<

C-W>

把狭义单词<

cword>

写到搜索命令行

C-A>

把广义单词<

cWORD>

g/str/s/str1/str2/g

第一个g表示对每一个包括s1的行都进行替换,

第二个g表示对每一行的所有进行替换

包括str的行所有的str1都用str2替换

%s/f$/for$/g将每一行尾部的“f”(f键和空格键)替换为for

%s/^/mv/g在每一行的头部添加“mv”(mv键和空格键)

s/fred/<

c-r>

a/g替换fred成registera中的内容,呵呵

g/<

input|<

form/p显示含<

input或<

form的行

#替换一个visual区域

#选择一个区域,然后输入:

s/Emacs/Vim/等等,vim会自动进入:

模式

'

'

>

s/Emacs/Vim/g前面的'

是vim自动添加的

#在多个文档中搜索

bufdo/searchstr

argdo/searchstr

全局替换

语法为:

[addr]s/源字符串/目的字符串/[option]

全局替换命令为:

%s/源字符串/目的字符串/g

[addr]表示检索范围,省略时表示当前行。

如:

“1,20”:

表示从第1行到20行;

“%”:

表示整个文件,同“1,$”;

“.,$”:

从当前行到文件尾;

s:

表示替换操作

[option]:

表示操作类型

g表示全局替换;

c表示进行确认

p表示替代结果逐行显示(Ctrl+L恢复屏幕);

省略option时仅对每行第一个匹配串进行替换;

如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义

选项设置

all:

列出所有选项设置情况

term:

设置终端类型

ignorance:

在搜索中忽略大小写

list:

显示制表位(Ctrl+I)和行尾标志($)

number:

显示行号

report:

显示由面向行的命令修改过的数目

terse:

显示简短的警告信息

warn:

在转到别的文件时若没保存当前文件则显示NOwrite信息

nomagic:

允许在搜索模式中,使用前面不带“\”的特殊字符

nowrapscan:

禁止vi在搜索到达文件两端时,又从另一端开始

mesg:

允许vi显示其他用户用write写到自己终端上的信息

状态命令<

Ctrl+G>

命令显示在vi状态行上的vi状态信息,包括正在编辑的文件名、是否修改过、当前行号、文件的行数以及光标之前的行占整个文件的百分比。

autoindent设置该选项,则正文自动缩进

ignorecase设置该选项,则忽略规则表达式中大小写字母的区别

number设置该选项,则显示正文行号

ruler设置该选项,则在屏幕底部显示光标所在行、列的位置

tabstop设置按Tab键跳过的空格数。

例如:

settabstop=n,n默认值为8

mk将选项保存在当前目录的.exrc文件中

环境的设定

==========

setnu设定资料的行号。

setnonu取消行号设定。

setai自动内缩。

setnoai取消自动内缩。

17.vi环境选项Solarisksh

noautoindentnomodelinesnoshowmode

autoprintnonumbernoslowopen

noautowritenonovicetabstop=8

nobeautifynooptimizetaglength=0

directory=/var/tmpparagraphs=IPLPPPQPPLIpplpipnpbtags=tags/usr/lib/tags

noedcompatibleprompttagstack

noerrorbellsnoreadonlyterm=vt100

noexrcredrawnoterse

flashremaptimeout

hardtabs=8report=5ttytype=vt100

noignorecasescroll=11warn

nolispsections=NHSHHHUuhsh+cwindow=23

nolistshell=/bin/kshwrapscan

magicshiftwidth=8wrapmargin=0

mesgnoshowmatchnowriteany

ForC-Shell:

setenvEXINIT"

setnu"

ForBourneorKornShell:

EXINIT="

exportEXINIT

ForKornShellOnly(alternatemethod):

typeset-xEXINIT="

在.profile里设置vi的环境选项,以上均测试过

18.标记文本

mchar  用字母char标记当前光标的位置

`char  移至char所标记处

char  移至char标记所在行的开头处

"

    移至当前行上一次所在位置(在光标移动之后)――一个双引号

    移至当前行上第一次所在位置的行的开头处(在光标移动之后)――两个单引号

19.

同时vi多个文件时,CTRL-SHIFT-6回到上一个文件,在本次vi的文件和上次vi的文件之间切换。

但是我发现一个BUG:

在用CTRL-SHIFT-6切换到上一个文件后,用:

args查看多文件vi状态时,

屏幕底部仍然显示目前vi的是刚才的文件。

(在HP-UX,Solaris,AIX上通过)

也可以使用:

e#

进行切换

组合命令

dw"

命令删除一个单词。

你可能认出来了,"

w"

是词移动命令。

实际上,"

令后面可以跟任何"

动作"

(motion)命令,它会删除从当前位置到光标移动到的目标

位置的的全部内容。

例如"

4w"

命令能够向后移动四个单词。

所以"

d4w"

命令删除4个单词。

e"

命令作为动作,这时Vim认为你是想删掉整个单词(包括最后一个字符)

$"

命令移动到行尾。

所以,"

命令从当前的位置一直删除到本行行尾。

这是一个"

包含的"

命令,所以,这行的最后一个字符也会被删除

另一个操作符命令是"

,表示修改,change。

它的作用方式与"

操作符相似,只是完成后会切换到插入模式。

例如,"

cw"

修改一个词,更精确的说,它删除一个词,并切换到插入模式。

这里"

c2wbe<

Esc>

包括如下操作:

c修改操作符

2w移动两个单词的距离(与操作符合起来,它删除两个单词并进入插入模式)

be插入be这个单词

切换回普通模式

删除到行尾;

c$"

则修改到行尾。

这就象先用"

删除一行再用"

a"

启动插入模式并加入新的文字。

快捷键

有些"

操作符-动作"

命令由于经常被使用,所以被设置为单字符命令:

x表示dl(删除当前光标下的字符)

X表示dh(删除光标左边的字符)

D表示d$(删除到行尾)

C表示c$(修改到行尾)

s表示cl(修改一个字符)

S表示cc(修改一整行)

重复一个修改

."

是Vim中一个非常简单而有用的命令。

它重复最后一次的修改操作。

例如,假设你在

编辑一个HTML文件,你想删除所有的<

B>

标记。

你把光标移到第一个"

上,然后用

df>

命令删除<

然后你就可以移到<

/B>

的<

上面用"

命令删除它。

命令

执行最后一次的修改命令(在本例中,就是"

)。

要删除下一个<

标记,移动到下

一个<

的位置,再执行"

命令即可。

To<

generate<

atableof<

contents

f<

找第一个<

--->

删除到>

-->

找下一个<

--------->

重复df>

------------->

命令重复任何除"

u"

(undo),CTRL-R(redo)和冒号命令外的修改。

关于粘贴的更多知识

P"

命令象"

p"

一样也是插入字符,但插入点在光标前面。

当你用"

dd"

删除一行,

会把它插入到光标所在行的前一行。

而当你用"

删除一个单词,"

会把它

插入到光标前面。

你可以执行这个命令多次,每次会插入相同的文本。

和"

命令接受个数前缀,被插入的文本就会被插入指定的次数。

加一个"

3p"

会把删除行的三个拷贝插入到文本中。

交换两个字符

经常发生这样的情况,当你输入字符的时候,你的手指比你的脑子转得快(或者相反?

这样的结果是你经常把"

the"

敲成"

teh"

Vim让你可以很容易得修正这种错误。

只要把

光标移到"

的"

上,然后执行"

xp"

即可。

这个工作过程是:

x"

删除一个字符,

保存到寄存器。

把这个被保存的字符插入到光标的后面,也就是"

h"

的后面了。

tehththe

xp

由于"

是一个操作符,所以"

yw"

命令就是拷贝一个单词了。

当然了,个数前缀也是

有效的。

要拷贝两个单词,就可以用"

y2w"

letsqr=LongVariable*

-------------->

y2w

letsqr=LongVariable*p

letsqr=LongVariable*LongVariable

命令包括单词后面的空白字符。

如果你不想要这个字符,改用"

ye"

命令。

yy"

命令拷贝一整行,就像"

删除一整行一样。

出乎意料地是,"

D"

删除到行尾而

Y"

却是拷贝一整行。

要注意这个区别!

y$"

拷贝到行尾。

使用剪贴板

Cut"

菜单项会在把文字拷进剪贴板前删除它。

Copy"

,"

Paste"

命令在弹出

菜单中也有(当然了,前提是有弹出式菜单)。

如果你的Vim有工具条,在工具条上

也能找到这些命令。

如果你用的不是GUI,或者你根本不喜欢用菜单,你只能用其它办法了。

你还是可以用普通

的"

(yank)和"

(put)命令,但在前面必须加上"

*(一个双引号加一个星号)。

例如,要拷贝一行到剪贴板中:

*yy

要粘贴回来:

*p

这仅在支持剪贴板的Vim版本中才能工作。

文本对象

如果你在一个单词的中间而又想删掉这个单词,在你用"

前,你必须先移到这个单词的

开始处。

这里还有一个更简单的方法:

daw"

thisissomeexampletext.

daw

thisissometext.

是删除操作

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2