linux 终端文本编辑器vim 使用 命令

 进入vi的命令

vi filename       :打开或新建文件,并将光标置于第一行首

vi +n filename    :打开文件,并将光标置于第n行首

vi + filename     :打开文件,并将光标置于最后一行首

vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处

vi -r filename    :在上次正用vi编辑时发生系统崩溃,恢复filename

vi filename....filename :打开多个文件,依次编辑

 

VI分为插入模式、命令模式及末行命令模式

由插入模式到命令模式的转换:Esc

 VI命令模式下的命令

移动光标类命令

h              :光标左移一个字符

l             :光标右移一个字符

j             :光标下移一个字符

k             :光标上移一个字符

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           :向文件首翻一屏

Ctrl+e           :屏幕下卷一行

 

插入文本类命令

i             :在光标前

I             :在当前行首

a             :光标后

A             :在当前行尾

o             :在当前行之下新开一行

O             :在当前行之上新开一行

r             :替换当前字符

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

s             :从当前光标位置处开始,以输入的文本替代之

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

ncw或nCW      :修改指定数目的字

nC            :修改指定数目的行

>>            :右移当前段落一个移动宽度(shiftwidth)

<<            :左移当前段落一个移动宽度(shiftwidth)

yy            :复制当前行

nyy           :复制当前开始的n行

p             :在当前行的下面粘贴

P             :在当前行的上面粘贴

 

删除命令

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

d^                :删至行首

d$                :删至行尾

ndd               :删除从当前行开始的n行

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替换

 

. 重复上一个操作

u 撤消上一次操作

~ 切换字符的大小写

 

 设置选项(set)

语法:

:set <选项> <参数> (如果需要参数的话)

也可以在一行中指定多个选项

:set all 则显示所有的选项值

对那些无须参数的选项来说,使用:set no<选项>就可以把它给关了

term       :设置终端类型

ignorance  :在搜索中忽略大小写

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

number     :显示行号

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

terse      :显示简短的警告信息

warn       :在转到别的文件时若没保存当前文件则显示NO write信息

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

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

 

vb t_vb=   : vi不响铃

 

hlsearch   : 高亮显示搜索匹配结果

 

四 行方式命令

 

:n1,n2 co n3 :将n1行到n2行之间的内容拷贝到第n3行下

 

:n1,n2 m n3  :将n1行到n2行之间的内容移至到第n3行下

 

:n1,n2 d     :将n1行到n2行之间的内容删除

 

:w           :保存当前文件

 

:e filename  :不离开vi编辑<文件>

 

:e!           :重新编辑当前文件,忽略所有的修改

 

:n               :编辑下一个文件

 

:x           :保存当前文件并退出

 

:q           :退出vi

 

:q!          :不保存文件并退出vi

 

:!command    :执行shell命令command

 

:r!command   :将命令command的输出结果放到当前行。

原文地址:https://www.cnblogs.com/zhouchanwen/p/2586219.html