Linux_vi常用指令

2 篇文章 0 订阅
1. vi
1.1 一般模式
1.1.1 一般模式: 移动光标的方法
[Ctrl] + [f] 屏幕『向下』移动一页,(记忆forward)
[Ctrl] + [b] 屏幕『向上』移动一页,(记忆back)
[Ctrl] + [d] 屏幕『向下』移动半页,(记忆down)
[Ctrl] + [u] 屏幕『向上』移动半页,(记忆up)
n<Enter> n 为数字。光标向下移动 n 行
30↓ 向下移动 30 行,向上、左、右类似,数字加上方向键
0 数字『 0 』:移动到这一行的行首字符 (记忆光标行首字符)
$ 移动到这一行的最后面字符处(记忆光标行尾字符)
G 移动到这个档案的最后一行(记忆尾行)
gg 移动到这个档案的第一行,相当于 1G(记忆首行)


1.1.2 一般模式: 搜寻与取代
/word 向光标之下寻找一个字符串名称为 word 的字符串。
例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! 

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

n 这个 n 是英文按键。代表『重复前一个搜寻的动作』的意思。
举例, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。

:n1,n2s/word1/word2/g
n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !
举例,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则: 『:100,200s/vbird/VBIRD/g』。

:1,$s/word1/word2/gc
从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !
且在取代前显示提示字符给使用者确认 (conform) 是否需要取代!


1.1.3 一般模式: 删除、复制与贴上
x, X 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键),X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) 

dd 删除游标所在的那一整列(常用)
ndd n 为数字。删除光标所在的向下 n 列,例如 20dd 则是删除 20 列
d1G 删除光标所在到第一行的所有数据
dG 删除光标所在到最后一行的所有数据
d$ 删除游标所在处,到该行的最后一个字符
d0 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符

yy 复制游标所在的那一行(常用)
nyy n 为数字。复制光标所在的向下 n 列,例如 20yy 则是复制 20 列(常用)
y1G 复制光标所在列到第一列的所有数据
yG 复制光标所在列到最后一列的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数据(包括光标所在的那个字符)
y0 复制光标所在的那个字符到该行行首的所有数据(不包括光标所在的那个字符)

p, P
p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 
举例,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。
但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。

u 复原前一个动作。(常用)
[Ctrl]+r 重做上一个动作。(常用)
这个 u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次

. 不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果您想要重复删除、重复贴上等等动作,按下小数点『.』就好了!


1.2 编辑模式
i, I 插入:在目前的光标所在处插入输入之文字,已存在的文字会向后退; 
        其中, i 为『从目前光标所在处插入』, I 为『在目前所在行的第一个非空格符处开始插入』。 (常用)
        
a, A a 为『从目前光标所在的下一个字符处开始插入』, A 为『从光标所在行的最后一个字符处开始插入』。(常用)
o, O 这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处插入新的一行』;O 为在目前光标所在处的上一行插入新的一行!(常用)
r, R 取代:r 会取代光标所在的那一个字符;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
特别注意的是,在档案里面输入字符时,一定要在左下角处看到 INSERT/REPLACE 才能输入喔!
Esc 退出编辑模式,回到一般模式中(常用)


1.3 命令模式
:w 将编辑的数据写入硬盘档案中(常用)
:q 离开 vi (常用)
:wq 储存后离开,若为 :wq! 则为强制储存后离开 (常用)
:set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu 与 set nu 相反,为取消行号!
e! 恢复成档案的原始状态


特别注意,在 vi 中,『数字』是很有意义的!数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思。
举例来说,要删除 50 行,则是用 『50dd』 对吧! 数字加在动作之前~那我要向下移动 20 行呢?那就是『20j』或者是『20↓』即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值