中国投资网 百科 linux vi命令使用方法

linux vi命令使用方法

命令格式

:范围/pat1/pat2/g

在…之中

:这是Vi的命令执行界面。

Range是命令执行范围的规范:百分号(%)表示所有行。

一个点(。)表示当前行。

美元($)表示最后一行。

例如:

0,20表示第10到20行。$表示当前行到最后一行,

2,$-5表示当前行的最后两行,直到全文的倒数第二行。

s表示后面跟有替换命令。

Pat1,这是要寻找的正则表达式。

Pat2,这是你要把匹配字符串换成的模式的正则表达式。

g可选标志。使用此标志,将对行中的每个匹配字符串执行替换,否则,仅替换行中的第一个匹配字符串。

:/string #向下看

:Rng #向上看

1 vi编辑命令

重复命令。

数字命令重复命令n次。如果删除了15行,请在命令状态中输入15dd。重复最后一个命令。

vi命令的一些选项和含义

-c子命令在编辑指定的文件之前,执行指定的命令子命令。

-r filename恢复指定的文件文件名。

-R将指定文件以只读方式放入编辑器中,这样不会保存对文件的任何更改。

-y number将编辑窗口的大小设置为行数。

光标移动

在命令模式下,在同一行上移动的子命令:

将光标向左移动一帧。

l将光标向右移动一格。

将光标下移一格。

将k光标上移一格。

将光标移到下一个小字的前面。

将光标移到下一个大单词的前面。

b .将光标移动到前一个小字的前面。

b .将光标移到前一个大单词的前面。

将光标移到下一个小字的后面。

e将光标移到前面的大单词后面。

将fc光标移动到同一行中的下一个C字符。

将Fc光标移动到同一行中的前一个C字符。

Tc将光标移动到同一行中下一个字符c的上一个网格。

Tc将光标移动到同一行中前一个字符c的下一个网格。

数字|将光标移动到数字列。

在命令模式下在行之间移动的子命令:

或者按Enter键将光标移动到下一行的第一个非空白字符。

-将光标移动到上一行的第一个非空白字符。

0将光标移动到当前行的第一个字符。

$将光标移动到当前行的最后一个字符

将光标移动到屏幕的顶行。

l将光标移动到屏幕的底线。

把光标移到屏幕的中间。

:数字光标移动到行号。

:$光标移动到最后一行

屏幕翻转命令

Ctrl u翻转文件的前半屏。

Ctrl将半屏翻转到文件末尾。

Ctrl将一个屏幕翻转到文件的末尾

Ctrl+B将一个屏幕转到文件的开头

将nz的第n行滚动到屏幕顶部,如果没有指定n,则将当前行滚动到屏幕顶部。

插入文本

我在光标前面

I在当前行的开头

在光标之后

当前行末尾的

o在当前行下面创建一个新行。

o在当前行上方创建一个新行。

r替换当前字符

r替换当前字符和后面的字符,直到按下ESC键。

从当前光标位置开始,用输入文本替换指定数量的字符。

s删除指定数量的行并用输入的文本替换它们。

NCW或ncw修饰n个单词

Nc修改指定的行数

删除

x删除光标指向的字母。

x删除光标左侧的一个字母。

删除dd光标所在的那一行文字,这一行文字会放在缓存中。

删除行首的d0。

D$被删除到行尾

d .删除这一行光标右边的所有单词,包括光标位置的字母。

D$删除这一行光标右边的所有单词,包括光标位置的字母。

删除光标右边的一个单词

Ndw删除n个单词

D1删除光标所在行上方的所有行

删除dG光标所在的行以及光标下方的所有行。

复制

Yy将这行文字复制到缓存中

YY将数字行复制到缓存中

粘贴

p将缓存中的行粘贴到光标所在的下一行,

将缓存中的行粘贴到光标所在的前一行。

替换

:s/pattern1/pattern2/g将光标当前行中的pattern1替换为pattern2。

用法:%s/pattern1/pattern2/g在所有行中用pattern2替换pattern1。

:g/part term 1/s//part term 2在所有行中用pattern2替换pattern1。

:num1、num 2s/模式1/模式2/g R

:r filename将文件filename的内容粘贴到光标下方的行中。

:w保存当前编辑的文件名。

:w filename当filename不存在时,将修改后的文件另存为filename,当filename存在时,报告错误。

!W filename如果文件filename存在,将修改后的文件保存为文件filename。

:q六号出口。如果文件被修改,系统不会让用户使用q命令退出。

q!不保存退出。

x保存退出

Wq保存退出

在多个文件之间切换

:n开始编辑vi激活的文件列表中的下一个文件。

:n filenames指定要编辑的新文件列表。

在当前文件和另一个文件之间切换:

:e filename用filename激活vi(另一个文件filename加载到vi中)

e!重新加载当前文件,如果当前文件中有任何更改,则放弃以前的更改。

:e filename使用filename激活vi并从文件末尾开始编辑。

:e number filename用filename激活vi,并从行号开始编辑。

:e#开始编辑另一个文件。

寻求

/pattern向后查找指定的模式,如果遇到文件的结尾,则从头开始。

?Pattern向前查找指定的模式,如果遇到文件头,就从末尾开始。

n在最后指定的方向,再次执行最后定义的搜索。

n在与最后指定的方向相反的方向上,再次执行最后定义的搜索。

/pattern/number将光标停在包含pattern的行之后的第n行。

/pattern/-number将光标停在包含模式的行前面的第n行。

%已移动到匹配的“()”或“{ 0 }”。

选项设置

全部列出所有选项设置。

设置终端类型。

无知在搜索中忽略案例。

显示列表制表位(Ctrl I)和行尾标记($)

数字显示行号

报告显示由面向行的命令修改的数量。

显示一条简短的警告消息

如果在更改到另一个文件时没有保存当前文件,则警告显示无写入信息。

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

当搜索到达文件的两端时,Nowrapscan禁止vi从另一端开始。

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

查找和替换vi中使用的方法

一、字符串替换可以通过使用: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放在命令的开头,表示替换正文中包含搜索字符串的所有行。

b、使用find结合grep替换shell中的文件

#寻找。/-exec grep str 1 ' { } ' \;-exec sed-I . bak s/str 1/str 2/g ' { } ' \;

上面的命令可以在当前目录(包括子目录)中搜索包含str1的文件,自动替换为str2,生成源文件的bak文件。

本文来自网络,不代表本站立场,转载请注明出处:https:

linux,vi命令使用方法

中国投资网后续将为您提供丰富、全面的关于linux,vi命令使用方法内容,让您第一时间了解到关于linux,vi命令使用方法的热门信息。小编将持续从百度新闻、搜狗百科、微博热搜、知乎热门问答以及部分合作站点渠道收集和补充完善信息。