Linux——vi命令详解
原创vi编辑是所有人Unix及Linux该系统下的标准编辑器并不比任何最新的文本编辑器差。这里简要介绍了它的用法和一小部分说明。由于Unix及Linux系统的任何版本,vi编辑器完全相同,因此您可以在任何其他版本中介绍它vi了解更多信息的地方。Vi也是Linux最基本的文本编辑器,学习后,您将进入。Linux世界畅通无阻。
1 、vi基本概念
基本上vi可分为三种状态,即命令模式(command mode),插入模式(Insert mode)和底行模式(last line mode),每种模式的功能区分如下:
1) 命令行模式command mode)
控制屏幕光标的移动,删除字符、单词或行,移动以复制节并输入Insert mode向下,或 last line mode。
2) **插入模式** (Insert mode)
只有在Insert mode在“可以进行文本输入”下,单击“”ESC返回命令行模式的键。
3) 底行模式(last line mode)
保存或退出文件vi,您还可以设置编辑环境,例如查找字符串、列出行号……等等。
但通常当我们使用它时。vi简化成两个模式,就是将底行模式(last line mode)在命令行模式下也计数command mode)。
2 、vi基本操作
a) 进入vi
输入系统提示符号vi和文件名,输入vi之后,它处于“命令行模式”(command mode),您要切换到“插入模式”(Insert mode)“以便能够输入文本。初始使用vi人们会想先使用上、下、左和右键移动光标。结果,电脑不断发出嘟嘟声,使自己半死不活,于是他们进入vi之后,不要触摸,切换到“插入模式”(Insert mode)“我们来谈谈吧!
b) 切换到插入模式(Insert mode)编辑文件
在命令行模式下(command mode)“单击字母”i您可以进入“插入模式”(Insert mode)“,此时您可以开始键入文本。
c) Insert 的切换
当前处于插入模式(Insert mode),如果您发现输入了错误的单词,则只能一直输入文本!如果要使用光标键向后移动并删除单词,必须首先单击ESC转到命令行模式(command mode)“然后删除文本。
d) 退出vi并保存文档
在命令行模式下(command mode),单击“:”冒号键输入Last line mode“,例如:
w filename (输入 「w filename“将文章设置为指定的文件名filename保存)
wq (输入「wq“,保存并退出vi)
q! (输入q!, 强制退出而不保存vi)
3 ,命令行模式(command mode)功能键
1 ). 插入模式
按「i“切换到插入模式”insert mode」,按"i"进入插入模式后,输入文件从光标的当前位置开始;
按「a进入插入模式后,从当前光标位置的下一个位置输入文本;
按「o进入插入模式后,从行输入文本的开头开始插入新行。
2 ). 从插入模式切换到命令行模式
按「ESC」键。
3 ). 移动光标
vi您可以直接使用键盘上的光标上下移动,但正常vi它是小写字母h」、「j」、「k」、「l分别控制光标向左、向下、向上和向右移动网格。
按「ctrl」+「b“”:屏幕"后"移动页面。
按「ctrl」+「f“”:屏幕"前"移动页面。
按「ctrl」+「u“”:屏幕"后"移动半页。
按「ctrl」+「d“”:屏幕"前"移动半页。
按数字「0“:移至文章开头。
按「G“:移至文章末尾。
按「$“”:移动到"行尾"。
按「^“”:移动到"行首"
按「w“”:光标跳到下一个单词的开头
按「e“”:光标跳到下一个单词的末尾
按「b“”:光标返回到最后一个单词的开头
按「#l“”:光标移动到第一个#位置,如:5l,56l。
4 ). 删除文字
「x“”:每次按下时,删除"后面"一个角色。
「#x“:例如,”6x“表示光标的位置已删除。"后面"6个字符。
「X“”:大写X,每次按下时,删除"前面"一个角色。
「#X“:例如,”20X“表示光标的位置已删除。"前面"20个字符。
「dd“:删除光标的行。
「#dd“:从光标所在的行中删除#行
5 ). 复制
「yw:将光标到单词末尾的字符复制到缓冲区中。
「#yw」:复制#要缓冲的字
「yy“”:将光标的行复制到缓冲区。
「#yy“:例如,”6yy“指示从光标复制行"往下数"6行文字。
「p“:将缓冲区中的字符放置到光标的位置。注意:全部"y"相关的复制命令必须与"p"配合完成复制和粘贴功能。
6 ). 替换
「r“”:替换光标处的字符。
「R“:替换光标到达的字符,直到按“”ESC钥匙
7 ). 回复上次操作
「u“:如果错误执行命令,您可以立即按”u返回上一操作。多次按下"u"可以执行多个回复。
8 ). 更改
「cw“”:将光标处的单词更改为单词末尾
「c#w“:例如,”c3w“表示更改3个字
9 ). 跳转到指定行
「ctrl」+「g列出光标所在行的行号。
「#G“:例如,”15G“,这意味着将光标移动到文章的第一页。15行行首。
4 、Last line mode下一个命令简介
在使用「last line mode“请记住按”ESC确保您已在command mode单击“:”冒号输入last line mode」。
A) 列出行号
「set nu“:输入”set nu“,行号列在文档的每一行之前。
B) 跳转到文件中的行
「#」:「#数字表示一个数字。在冒号后输入一个数字,然后按Enter键跳到该行,例如输入数字。15,再次上车,你会跳到文章的第一部分15行。
C) 查找字符
「/关键词:第一次点击/“键,然后输入您想要查找的字符,如果第一次查找关键字不是您想要的,您可以始终按”n你会找到你想要的关键词。
「?关键词:第一次点击?“键,然后输入您想要查找的字符,如果第一次查找关键字不是您想要的,您可以始终按”n“将向前搜索,直到找到所需的关键字。
D) 保存文件
「w“:在冒号中输入字母”w您可以保存文档。
E) 离开vi
「q」:按「q”如果你不能离开,就退出vi可以在q“后面跟着一个”!被迫离开vi。
「qw“”:通常建议w“一起使用,以便在退出时保存文件。
5 、vi命令列表
1 下表列出了命令模式下某些键的功能:
h
将光标向左移动一个字符
l
将光标向右移动一个字符
k
将光标上移一行
j
将光标向下移动一行
^
将光标移动到行首
0
数字"0"光标移动到文章的开头
G
将光标移动到文章末尾
$
将光标移动到行尾
Ctrl+f
向前翻屏
Ctrl+b
向后翻屏
Ctrl+d
向前翻转半屏幕
Ctrl+u
翻转半屏幕
i
在光标位置之前插入字符
a
在光标位置后增加一个字符
o
从行首开始插入新行。
ESC
从输入状态返回到命令状态
x
删除光标后的字符
x
删除光标后的#个字符
X
(大写X)删去字符
X
删去#个字符
dd
删除光标的行
dd
从光标中删除行数#行
yw
在光标位置复制单词
yw
复制#个字
yy
复制一行
yy
从光标复制行数#行
p
粘贴
u
取消操作
cw
在光标位置更改单词
cw
更改的光标位置#个字
2 下表列出了行驶命令模式中的一些说明。
w filename
保存正在编辑的文件filename
wq filename
保存正在编辑的文件filename,并退出vi
q!
放弃所有更改,退出vi
set nu
显示行号
/或?
查找,在/输入要查找的内容
n
与/或?如果要查找的内容不是要查找的关键字,请按n或向后(/组合)或向前(?组合)继续搜索,直到找到它。
第一次使用vi,有几点需要提醒:
1、用vi打开文件后,它处于“命令行模式”(command mode),您要切换到“插入模式”(Insert mode)」才能够输入文字。切换方法:在命令行模式下(command mode)“单击字母”i您可以进入“插入模式”(Insert mode)“,此时您可以开始键入文本。
2、编辑好后,需从插入模式切换到命令行模式才能对文件进行保存,切换方法:按「ESC」键。
3保存并退出文件:在命令模式中,输入:wq你可以!(别忘了wq前面的:)
在屏幕上移动
Vi提供了三个命令,用于光标在整个屏幕上移动,以及文件本身不滚动。它们分别是H、M和L命令。
H**命令**
此命令将光标移动到屏幕第一行的开头(即左上角),这是当前屏幕的第一行,而不是整个文件的第一行。使用此命令将光标快速移动到屏幕顶部。如果在H命令前面有数字n将光标移动到n行的开头。
M**命令**
该命令将光标移至屏幕显示文件的中间行的开头。即如果当前屏幕已经充满,则移动到整个屏幕的中间行;如果并未充满,则移动到文本的那些行的中间行。利用此命令可以快速地将光标从屏幕的任意位置移至屏幕显示文件的中间行的开头。例如,在上面屏幕显示的情况下(不论光标在屏幕的何处),在命令模式中,输入命令M之后,光标移动add这行中的字母a上。
还值得一提的是,使用命令dM将删除从光标当前行到屏幕显示文件中间行的全部内容。
L**命令**
当文件显示内容超过一屏时,该命令将光标移至屏幕上的最底行的行首;当文件显示内容不足一屏时,该命令将光标移至文件的最后一行的开头。可见,利用此命令可以快速准确地将光标移至屏幕底部或文件的最后一行。若在L命令前面有数字n将光标移动到屏幕底部的第一个位置。n行的开头。例如,在上面屏幕显示的情况下(不论光标在屏幕的何处),在命令模式中,输入命令3L之后,光标移动x++这行中的字母x上。
还值得一提的是,使用命令dL从光标当前行到屏幕底部行的所有内容都将被删除。
按单词移动光标
首先介绍Vi“word.In”的概念Vi单词“word”有两个意思。一个是广义词,可以是两个空格之间的任何词。另一种类型的单词是狭义的单词,其中包括英语单词、标点符号和非字母字符(例如。!、@、#、$、%、^、&、*, (,),-、+、{、}、[、]、~、|、"、<、>、/等等)被视为一个词。因此,上述行包括{、int、k、;这4个字。
Vi在中使用大写命令通常是指将单词视为广义,而使用小写命令则视为狭义。
搞清楚Vi中字的含义后,我们就可以介绍按单词移动光标的命令了。
Vi 一共提供了三组关于按单词移动光标的命令,分别是:
w**和W命令**
将光标向右移动到下一个单词的开头;
e**和E命令**
如果光标开始位置在单词内(即,不在单词末尾),命令将光标移动到单词末尾;如果光标开始位置在单词的末尾,命令将光标移动到下一个单词的末尾。
b**和B**
如果光标在单词中(即不是开头),命令会将光标移动到单词的开头;如果光标位于单词的开头,则命令会将光标移动到上一个单词的开头。
按句子移动光标
在Vi在中,句子定义为逗号(,),完全停止(.),问号(?)和感叹号(!),后面是一系列至少有两个或更多(包括两个)空格或换行符的字符。
Vi提供了关于按句子移动光标的两个命令,分别为:
1. ( 命令
将光标移到上一句的开头。
2. ) 命令
此命令将光标移动到下一句的开头。
按段移动光标
在Vi段定义为以空行开始和结束的片段。Vi提供两个按线段移动光标的命令:
1. { 命令
此命令将光标向前移动到上一段的开头;
2. } 命令
此命令将光标移回下一段的开头。
屏幕滚动
屏幕命令以屏幕为单位移动光标,通常用于滚动和分页文件。请注意,屏幕命令不是光标移动命令,不能用作删除命令中的文本限定符。
屏幕滚动命令在命令模式和文本输入模式下都可用。
1. 滚屏命令
有两个滚动命令:
· < Ctrl+u > 将屏幕向前滚动(沿文件头方向)半个屏幕;
· < Ctrl+d > 将屏幕向后翻转(朝向文件末尾)一半屏幕。
您可以在这两个命令在前面加一个数字n屏幕向前或向后滚动n好吧这个值会被系统记住并在以后使用。< Ctrl+u >和< Ctrl+d >当命令滚动时,它还会滚动相应的行数。
2. 分页命令
关于分页命令还有两个:
· < Ctrl+f > 将屏幕滚动到文件末尾以全屏显示(即a页);
· < Ctrl+b > 将屏幕滚动到文件的开头,以全屏显示(例如,一页)。
同样也您可以在这两个命令在前面加一个数字n屏幕向前或向后移动n页。
3. 状态命令< Ctrl+G >
命令显示在vi在状态行上vi状态信息,包括正在编辑的文件名、是否已修改、当前行号、文件中的行数以及光标前文件中行的百分比。
4. 屏幕归零命令
Vi 为屏幕调零提供了三个命令。其格式为:
· [行号] z [行数] <回车>
· [行号] z [行数] .
· [行号] z [行数] _
如果省略了行号和行数,则三个命令分别将光标所在的当前行重新显示为屏幕的第一行、中间行和最后一行。如果给出了行号,则与行号对应的行显示为屏幕的第一行、中间行和最后一行。如果给定了行数,则指定屏幕上显示的行数。
[例13]
8z16<回车> :文件中的编号。8行作为屏幕显示的第一行,总计16行。
15z . :文件中的编号。15该线用作屏幕显示的中间线,显示线的数量是整个屏幕。
15z 5_ :文件中的编号。15该行是屏幕上显示的最后一行,显示的行数为5行。
文本插入操作
用户在命令模式下输入的任何字符都是Vi要作为命令进行解释和执行,如果用户希望以文本形式输入字符,第一步是Vi工作模式从命令模式切换到文本输入模式。切换的方法是使用以下命令。
插入(Insert)命令
Vi提供了两个插入命令:i和 I。
i**命令**
在光标位置之前插入文本,在插入过程中,可以使用键删除错误的输入。此时Vi在插入状态下,屏幕的底行显示“-INSERT-“(插入)。
I**命令**
该命令将光标移动到当前行的开头,并在其前面插入文本。
附加(append)命令
Vi提供了两个附加的插入命令:a和A。
a**命令**
此命令用于在光标的当前位置之后附加新文本。新输入的文本放置在光标后面,光标后面的原始文本将相应地向后移动。光标可以位于直线上的任何位置。
A**命令**
该命令与a命令不同,A该命令将光标移动到行的末尾,并从那里插入新文本。进入时A命令,光标将自动移动到行的末尾。
a和A命令是在行尾插入文本的唯一方法。
打开(open)命令
不论是Insert订单,或append命令也很好,插入的内容从当前行中的某个位置开始。如果我们想在一行之前或之后插入一些新行,我们应该使用open命令。
Vi提供了两个打开命令:o和O。
o**命令**
该命令将在光标所在行下方打开一个新行,将光标放置在该行的开头,并等待输入文本。应当注意,当使用删除字符时,只有从插入图案开始的位置之后的字符可以被删除,并且它不适用于先前的字符。您还可以在文本输入模式中输入一些控制字符,例如,Ctrl+l即,插入并显示分页符^L。
O**命令**
和o而是命令,O命令是在光标所在的行上方插入一行,将光标放在行的开头,然后等待输入文本。
11.3.4 文本修改
在命令模式中,可以使用Vi提供各种相关命令来修改文本,包括删除、复制、替换和替换文本内容。
文本删除
编辑文本时,通常需要删除一些不必要的文本。我们可以使用该键删除错误或不必要的文本,但此时存在一个限制,即在删除行首后无法删除上面行的内容。
在命令模式中,Vi提供了许多删除命令。这些订单大多基于d的开头。常用的有:
1. 删除单个字符
x: 删除光标处的字符。如果在x添加数字之前n删除光标位置的右侧n个字符。
X:删去那个字符。若在X添加数字之前n,删除光标前面字符的左侧n个字符。
显然,这两个命令是删除少量字符的快速方法。
2. 删除多个字符
dd删除光标的整行。在里面dd前面可以是数字n,表示删除当前行及其后续行n-1行的内容。
D或d$:两个命令具有相同的功能,删除光标到行尾的内容。
d0:删除从光标的第一个字符到行首的内容。
dw删除一个单词。如果光标位于单词中间,请将其从光标位置删除到单词末尾。相同的dd与命令一样,它可以用于dw在前面添加数字n,表示删除n指定的单词。
如果用户不小心删除了它,Vi提供恢复错误操作的命令,恢复的内容可以移动并放置在文本中的任何位置。Restore命令² np,其中n是注册号。这是因为Vi内部有9用于维护删除操作的寄存器,每个寄存器都有一个数字。1,2,¼ ,9说他们在过去得救了。dd删除内容的命令。这些寄存器形成一个队列,例如最后使用的dd将要删除的命令内容放入寄存器1在里面下次再次使用时dd删除文本内容的命令,Vi将登记簿放入1的内容被转移到寄存器中。2当寄存器1这将是最晚的时间。dd删除内容的命令。等等Vi可以保存最后九次dd删除上一个的内容的命令dd命令删除的内容将被丢弃。
在最后一行模式下,您也可以删除文件的内容,但它只能删除整行,一次可以删除指定范围的所有行(起始行号、结束行号)。应当注意,当以这种方式删除时,Vi它不会将删除的内容放入寄存器,因此当发生错误的删除操作时,无法使用它。² np命令恢复,只能使用u订购有限的恢复。
最后,我想提到如何在文本输入模式中删除输入的文本。用户可以使用组合键,光标将返回到插入开始的位置,并且Vi仍处于文本输入模式。
取消上一个命令(Undo)
取消上一个命令(Undo),也称为recovery命令,是一个非常有用的命令。它可以取消以前的错误操作或不适当操作对文件的影响,并将其恢复到执行错误操作或不当操作之前的状态。
取消上一个命令有两种形式,即在命令模式下键入字符u和U。它们的功能是取消刚刚输入的命令,并将其恢复到原始状态。小写字母u和大写U具体细节不同,两者的区别在于资本U该命令的功能是恢复到误操作命令之前的状态,即如果插入并使用该命令U命令,删除刚刚插入的内容;U命令相当于在光标处插入刚刚删除的内容。所有修改文本的命令都被视为插入命令。也就是说,U如果使用U该命令将撤消上一个操作,然后按U键入时,不会撤消上一操作,而是撤消上一个操作。U命令执行的操作是恢复到第一次使用U命令之前的状态,结果是什么都没有做。和小写字母u该命令的功能是将当前行恢复到其编辑前状态,而不管该行被编辑了多少次。
注意:对于“取消”命令,仍然可以再次使用“取消”。此时,将产生“负-正”效果,文件的状态将恢复到第一次执行取消命令之前的状态,就像没有执行任何操作一样。例如,在上面的示例中,再次使用命令U,插入后屏幕仍将显示内容。
重复命令(Redo)
repeat命令也是一个非常常见的命令。在文本编辑中,经常需要机械地重复一些操作,然后需要使用重复命令。它允许用户轻松地重新执行刚刚完成的复杂命令。
重复命令只能在命令模式下工作,在此模式下,按“.“键可用。执行重复命令时,结果取决于光标的当前位置。
修改文本内容
修改文本内容是指在编辑过程中,可以对文本中的某些字符,某些行进行修改,即用新输入的文本代替需要修改的老文本,它等于先用删除命令删除需要修改的内容,然后再利用插入命令插入新的内容。所以在使用修改命令后,vi进入文本输入模式,当输入新内容时,确保按回到命令模式,否则Vi将始终被视为处于文本输入模式,此时输入的任何内容都被视为已修改的新内容。
Vi提供了三个修改命令,分别是c、C和cc它们修改文本的程度由光标位置和光标移动命令定义。三个修改命令如下所述。
c**命令**
c随后是光标移动命令,该命令将修改范围从光标的当前位置限制到指定位置。命令c中修改文本的范围由光标位置和光标移动命令定义。
C 、c$命令
C 、c$该命令可以将内容从光标的当前位置修改到行尾,或从光标的位置修改到行尾。
当在命令C添加数字之前n指示可以修改指定行数的内容。例如3C该命令意味着删除光标位置字符之后的两整行内容(注意不是整行),并用随后输入的内容替换。
cc**命令**
cc命令的功能和C同样,只是修改范围和C不同的是,它是将内容从光标所在行的起始位(无论光标位于行的哪一列)修改到行的结尾,或指定行的结尾。光标行的全部内容将被新输入的内容替换。
同命令C同样,也可以在。cc添加数字之前n,指示应从光标的当前行进行总共的修改。n行的内容。例如5cc指示带有光标和4行,然后输入要修改的内容。
文本的替换
文本替换是用新输入的文本替换原始文本。它与文本修改相同,首先执行删除操作,然后执行插入操作。
Vi提供的替换命令是替换命令、替换命令和单词替换命令。
1. 取代命令 :r和R
r用随后输入的字符替换当前光标处的字符。
R:用随后输入的文本替换当前光标前后的多个字符,每输入一个字符替换原来的一个字符,直到按< Esc >键结束此替换。如果新输入的字符数超过原始对应的字符数,则额外的部分将附加到后面。
若在命令R添加数字之前,例如5R新输入的文本重复出现5时间,但仅替换输入文本覆盖的一系列字符,当前行中未覆盖的内容将保留,但位置将相应地向右移动。
值得一提的是R替换文本内容时,新输入的文本可以占用多行,并且在替换过程中仅覆盖光标所在行中的相应字符。
新输入的6字符(包括空格但不包括< Esc >)替换6个字符。
2. 替换命令:s和S
s(小写):此命令表示用随后输入的文本替换当前光标处的字符。
如果仅用一个新字符替换光标处的字符,s命令与r命令功能类似,例如sh与rh的功能是更改光标处的字符h但两者之间也有区别,r命令仅完成替换,而s当命令完成替换时,工作模式将从命令模式更改为文本输入模式。因此s使用该命令的一般方法是:s后面是要替换的文本,最后必须是, 结束文本输入模式并返回命令模式。
可以在s在前面加一个数字n,那么它意味着使用s后面输入的文本将替换光标开头的字符n-1字符(总计n字符)。
S(大写):此命令表示用新键入的文本替换光标的当前行(整行)(无论光标所在的列如何)。
如果在S在之前给出一个数字n,例如3,这意味着3行(包括光标的当前行及其下方2行)要被S由命令后输入的正文替换。
3. 字替换 cw
如果我们只想用其他文本字符串替换单词的内容,我们可以使用cw命令。cw替换是一个狭隘的词。在输入该命令之后,Vi光标处的单词将被删除,然后用户可以输入任何文本内容。输入完成后按键,Vi也就是说,从原始光标位置到对应单词末尾的所有内容都被输入的内容替换。
合并文本行
Vi提供合并某些文本行的命令。使用此命令J(大写字母)表示其功能是将光标所在的行和下面的行合并为一行。
如果在J命令在之前给出一个数字n,例如3,表示光标的当前行和2行(共3行)合并为一行。
文本行的移动
在Vi我们可以轻松地将一系列文本行从一个地方移动到另一个地方。
文本行的向左或向右移动。
向左和向右移动文本行的命令如下 >、<、>> 和 <<四个。
(1)> 命令将限定的正文行(屏幕的第一行)向右移动,通常8空格,格式为:>光标移动命令。移动文本行的范围由光标所在的行和随后输入的光标移动命令定义。
(2)< 该命令将限定体线向左移动。其用途和>命令是相同的,只是向相反的方向移动。例如<6M,在屏幕显示的当前行和中间行之间向左移动光标8个空格。
(3)>> 向右移动光标行的命令8一个空间。如果在>>命令在之前给出一个数字n,例如4光标的当前行和3行(共4行)好的8个空格。
(4)<< 将光标向左移动到行上的命令8一个空间。其用途和>>命令是相同的,只是向相反的方向移动。
不同文本行的移动
我们可以使用以下步骤完成从一个地方到另一个地方的文本行。
将光标移动到要移动的文本的第一行;
按ndd顺序其中n要移动的行数。此时Vi要移动的文本行将从文件中删除并放置在1在删除寄存器中;
将光标移动到目标行;
按² 1p要移动的文本行从删除寄存器中取出。
此时,要移动的文本行将显示在目标位置。
上述方法虽然可以实现不同文本行的移动,但显然太烦琐。Vi另一种快速方法是在最后一行模式下使用命令。m(Move命令)。使用方法为n m k,说放第一个n行移至第k在线路下方。
现在我想做不。5行移至第4在测线位置,可以在最后一行模式下输入:
:5 m 3
在命令m之前,还可以指定行号范围(起始行号和结束行号),表示要将指定范围内的文本行移动到指定位置。例如:
:2,5 m 0
指示将文件中第二行到第五行的内容移动到文件头(在第零行下面,此零行是虚行)。
Vi**中的行号**
Vi中的许多命令都使用行号和行等值。如果编辑的文件很大,那么自己计算非常不方便。为此Vi提供向文本添加行号的功能。这些行号显示在屏幕的左侧,相应行的内容显示在行号之后。
使用的命令是:在最后一行模式下输入命令:
:set number
应注意,此处添加的行号仅显示给用户,而不是文件内容的一部分。
在较大的文件中,用户可能需要在命令模式下使用组合键来知道光标当前在哪一行以及光标在文件中的位置。Vi相应的信息显示在显示窗口的最后一行。此命令可随时使用。
在最后一行模式中,我们可以输入以下命令nu(单词number缩写)以获取光标当前行的行号和行的内容。
光标移动操作
在全屏文本编辑器中,光标移动操作无疑是最常用的操作。只有熟练地使用这些命令来移动光标,用户才能快速准确地到达所需的编辑位置。
Vi中的光标移动既可以在命令模式中,也可以在文本输入模式下,但操作的方法不尽相同。
在文本输入模式下,可以使用键盘上的四个箭头键直接移动光标。
在命令模式中,有很多移动光标的方法。不但可以使用四个方向键来移动光标,还可以用h、j、k、l这四个键取代了四个方向键来移动光标,可以避免不同机器上不同键盘定义造成的冲突,熟练使用后可以在不离开字母键盘位置的情况下完成所有操作,从而提高工作效率。此外,可以使用、、和四个键或组合键移动光标。上述三个键在功能上是等效的。此外,还有一些移动光标的命令。以下介绍了它们的工作原理:
、® (都称为右手键)
右键用于将光标向右移动一个位置。如果你在右边之前输入一个数字n然后光标向右移动n位置例如5l指示光标向右移动5位置请注意,光标不能移动到当前行的末尾。如果给定n超过光标当前位置到行尾的字符数。如果使用右箭头键,光标只能移动到行的末尾。如果使用,光标将移动到下一行或多行中的适当位置。
h、、¬ (左侧)
执行一次向左键,光标向左移动一个位置。同向右键同样,也可以在。向左键的前面输入一个数字n然后光标向左移动n位置需要注意的是,如果使用左键,光标不能向左移动到行首之外;如果使用,光标将移动到上一行或多行的适当位置。
j、、¯ (向下箭头)
当向下键光标向下移动一个位置(即一行)时执行,但光标所在的列不会改变。当这些命令前面有数字时n,光标向下移动n行。
Vi除了使用向下键向下移动光标外,还可以使用键和“+”键将将光标向下移动一行或n行(不包括此行),但向下移动后光标将位于行的第一个字符处。例如:
3j 光标下移3行,光标列的位置保持不变。
3+或3 光标下移3行,且光标位于该行的开头。
k、、 (向上键)
向上键光标向上移动一个位置(即一行)后执行,但光标所在的列不会改变。在这些命令之前还应加上数字n光标向上移动n行。
如果您希望在光标上移后光标位于行的开头,可以使用命令“- ”。
L (移至行首)
L 命令是将光标移动到当前行的开头,即当前行的第一个非空白字符(不是制表符或空格字符)。
$(移动到行尾)
此命令将光标移动到当前行的末尾,并在最后一个字符处停止。如果在$命令添加数字之前n,光标向下移动n-1行并到达行的末尾。
[行号] G(移动到指定行)
该命令将光标移至指定行号所指定的行的开头。这种移动称为绝对定位移动。
光标移动到6行的开头。
如果省略了行号,光标将移动到文件最后一行的开头,也就是说,无论文件有多少屏幕,它都将跳转到最后一行。
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123



