vi命令第二弹

运维技巧 代码 1304浏览

屏幕翻滚类命令

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  复制
vi a b c
: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-w w 切换窗口
ctr-w [hjkl] 切换到窗口
ctr-w [HJKL] 移动窗口
:only  只保存当前窗口,其他窗口关闭
ctw-w + 增加当前窗口高度
ctw-w – 减小当前窗口高度
:qall  所有的窗口都退出
:wall  所有的窗口内容都写入文件
取消上一命令( Undo)
重复命令( Redo)
重复命令只能在命令模式下工作,在该模式下按“ .”键既可。执行一个重复命令时,其结果是依赖于光标当前位置的。
取消上一命令( 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 转到光标下全局变量的定义处
:r filename 将文件 filename 插入在当前行之下
复制与剪切
xp 交换前后两个字符的位置
ddp 上下两行的位置交换
:g/fred/t$ 拷贝行,从fred到文件末尾 (EOF)

转载请注明:代码'S Blog » vi命令第二弹