导航:首页 > 操作系统 > linuxvi写入

linuxvi写入

发布时间:2022-07-04 16:50:23

‘壹’ linux关于VI的使用,求具体应该输入的命令

首先要确保linux系统下已经安装vi编辑器或者vim编辑器
打开终端,输入vi或者vim就会打开vi编辑器,vi编辑器是非常强大的编辑器
想输入代码需要进入插入模式,按i键就进入了插入模式,这个时候就可以写代码了
写完代码后
需要转换模式shift+:转换模式后,在终端最下边会有一行可以输入命令输入wq保存,想了解更多可以网上查询vi编辑器快捷键

‘贰’ 想知道linux中vi的用法

vi 的工作模式
Vi 在初始启动后首先进入编辑模式,这时用户可以利用一些预先定义的按键来移动光标、删除文字、 复制或粘贴文字等。这些按键均是普通的字符,例如 l 是向右移动光标,相当于向右箭头键,k 是 向下移动光标,相当于向下箭头键。在编辑模式下,用户还可以利用一些特殊按键选定文字,然后 再进行删除、或复制等操作。

当用户在编辑模式下键入 i, a, o 等命令之后,可进入插入模式;键入 : 可进入命名模式。 在插入模式下,用户随后输入的,除 Esc 之外的任何字符均将被看成是插入到编辑缓冲区中 的字符。按 Esc 之后,从插入模式切换到编辑模式。

在命令模式,Vi 将把光标挪到屏幕的最下方,并在第一个字符的位置显示一个 :(冒号)。这时, 用户就可以键入一些命令。这些命令可用来保存文件、读取文件内容、执行 Shell 命令、设置 Vi 参数、以正则表达式的方式查找字符串或替换字符串等。

编辑模式
1. 移动光标
要对正文内容进行修改,首先必须把光标移动到指定位置。移动光标的最简单的方式是按键盘的上、下、左、
右箭头键。除了这种最原始的方法之外,用户还可以利用 vi 提供的众多字符组合键,在正文中移动光标,迅
速到达指定的行或列,实现定位。例如:
k、j、h、l 功能分别等同于上、下、左、右箭头键
Ctrl+b 在文件中向上移动一页(相当于 PageUp 键)
Ctrl+f 在文件中向下移动一页(相当于 PageDown 键)
H 将光标移到屏幕的最上行(Highest)
nH 将光标移到屏幕的第 n 行
2H 将光标移到屏幕的第 2 行
M 将光标移到屏幕的中间(Middle)
L 将光标移到屏幕的最下行(Lowest)
nL 将光标移到屏幕的倒数第 n 行
3L 将光标移到屏幕的倒数第 3 行
w 在指定行内右移光标,到下一个字的开头
e 在指定行内右移光标,到一个字的末尾
b 在指定行内左移光标,到前一个字的开头
0 数字0,左移光标,到本行的开头
$ 右移光标,到本行的末尾
^ 移动光标,到本行的第一个非空字符
2. 替换和删除
将光标定位于文件内指定位置后,可以用其他字符来替换光标所指向的字符,或从当前光标位置删除一个或多
个字符。例如:
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 行内容,并去除空隙
3. 粘贴和复制
从正文中删除的内容(如字符、字或行)并没有真正丢失,而是被剪切并复制到了一个内存缓冲区中。用户可
将其粘贴到正文中的指定位置。完成这一操作的命令是:
p 小写字母 p,将缓冲区的内容粘贴到光标的后面
P 大写字母 P,将缓冲区的内容粘贴到光标的前面
如果缓冲区的内容是字符或字,直接粘贴在光标的前面或后面;如果缓冲区的内容为整行正文,则粘贴在当前
光标所在行的上一行或下一行。
注意上述两个命令中字母的大小写。vi 编辑器经常以一对大、小写字母(如 p 和 P)来提供一对相似的功能
。通常,小写命令在光标的后面进行操作,大写命令在光标的前面进行操作。
有时需要复制一段正文到新位置,同时保留原有位置的内容。这种情况下,首先应当把指定内容复制(而不是
剪切)到内存缓冲区。完成这一操作的命令是:
yy 复制当前行到内存缓冲区
nyy 复制 n 行内容到内存缓冲区
5yy 复制 5 行内容到内存缓冲区
4. 搜索字符串
和许多先进的编辑器一样,vi 提供了强大的字符串搜索功能。要查找文件中指定字或短语出现的位置,可以
用 vi 直接进行搜索,而不必以手工方式进行。搜索方法是:键入字符 / ,后面跟以要搜索的字符串,然后
按回车键。编辑程序执行正向搜索(即朝文件末尾方向),并在找到指定字符串后,将光标停到该字符串的
开头;键入 n 命令可以继续执行搜索,找出这一字符串下次出现的位置。用字符 ? 取代 / ,可以实现反向
搜索(朝文件开头方向)。例如:
/str1 正向搜索字符串 str1
n 继续搜索,找出 str1 字符串下次出现的位置
?str2 反向搜索字符串 str2
无论搜索方向如何,当到达文件末尾或开头时,搜索工作会循环到文件的另一端并继续执行。
5. 撤销和重复
在编辑文档的过程中,为消除某个错误的编辑命令造成的后果,可以用撤消命令。另外,如果用户希望在新
的光标位置重复前面执行过的编辑命令,可用重复命令。
u 撤消前一条命令的结果
. 重复最后一条修改正文的命令
6. 文本选中
vi 可进入到一种成为 Visual 的模式,在该模式下,用户可以用光标移动命令可视地选择文本,然后再 执行其他编辑操作,例如删除、复制等。 v 字符选中命令 V 行选中命令

