Linux 2-Vim使用

1 什么是vi及vim?

vi是文本编辑器;vim是程序开发工具。

2 vi的几种模式

1 一般模式:vi <fileName> 就进入命令模式,可以删除或者复制粘贴

2 编辑模式:修改内容

3 命令行模式:最下面一行,保存、替换、退出等。

3 vi3种模式间切换

1 一般模式->编辑模式

1 插入

Aa或Ii或Aa

2 替换:

Rr

2 编辑模式->一般模式:ESC

3 一般模式->命令行模式:支持3种,可以将光标移到最下面一行。

:

/

?

4 命令行模式->一般模式:ESC

5 注意:编辑模式和命令行模式不能互相切换。

4 一般模式常用快捷键 (光标移动、复制粘贴、查找替换)

1 光标移动

1  单个光标移动

需求快捷键
向左移动一个字符向左箭头或h
向下移动一个字符

向下箭头或j

向下30行:30j或者30向下箭头

向上移动一个字符向上箭头或k
向右移动一个字符

向右箭头或l

向右20个:20l或者20向右箭头或者20<space>

2 整个屏幕移动

需求快捷键
向下移动一个屏幕Ctrl+f或PgDn
向上移动一个屏幕

Ctrl+b或PgUp

向下移动半个屏幕Ctrl+d
向上移动半个屏幕

Ctrl+u

3 常见的本行最左最右移动

需求快捷键
移动到本行最最左边数字0
移动到本行最左边非空字符Ctrl+6
移动到本行最右边$
移动到本行下一个单词的开头

w

移动到第8个单词的开头8w

移动到本行下一个单词的结尾e
移动到本行上一个单词的开头b
我的需求:移动到第5行,把domain里的301a改成301b

1 5G:跳转到第5行

2 $:跳转到第5行的最后

3 4b:往左走4个单词的头

4 常见的上下移动

移动到当前屏幕的第一行的第一个字符

H

移动到当前屏幕的中间行的第一个字符M
移动到当前屏幕的最后一行的第一个字符L
移动到文件的最后一行G
移动到文件的第一行gg
移动到文件的第20行20G
基于当前位置,向下移动10行10<enter>

2 查找及替换

需求快捷键
向下找某个字符,比如throughput/throughput
重复查找这个字符,还是继续向下查找n
重复查找这个字符,朝上找N
向上找某个字符,比如domain?domain
重复查找这个字符,还是继续向上查找n

重复查找这个字符,但是相反方向,比如之间?是想上找,现在N就是相反的,朝下找

N
从100到200行间,找到test,替换为TEST

:n1,n2s/word1/word2/g

:100,200s/test/TEST/g

从第一行对最后一行,找到test,替换为TEST:1,$s/word1/word2/g
从第一行对最后一行,找到test,替换为TEST且替换前需要确认:1,$s/word1/word2/gc

3 删除与复制粘贴

需求        快捷键
向前删除一个字符Backspace或者X
向后删除一个字符

Delete或者x

向后删除10个字符:10x

剪切光标所在的整行

dd

剪切光标所在的向下10行:10dd

剪切光标所在行到第一行d1G
剪切光标所在行到最后一行

dG

剪切本行:[光标处,本行最后一个字符]d$
剪切本行:[本行第一个字符,光标处]d0
复制光标所在行        

yy

向下复制10行:10yy

复制光标所在行到第一行y1G
复制光标所在行到最后一行

yG

复制本行:[光标处,本行最后一个字符]y$
复制本行:[本行第一个字符,光标处]y0
将复制内容粘贴在光标下一行p
将复制内容粘贴在光标上一行P
恢复前一个操作u
重复前一个操作.

4 操作一行中的一部分数据

需求快捷键

user="xiaomingxiaohua@email"

想把“”中的内容快速删掉

delete inside: di

删除符号内的信息

光标在""或者内部,按di"

就可以把双引号中间的内容清理掉

test={aaaaaa}按di{  或者di}
test='11111111'         按di'

<domain>localhost.domain.list</domain>

想把中间这段快速删掉

光标在local中的l上,按

dt<

就会删掉从当前字符开始,<之前的所有字符

5 一般模式切换到编辑模式

需求      快捷键
插入:到当前字段的前面i
插入:从所在行的第一个非空字符插入I
插入:到当前字段的后面a
插入从光标行的最后一个字符插入A
插入:在光标行的下一行插入一个新行o
插入:在光标行的上一行插入一个新行O
替换:替换光标所在的字符一次

r

先输入r,马上输入要替换的另一个字符

替换:一直替换光标处的字符,直到按下ESC

按下R 代表开始替换

然后输入要替换的信息,比如把18000替换成32000

最后按ESC退出替换模式

ESC退出编辑模式,回到一般模式

6 一般模式切换到命令行模式 : /  ?

需求操作
将编辑的数据写入硬盘:w
退出vi:q
强制退出不保存:q!
保存后退出:wq
强制保存后退出:wq!
把修改的东西另存为新文件:w 新文件名
把当前文件的n1-n2行,保存到新文件:n1,n2 w 新文件名
显示行号:set nu
不显示行号:set nonu

7 其他常用

1 vi XX 不小心窗口关闭,下次每次vi这个文件都会提醒要不要保留?

答:

ls -al

rm -f XX.swap

把这个文件删除,下次再vi进来就不会报错了。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值