Linux: vi/vim编辑命令

目录

1.vi编辑器三种模式

2.命令模式介绍

(1)移动光标

(2)查找和替换

(3)删除复制和粘贴

(4)批量注释

3.输入模式

4.底线命令模式

5.快速移动合集


 

1.vi编辑器三种模式

vi分为三种模式:命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)

刚启动 vi 默认进入命令模式,按下i进入输入模式,在命令模式按下:(英文冒号)就进入底线命令模式。

注:vim可以当作vi的升级版本,可以用多种颜色的方式来显示一些特殊的信息。

 

2.命令模式介绍

(1)移动光标

0 行首

shift + $ 行尾

gg 文首

G(shift+g) 文尾

A(Shift+a) 文尾,并编辑

o 下一列并编辑

ctrl+f 向上翻页

ctrl+b 向下翻页

ctrl+u 向上翻半页

ctrl+d 向下翻半页

25gg 跳转到第25行

3 + Enter 光标向下移动3行

数字+Ctrl+d 向下移动几行

数字+Ctrl+u 向上移动行

:-4 向上移动4行

:4 移动第4行

 

1G 光标移动到文件第一行的行首。

K 光标移动到文件上一行的同一列。

h 光标移动到当前行的前一个字符。

l 光标移动到当前行的后一个字符

j 光标移动到下一行的同一列。

G 光标移动到文件最后一行的行首。

 

i 在光标前插入。

a 在光标后插入。

I 在当前行首插入。

A 在当前行尾插入。

o 在当前行之下一新行插入。

O 在当前行之上新开一行插入。

 

(2)查找和替换

/word:向下寻找一个名称为word的字符串。

?word:向上寻找一个名称为word的字符串。

n 就分别是向后找

N 向前找这个词

:1,10/jack/len/g:在第1行和10行之间jack替换成len

:1,$s/w1/w2/g: 全文将w1替换成w2

:1,$s/word1/word2/gc:全文将w1替换成w2,显示替换确认提示

:s/vivian/sky/ 替换当前行第一个 vivian 为 sky

:s/vivian/sky/g 替换当前行所有 vivian 为 sky

:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky

:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky

(n 为数字,若 n 为 .,表示从当前行开始到最后一行)

:%s/vivian/sky/(等同于 :g/vivian/s//sky/)替换每一行的第一个 vivian 为 sky

:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky

 

(3)删除复制和粘贴

:g/xxx/d,删除包含xxx的行

:v/xxx/d,删除不含xxx的行

 

x: x为向后删除一个字符

X: X为向前删除一个字符。

d0:删除从光标前一个字符开始到行首的内容

dw :删除一个单词

删除同行光标后面所有字符:d$

dd: 删除光标所在的一整行

dG: 删除光标后面的全部行

ndd:删除光标所在的向下n行

yy: 复制整行

nyy:复制光标所在的向下n行

y^ 复制当前到行头的内容;

y$ 复制当前到行尾的内容;

yG 复制至档尾

p: 将内容在光标的下一行粘贴

P: 将内容在光标的上一行粘贴

u: 撤消上一步操作

[Ctrl]+r:重做上一个操作。

.:小数点,重复前一个操作。

 

(4)批量注释

批量注释

CTRL + v, 使用向下箭头选择要注释的行,shift +i,在第一行加#注释,按esc退出,之后所选的行也会注释掉

批量去注释

CTRL + v, 使用向下箭头选择要注释的行,小写d

 

3.输入模式

ENTER,回车键,换行

BACK SPACE,退格键,删除光标前一个字符

DEL,删除键,删除光标后一个字符

方向键,在文本中移动光标

HOME/END,移动光标到行首/行尾

Page Up/Page Down,上/下翻页

Insert,切换光标为输入/替换模式,光标将变成竖线/下划线

ESC,退出输入模式,切换到命令模式

 

4.底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。

:w 保存;

:w filename 另存为filename;

:wq! 保存并强制退出;

:wq! filename 以filename为文件名保存后强制退出;

:q! 强制退出;

:x 保存并退出(仅当文件有变化时保存)

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

:set nu 显示行号 :set nonu 取消行号 :n1,n2 w filename 将n1到n2行的内容保存到名为filename的文件中

 

5.快速移动合集

(1) 最常用的几个命令如下:

Ctrl+f  向前(往行号大的方向移动)移动一屏,想来F代表Forward

Ctrl+b  向后移动一屏,B的话应该是Before吧

Ctrl+d  向前移动半屏,D指Down

Ctrl+u  向后移动半屏,U指Up

Ctrl+e  编辑窗口中的文件内容整体上移一行。

Ctrl+y  编辑窗口中的文件内容整体下移一行。

 

(2)使用z重新定位屏幕命令

z+回车     把当前行移动到屏幕顶部

100z+回车  将移动第100行到屏幕的顶部,记得键入100z之后要再回车

z.        把当前行移动到屏幕中央,不用回车,切记

z-        把当前行移动到屏幕底部,同上,不用回车

 

(3)按搜索移动

/pattern  向前搜索模式,pattern代指要搜索的内容

?pattern  向后搜索模式

n         重复上次搜索(往下)

N         反方向重复上次搜索

 

(4)按行号移动

nG    移动到第n行

Ctrl+g  显示当前行(并不是移动命令)

G         移动到文件的尾部

 

(5)按光标移动

左:h

下:j

上:k

右:l

下一行行首:+

上一行行首:-

当前行行首:0

 

把光标移至当前行的起始位置,也即当前行的第一个非空白字符:^

当前行行尾:$

后一个单词词首:w,W   光标停留在下一个字的字首位置;

后一个单词词尾:e,E   光标停留在下一个字的字尾位置;

前一个单词词首:b,B

当前屏幕首行:H

当前屏幕末行:L

当前屏幕中央:M

fx 往右移动到 x 字符上                                                        

Fx 往左移动到 x 字符上                                                        

tx 往右移动到 x 字符前                                                        

Tx 往左移动到 x 字符后                                                                                          

;  分号,配合 f 和 t 使用,重复一次                                       

,  逗号,配合 f 和 t 使用,反方向重复一次  


标记文本替换

mqq    //用字符串qq来标记当前光标的位置

`qq      //移至qq所标记处  (数字1键左边键的上档)

'qq      //移至qq标记所在行的开头处(单引号)

''         //移至当前行上第一次所在位置的行的开头处(在光标移动之后,两个单引号)

"          //移至当前行上一次所在位置(在光标移动之后)——1个双引号(测试不通过)

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值