插入模式
1. 进入插入模式
在编辑模式下正确定位光标之后,可用以下命令切换到插入模式:
i 在光标左侧输入正文
a 在光标右侧输入正文
o 在光标所在行的下一行增添新行
O 在光标所在行的上一行增添新行
I 在光标所在行的开头输入正文
A 在光标所在行的末尾输入正文
上面介绍了几种切换到插入模式的简单方法。另外还有一些命令,它们允许在进入插入模式之前首先删去一段
正文,从而实现正文的替换。这些命令包括:
s 用输入的正文替换光标所指向的字符
ns 用输入的正文替换光标右侧 n 个字符
cw 用输入的正文替换光标右侧的字
ncw 用输入的正文替换光标右侧的 n 个字
cb 用输入的正文替换光标左侧的字
ncb 用输入的正文替换光标左侧的 n 个字
cd 用输入的正文替换光标的所在行
ncd 用输入的正文替换光标下面的 n 行
c$ 用输入的正文替换从光标开始到本行末尾的所有字符
c0 用输入的正文替换从本行开头到光标的所有字符
2. 退出插入模式
退出插入模式的方法是,按 ESC 键或组合键Ctrl+[ 。
1.6.4 命令模式
在 vi 的命令模式下,可以使用复杂的命令。在编辑模式下键入“:”,光标就跳到屏幕最后一行,并在 那里显示冒号,此时已进入命令模式。命令模式又称“末行模式”,用户输入的内容均显示在屏幕的最后 一行,按回车键,vi 执行命令。

1. 退出命令
在编辑模式下可以用 ZZ 命令退出 vi 编辑程序,该命令保存对正文所作的修改,覆盖原始文件。如果只需要
退出编辑程序,而不打算保存编辑的内容,可用下面的命令:
: q 在未作修改的情况下退出
: q! 放弃所有修改,退出编辑程序
2. 行号与文件
编辑中的每一行正文都有自己的行号,用下列命令可以移动光标到指定行:
: n 将光标移到第 n 行
命令模式下,可以规定命令操作的行号范围。数值用来指定绝对行号;字符“.”表示光标所在行的行号;字符
符“___FCKpd___8rdquo;表示正文最后一行的行号;简单的表达式,例如“.+5”表示当前行往下的第 5 行。例如:
:345 将光标移到第 345 行
:345w file 将第 345 行写入 file 文件
:3,5w file 将第 3 行至第 5 行写入 file 文件
:1,.w file 将第 1 行至当前行写入 file 文件
:.,$w file 将当前行至最后一行写入 file 文件
:.,.+5w file 从当前行开始将 6 行内容写入 file 文件
:1,$w file 将所有内容写入 file 文件,相当于 :w file 命令
在命令模式下,允许从文件中读取正文,或将正文写入文件。例如:
:w 将编辑的内容写入原始文件,用来保存编辑的中间结果
:wq 将编辑的内容写入原始文件并退出编辑程序(相当于 ZZ 命令)
:w file 将编辑的内容写入 file 文件,保持原有文件的内容不变
:a,bw file 将第 a 行至第 b 行的内容写入 file 文件
:r file 读取 file 文件的内容,插入当前光标所在行的后面
:e file 编辑新文件 file 代替原有内容
:f file 将当前文件重命名为 file
:f 打印当前文件名称和状态,如文件的行数、光标所在的行号等
3. 字符串搜索
给出一个字符串,可以通过搜索该字符串到达指定行。如果希望进行正向搜索,将待搜索的字符串置于两个“
/”之间;如果希望反向搜索,则将字符串放在两个“?”之间。例如:
:/str/ 正向搜索,将光标移到下一个包含字符串 str 的行
:?str? 反向搜索,将光标移到上一个包含字符串 str 的行
:/str/w file 正向搜索,并将第一个包含字符串 str 的行写入 file 文件
:/str1/,/str2/w file 正向搜索,并将包含字符串 str1 的行至包含字符串 str2 的行写
入 file 文件
4. 正文替换
利用 :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 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。
5. 删除正文
在命令模式下,同样可以删除正文中的内容。例如:
:d 删除光标所在行
:3d 删除 3 行
:.,$d 删除当前行至正文的末尾
:/str1/,/str2/d 删除从字符串 str1 到 str2 的所有行
6. 恢复文件
vi 在编辑某个文件时,会另外生成一个临时文件,这个文件的名称通常以 . 开头,并以 .swp 结尾。vi 在
正常退出时,该文件被删除,若意外退出,而没有保存文件的最新修改内容,则可以使用恢复命令:
:recover 恢复文件
也可以在启动 vi 时利用 -r 选项。
选项设置

为控制不同的编辑功能,vi 提供了很多内部选项。利用 :set 命令可以设置选项。基本语法为:
:set option 设置选项 option
常见的功能选项包括:
autoindent 设置该选项,则正文自动缩进
ignorecase 设置该选项,则忽略规则表达式中大小写字母的区别
number 设置该选项,则显示正文行号
ruler 设置该选项,则在屏幕底部显示光标所在行、列的位置
tabstop 设置按 Tab 键跳过的空格数。例如 :set tabstop=n,n 默认值为 8
mk 将选项保存在当前目录的 .exrc 文件中
shell 切换
在编辑正文时,利用 vi 命令模式下提供的 shell 切换命令,无须退出 vi 即可执行 Linux 命令,十分
方便。语法格式为:
:! command 执行完 shell 命令 command 后回到 vi
另外,在编辑模式下,键入 K ,可命令 vi 查找光标所在单词的手册页,相当于运行 man命令。
vim 和 gvim 的高级特色
Vim 代表 Vi IMproved,如同其名称所暗示的那样,Vim 作为标准 UNIX 系统 vi 编辑器的提高版而存在。 Vim 除提供和 vi 编辑器一样强大的功能外,还提供有多级恢复、命令行历史以及命令及文件名补全等 功能。

gvim 是 vi 的 X Window 版本,该版本支持鼠标选中,一些高级光标移动功能,并且带有菜单和工具按钮。

‘叁’ linux的vi怎么编辑文件内容打错字怎么回删怎么保存退出

1、点击vi文件名,然后按Enter键打开相应的文件。如果没有相应的文件,vi命令将自动创建一个新文件。

‘肆’ Linux中的vi怎么用啊

1、vi不是一天掌握的
2、确认一下键盘没有锁定大写
3、按ESC在编辑模式和命令模式间切换
4、hjkl或上下左右键移动光标
5、多按几次ESC再按i,编辑模式下面会出现INSERT字样
6、光标在编辑的行时,SHIFT+A,直接用退格键删除,再添加
7、保存退出
ESC,:wq!

‘伍’ 在Linux系统的Vim中如何写入

打开VIM之后,按一下insert键或者i键就可以进入输入状态了。
#vi
a.txt
退出的时候先按Esc键,出来冒号就可以敲命令,
q!
回车
不保存
wq
保存
x
保存
等等,具体用法上网查啊。

‘陆’ linux中使用vi指令后怎么输入

以下是VI有关文件修改与保存的命令:

插入命令

i 在当前位置生前插入

I 在当前行首插入

a 在当前位置后插入

A 在当前行尾插入

o 在当前行之后插入一行

O 在当前行之前插入一行

查找命令

/text查找text,按n健查找下一个,按N健查找前一个。

?text查找text,反向查找,按n健查找下一个,按N健查找前一个。

vim中有一些特殊字符在查找时需要转义.*[]^%/?~$

:set ignorecase忽略大小写的查找

:set noignorecase不忽略大小写的查找

查找很长的词,如果一个词很长,键入麻烦,可以将光标移动到该词上,按*或#键即可以该单词进行搜索,相当于/搜索。而#命令相当于?搜索。

:set hlsearch高亮搜索结果,所有结果都高亮显示,而不是只显示一个匹配。

:set nohlsearch关闭高亮搜索显示

:nohlsearch关闭当前的高亮显示,如果再次搜索或者按下n或N键,则会再次高亮。

:set incsearch逐步搜索模式,对当前键入的字符进行搜索而不必等待键入完成。

:set wrapscan重新搜索,在搜索到文件头或尾时,返回继续搜索,默认开启。

替换命令

ra 将当前字符替换为a,当期字符即光标所在字符。

s/old/new/ 用old替换new,替换当前行的第一个匹配

s/old/new/g 用old替换new,替换当前行的所有匹配

%s/old/new/ 用old替换new,替换所有行的第一个匹配

%s/old/new/g 用old替换new,替换整个文件的所有匹配

:10,20 s/^/ /g 在第10行知第20行每行前面加四个空格,用于缩进。

ddp 交换光标所在行和其下紧邻的一行。

移动命令

h 左移一个字符
l 右移一个字符,这个命令很少用,一般用w代替。
k 上移一个字符
j 下移一个字符
以上四个命令可以配合数字使用,比如20j就是向下移动20行,5h就是向左移动5个字符,在Vim中,很多命令都可以配合数字使用,比如删除10个字符10x,在当前位置后插入3个!,3a!<Esc>,这里的Esc是必须的,否则命令不生效。

w 向前移动一个单词(光标停在单词首部),如果已到行尾,则转至下一行行首。此命令快,可以代替l命令。

b 向后移动一个单词 2b 向后移动2个单词

e,同w,只不过是光标停在单词尾部

ge,同b,光标停在单词尾部。

^ 移动到本行第一个非空白字符上。

0(数字0)移动到本行第一个字符上,

<HOME> 移动到本行第一个字符。同0健。

$ 移动到行尾 3$ 移动到下面3行的行尾

gg 移动到文件头。 = [[

G(shift + g) 移动到文件尾。 = ]]

f(find)命令也可以用于移动,fx将找到光标后第一个为x的字符,3fd将找到第三个为d的字符。

F 同f,反向查找。

跳到指定行,冒号+行号,回车,比如跳到240行就是 :240回车。另一个方法是行号+G,比如230G跳到230行。

Ctrl + e 向下滚动一行

Ctrl + y 向上滚动一行

Ctrl + d 向下滚动半屏

Ctrl + u 向上滚动半屏

Ctrl + f 向下滚动一屏

Ctrl + b 向上滚动一屏

撤销和重做

u 撤销(Undo)
U 撤销对整行的操作
Ctrl + r 重做(Redo),即撤销的撤销。

删除命令

x 删除当前字符

3x 删除当前光标开始向后三个字符

X 删除当前字符的前一个字符。X=dh

dl 删除当前字符, dl=x

dh 删除前一个字符

dd 删除当前行

dj 删除上一行

dk 删除下一行

10d 删除当前行开始的10行。

D 删除当前字符至行尾。D=d$

d$ 删除当前字符之后的所有字符(本行)

kdgg 删除当前行之前所有行(不包括当前行)

jdG(jd shift + g) 删除当前行之后所有行(不包括当前行)

:1,10d 删除1-10行

:11,$d 删除11行及以后所有的行

:1,$d 删除所有行

J(shift + j)删除两行之间的空行,实际上是合并两行。

拷贝和粘贴

yy 拷贝当前行

nyy 拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行。

p 在当前光标后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴。

shift+p 在当前行前粘贴

:1,10 co 20 将1-10行插入到第20行之后。

:1,$ co $ 将整个文件复制一份并添加到文件尾部。

正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按y即可复制

ddp交换当前行和其下一行

xp交换当前字符和其后一个字符

剪切命令

正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按d即可剪切

ndd 剪切当前行之后的n行。利用p命令可以对剪切的内容进行粘贴

:1,10d 将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。

:1, 10 m 20 将第1-10行移动到第20行之后。

退出命令

:wq 保存并退出

ZZ 保存并退出

:q! 强制退出并忽略所有更改

:e! 放弃所有修改,并打开原来文件。

‘柒’ linux vi编辑器命令操作怎么做,把命令写给我,能写多少就写多少吧

你输入指令, vi -- help然后就会显示,或者输入man vi也是一样的,:qx 开始记录宏,并将结果存入寄存器x
q 退出记录模式
@x 播放记录在x寄存器中的宏命令
稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作将会被记录下来,再次输入q即退出了记录模
式,然后输入@x对刚才记录下来的命令进行重复,此命令后可跟数字,表示要重复多少次,比如@x20,可以重复20次。这个在文本的批处理中是非常有用的。
同时编辑多个文件
在vim众多的插件中,有一个叫minibuffer的插件,就是下面所说的标签页功能了,可以支持同时编辑多个文件。
标签命令
:tabe fn 在一个新的标签页中编辑文件fn
gt 切换到下一个标签页
gT 切换到上一个标签页
:tabr 切换到第一个标签页
:tabl 切换到最后一个标签页
:tabm [N] 把当前tab移动到第N个tab之后
对,正如你所想象的那样,跟eclipse, ue等的标签页是一个意思!
窗口命令
ctrl+w s 水平分割窗口
ctrl+w w 切换窗口
ctrl+w q 退出当前窗口(由于同时有多个文件,此命令不会影响其他窗口)
ctrl+w v 垂直分割窗口
其他
vim在保存之前不会对文件做实际的修改,只是加载到缓冲区中,对文件的编辑其实是对缓冲区的编辑,直到:w时才会存入物理文件。
:e file 把file加载到新的缓冲区中
:bn 跳转到下一个缓冲区
:bd 删除缓冲区(关闭文件)
:sp fn 分割窗口,并将fn加载到新的窗口中
退出编辑器
:w 将缓冲区写入文件,即保存修改
:wq 保存修改并退出
:x 保存修改并退出
:q 退出,如果对缓冲区进行过修改,则会提示
:q! 强制退出,放弃修改
查找替换
/pattern 向后搜索字符串pattern
?pattern 向前搜索字符串pattern
n 下一个匹配(如果是/搜索,则是向下的下一个,?搜索则是向上的下一个)
N 上一个匹配(同上)
:%s/old/new/g 搜索整个文件,将所有的old替换为new
:%s/old/new/gc 搜索整个文件,将所有的old替换为new,每次都要你确认是否替换
复制粘贴
dd 删除光标所在行
dw 删除一个字(word)
x 删除当前字符
X 删除前一个字符
D 删除到行末
yy 复制一行,此命令前可跟数字,标识复制多行,如6yy,表示从当前行开始复制6行
yw 复制一个字
y$ 复制到行末
p 粘贴粘贴板的内容到当前行的下面
P 粘贴粘贴板的内容到当前行的上面
]p 有缩进的粘贴,vim会自动调节代码的缩进
"a 将内容放入/存入a寄存器,可以支持多粘贴板
附:比如常用的一个寄存器就是系统寄存器,名称为+,所以从系统粘贴板粘贴到vim中的命令为"+p,注意此处的+不表示操作符,二十一个寄存器。
移动光标
在vim中移动光标跟其他的编辑器中有很大的区别,不过一旦学会了,就会飞速的在文本中移动了。
h,j,k,l 上,下,左,右
ctrl-f 上翻一页
ctrl-b 下翻一页
% 跳到与当前括号匹配的括号处,如当前在{,则跳转到与之匹配的}处
w 跳到下一个字首,按标点或单词分割
W 跳到下一个字首,长跳,如end-of-line被认为是一个字
e 跳到下一个字尾
E 跳到下一个字尾,长跳
b 跳到上一个字
B 跳到上一个字,长跳
0 跳至行首,不管有无缩进,就是跳到第0个字符
^ 跳至行首的第一个字符
$ 跳至行尾
gg 跳至文件的第一行
gd 跳至当前光标所在的变量的声明处
[N]G 跳到第N行,如0G,就等价于gg,100G就是第100行
fx 在当前行中找x字符,找到了就跳转至
; 重复上一个f命令,而不用重复的输入fx
tx 与fx类似,但是只是跳转到x的前一个字符处
Fx 跟fx的方向相反
),( 跳转到上/下一个语句
* 查找光标所在处的单词,向下查找
# 查找光标所在处的单词,向上查找
`. 跳转至上次编辑位置
在屏幕上移动
H 移动光标到当前屏幕上最上边的一行
M 移动光标到当前屏幕上中间的一行
L 移动光标到当前屏幕上最下边的一行
书签
ma 把当前位置存成标签a
`a 跳转到标签a处
编辑
r 替换一个字符
J 将下一行和当前行连接为一行
cc 删除当前行并进入编辑模式
cw 删除当前字,并进入编辑模式
c$ 擦除从当前位置至行末的内容,并进入编辑模式
s 删除当前字符并进入编辑模式
S 删除光标所在行并进入编辑模式
xp 交换当前字符和下一个字符
u 撤销
ctrl+r 重做
. 重复上一个编辑命令
~ 切换大小写,当前字符
g~iw 切换当前字的大小写
gUiw 将当前字变成大写
guiw 将当前字变成小写
>> 将当前行右移一个单位
<< 将当前行左移一个单位(一个tab符)
== 自动缩进当前行
插入模式
i 从当前光标处进入插入模式
I 进入插入模式,并置光标于行首
a 追加模式,置光标于当前光标之后
A 追加模式,置光标于行末
o 在当前行之下新加一行,并进入插入模式
O 在当前行之上新加一行,并进入插入模式
Esc 退出插入模式
可视模式
标记文本
v 进入可视模式,单字符模式
V 进入可视模式,行模式
ctrl+v 进入可视模式,列模式,类似于UE的列模式
o 跳转光标到选中块的另一个端点
U 将选中块中的内容转成大写
O 跳转光标到块的另一个端点
aw 选中一个字
ab 选中括号中的所有内容,包括括号本身
aB 选中{}括号中的所有内容
ib 选中括号中的内容,不含括号
iB 选中{}中的内容,不含{}
对标记进行动作
> 块右移
< 块左移
y 复制块
d 删除块
~ 切换块中内容的大小写

‘捌’ Linux vi 操作命令

进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个和pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename :打开多个文件,依次进行编辑
移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行
删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+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替换
选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“”的特别字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息
最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行
寄存器操作
"?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
"?p:取出寄存器?中的内容并将其放到光标位置处。这里?能是个字母,也能是个数字
ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。
进入vi
vi test
离开vi
:q! 离开vi,并放弃刚在缓冲区内编辑的内容。
:wq 将缓冲区内的资料写入磁盘中,并离开vi。
:ZZ 同wq
同wq
:w 将缓冲区内的资料写入磁盘中,但并不离开vi。
:q 离开vi,若文件被修改过,则会被需求确认是否放弃修改的内容,此指令可和: w 配合使用。
Vi 的操作模式
Vi 提供两种操作模式:
输入模式(insert mode)
指令模式(command mode)
当使用者进入vi后,既处于指令模式下,此刻键入所有字符皆被视为指令。
输入模式:a(append) 游标之后加入资料。
A 该行之末加入资料
i (insert) 游标之前加入资料
I 该行之首加入资料
o (open) 新增一行和该行之下供输入资料
O 新增一行和该行之上供输入资料
指令模式:B 移至该行第一个字符,若光标在该行第一字符则光标移至上一行第一字符。
b 由游标所在位置之前一个字串的第一个字符
cc 删除整行,修改整行的内容。
D 以行为单位,删除游标在内后面的所有字符。
db 删除该行光标前字符
dd 删除该行
de 删除自光标开始后面的字符
d加字符删除光标所在位置至字符之间的单
E移至该行最后字符,若光标在该行最后字符则光标移至下一行最后字符
e由游标所在位置至该字串的最后一个字符
G 移至该档案的最后一行
h 向前移一个字符
j 向下移一个字符
k 向上移一个字符
0 移至该行之首
M 移至视窗的中间那行
L 移至视窗的最后一行
l 向后移一个字符
0 由游标所在位置该行的第一个字符
nG 移至该档案的第n行
n+ 自游标所在位置向后移n行至该行的第一字符
n- 自游标所在位置向前移n行至该行的第一字符
R 进入取代状态,直到《ESC》为止
s 删除游标所在字符,并进入取代模式直到《ESC》
S 删除游标所在之该行资料,并进入输入模式直到《ESC》
w 由游标所在位置之下一个字串的第一个字符
x 删除游标所在该字符。
X 删除游标所在之前一字符。
r 用接于此指令之后的字符取代(replace)游标所在字符
yy yank整行,使游标所在该行复制到记忆体缓冲区
显示该行之行号、档案名称、档案中最末之行号、游标所在行号占
总行号之百分比
$ 由游标所在位置至该行的最后一个字符。
) 由游标所在位置至下一个句子的第一个字符。
( 由游标所在位置至该句子的第一个字符。
{ 由游标所在位置至该段落的最后一个字符。
} 由游标所在位置至该段落的第一个字符
yank和delete可将指定的资料复制到记忆体缓冲区,而藉有put指令可将缓冲区内的资料复制到荧幕上
例如:搬移一行 :在该行执行dd
游标移至目的地
执行p
复制一行 :在该行执行yy
游标移至目的地
执行p
视窗移动:
视窗往下卷一页
视窗往上卷一页
视窗往下卷半页
视窗往上卷半页
视窗往下卷一行
视窗往上卷一行
删除、复制及修改指令介绍:
d(delete)、c(change)和y(yank)这一类的指令在vi 中的指令格式为:
operation+scope=command
(运算子)(范围)
运算子:
d 删除指令。删除资料,但会将删除资料复制到记忆体缓冲区。
y 将资料(字组、行列、句子或段落)复制到缓冲区。
p 放置(put)指令,和d和y配合使用。可将最后delete或yank的资料放置于游标所在位置之行列下。
c 修改(change)指令,类似delete于insert的组合。删除一个字组、句子等资料,并插入新键入的

‘玖’ 如何在linux中vi使用方法

vi 的工作模式
Vi 在初始启动后首先进入编辑模式,这时用户可以利用一些预先定义的按键来移动光标、删除文字、 复制或粘贴文字等。这些按键均是普通的字符,例如 l 是向右移动光标,相当于向右箭头键,k 是 向下移动光标,相当于向下箭头键。在编辑模式下,用户还可以利用一些特殊按键选定文字,然后 再进行删除、或复制等操作。
当用户在编辑模式下键入 i, a, o 等命令之后,可进入插入模式;键入 : 可进入命名模式。 在插入模式下,用户随后输入的,除 Esc 之外的任何字符均将被看成是插入到编辑缓冲区中 的字符。按 Esc 之后,从插入模式切换到编辑模式。
在命令模式,Vi 将把光标挪到屏幕的最下方,并在第一个字符的位置显示一个 :(冒号)。这时, 用户就可以键入一些命令。这些命令可用来保存文件、读取文件内容、执行 Shell 命令、设置 Vi 参数、以正则表达式的方式查找字符串或替换字符串等。
编辑模式
1. 移动光标
要对正文内容进行修改,首先必须把光标移动到指定位置。移动光标的最简单的方式是按键盘的上、下、左、

右箭头键。除了这种最原始的方法之外,用户还可以利用 vi 提供的众多字符组合键,在正文中移动光标,迅

速到达指定的行或列,实现定位。例如:

k、j、h、l 功能分别等同于上、下、左、右箭头键

Ctrl+b 在文件中向上移动一页(相当于 PageUp 键)

Ctrl+f 在文件中向下移动一页(相当于 PageDown 键)

H 将光标移到屏幕的最上行(Highest)

nH 将光标移到屏幕的第 n 行

2H 将光标移到屏幕的第 2 行

M 将光标移到屏幕的中间(Middle)

L 将光标移到屏幕的最下行(Lowest)

nL 将光标移到屏幕的倒数第 n 行

3L 将光标移到屏幕的倒数第 3 行

w 在指定行内右移光标,到下一个字的开头

e 在指定行内右移光标,到一个字的末尾

b 在指定行内左移光标,到前一个字的开头

0 数字0,左移光标,到本行的开头

$ 右移光标,到本行的末尾

^ 移动光标,到本行的第一个非空字符

2. 替换和删除
将光标定位于文件内指定位置后,可以用其他字符来替换光标所指向的字符,或从当前光标位置删除一个或多

个字符。例如:

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 行内容,并去除空隙

3. 粘贴和复制
从正文中删除的内容(如字符、字或行)并没有真正丢失,而是被剪切并复制到了一个内存缓冲区中。用户可

将其粘贴到正文中的指定位置。完成这一操作的命令是:

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

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

如果缓冲区的内容是字符或字,直接粘贴在光标的前面或后面;如果缓冲区的内容为整行正文,则粘贴在当前

光标所在行的上一行或下一行。

注意上述两个命令中字母的大小写。vi 编辑器经常以一对大、小写字母(如 p 和 P)来提供一对相似的功能

。通常,小写命令在光标的后面进行操作,大写命令在光标的前面进行操作。

有时需要复制一段正文到新位置,同时保留原有位置的内容。这种情况下,首先应当把指定内容复制(而不是

剪切)到内存缓冲区。完成这一操作的命令是:

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

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

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

4. 搜索字符串
和许多先进的编辑器一样,vi 提供了强大的字符串搜索功能。要查找文件中指定字或短语出现的位置,可以

用 vi 直接进行搜索,而不必以手工方式进行。搜索方法是:键入字符 / ,后面跟以要搜索的字符串,然后

按回车键。编辑程序执行正向搜索(即朝文件末尾方向),并在找到指定字符串后,将光标停到该字符串的

开头;键入 n 命令可以继续执行搜索,找出这一字符串下次出现的位置。用字符 ? 取代 / ,可以实现反向

搜索(朝文件开头方向)。例如:

/str1 正向搜索字符串 str1

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

?str2 反向搜索字符串 str2

无论搜索方向如何,当到达文件末尾或开头时,搜索工作会循环到文件的另一端并继续执行。

5. 撤销和重复
在编辑文档的过程中,为消除某个错误的编辑命令造成的后果,可以用撤消命令。另外,如果用户希望在新

的光标位置重复前面执行过的编辑命令,可用重复命令。

u 撤消前一条命令的结果

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

6. 文本选中
vi 可进入到一种成为 Visual 的模式,在该模式下,用户可以用光标移动命令可视地选择文本,然后再 执行其他编辑操作,例如删除、复制等。 v 字符选中命令 V 行选中命令
插入模式
1. 进入插入模式
在编辑模式下正确定位光标之后,可用以下命令切换到插入模式:

i 在光标左侧输入正文

a 在光标右侧输入正文

o 在光标所在行的下一行增添新行

O 在光标所在行的上一行增添新行

I 在光标所在行的开头输入正文

A 在光标所在行的末尾输入正文

上面介绍了几种切换到插入模式的简单方法。另外还有一些命令,它们允许在进入插入模式之前首先删去一段

正文,从而实现正文的替换。这些命令包括:

s 用输入的正文替换光标所指向的字符

ns 用输入的正文替换光标右侧 n 个字符

cw 用输入的正文替换光标右侧的字

ncw 用输入的正文替换光标右侧的 n 个字

cb 用输入的正文替换光标左侧的字

ncb 用输入的正文替换光标左侧的 n 个字

cd 用输入的正文替换光标的所在行

ncd 用输入的正文替换光标下面的 n 行

c$ 用输入的正文替换从光标开始到本行末尾的所有字符

c0 用输入的正文替换从本行开头到光标的所有字符

2. 退出插入模式
退出插入模式的方法是,按 ESC 键或组合键Ctrl+[ 。

1.6.4 命令模式
在 vi 的命令模式下,可以使用复杂的命令。在编辑模式下键入“:”,光标就跳到屏幕最后一行,并在 那里显示冒号,此时已进入命令模式。命令模式又称“末行模式”,用户输入的内容均显示在屏幕的最后 一行,按回车键,vi 执行命令。
1. 退出命令
在编辑模式下可以用 ZZ 命令退出 vi 编辑程序,该命令保存对正文所作的修改,覆盖原始文件。如果只需要

退出编辑程序,而不打算保存编辑的内容,可用下面的命令:

: q 在未作修改的情况下退出

: q! 放弃所有修改,退出编辑程序

2. 行号与文件
编辑中的每一行正文都有自己的行号,用下列命令可以移动光标到指定行:

: n 将光标移到第 n 行

命令模式下,可以规定命令操作的行号范围。数值用来指定绝对行号;字符“.”表示光标所在行的行号;字符

符“___FCKpd___8rdquo;表示正文最后一行的行号;简单的表达式,例如“.+5”表示当前行往下的第 5 行。例如:

:345 将光标移到第 345 行

:345w file 将第 345 行写入 file 文件

:3,5w file 将第 3 行至第 5 行写入 file 文件

:1,.w file 将第 1 行至当前行写入 file 文件

:.,$w file 将当前行至最后一行写入 file 文件

:.,.+5w file 从当前行开始将 6 行内容写入 file 文件

:1,$w file 将所有内容写入 file 文件,相当于 :w file 命令

在命令模式下,允许从文件中读取正文,或将正文写入文件。例如:

:w 将编辑的内容写入原始文件,用来保存编辑的中间结果

:wq 将编辑的内容写入原始文件并退出编辑程序(相当于 ZZ 命令)

:w file 将编辑的内容写入 file 文件,保持原有文件的内容不变

:a,bw file 将第 a 行至第 b 行的内容写入 file 文件

:r file 读取 file 文件的内容,插入当前光标所在行的后面

:e file 编辑新文件 file 代替原有内容

:f file 将当前文件重命名为 file

:f 打印当前文件名称和状态,如文件的行数、光标所在的行号等

3. 字符串搜索
给出一个字符串,可以通过搜索该字符串到达指定行。如果希望进行正向搜索,将待搜索的字符串置于两个“

/”之间;如果希望反向搜索,则将字符串放在两个“?”之间。例如:

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

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

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

:/str1/,/str2/w file 正向搜索,并将包含字符串 str1 的行至包含字符串 str2 的行写

入 file 文件

4. 正文替换
利用 :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 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。

5. 删除正文
在命令模式下,同样可以删除正文中的内容。例如:

:d 删除光标所在行

:3d 删除 3 行

:.,$d 删除当前行至正文的末尾

:/str1/,/str2/d 删除从字符串 str1 到 str2 的所有行

6. 恢复文件
vi 在编辑某个文件时,会另外生成一个临时文件,这个文件的名称通常以 . 开头,并以 .swp 结尾。vi 在

正常退出时,该文件被删除,若意外退出,而没有保存文件的最新修改内容,则可以使用恢复命令:

:recover 恢复文件

也可以在启动 vi 时利用 -r 选项。

选项设置
为控制不同的编辑功能,vi 提供了很多内部选项。利用 :set 命令可以设置选项。基本语法为:

:set option 设置选项 option

常见的功能选项包括:

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

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

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

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

tabstop 设置按 Tab 键跳过的空格数。例如 :set tabstop=n,n 默认值为 8

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

shell 切换
在编辑正文时,利用 vi 命令模式下提供的 shell 切换命令,无须退出 vi 即可执行 Linux 命令,十分

方便。语法格式为:

:! command 执行完 shell 命令 command 后回到 vi

另外,在编辑模式下,键入 K ,可命令 vi 查找光标所在单词的手册页,相当于运行 man命令。

vim 和 gvim 的高级特色
Vim 代表 Vi IMproved,如同其名称所暗示的那样,Vim 作为标准 UNIX 系统 vi 编辑器的提高版而存在。 Vim 除提供和 vi 编辑器一样强大的功能外,还提供有多级恢复、命令行历史以及命令及文件名补全等 功能。
gvim 是 vi 的 X Window 版本,该版本支持鼠标选中,一些高级光标移动功能,并且带有菜单和工具按钮。

阅读全文

与linuxvi写入相关的资料

热点内容
进入组策略的命令 浏览:137
python数据结构和内存 浏览:25
python软件功能简介 浏览:784
外国程序员一般多少岁退休 浏览:917
怎么看linux和时间服务器 浏览:680
程序员搞笑花名 浏览:501
dota2怎么设置国服服务器地址 浏览:212
单片机高电平驱动 浏览:115
ios多选文件夹 浏览:909
加强行车调度命令管理 浏览:243
服务器已禁用什么意思 浏览:150
部队命令回复 浏览:755
神奇宝贝服务器地图怎么设置 浏览:382
加密算法输出固定长度 浏览:862
程序员去重庆还是武汉 浏览:121
服务器如何撤销网页登录限制 浏览:980
微信公众平台php开发视频教程 浏览:628
怎么看苹果授权绑定的app 浏览:255
压缩机单级压缩比 浏览:380
linux测试php 浏览:971