【9.6】vim 的使用

5.1 vim介绍

  • vim 是 vi 的升级版本
  • vim 是带有颜色显示的
    在这里插入图片描述
    默认没有安装 vim 的话,手动安装 vim-enhanced 包
[root@arslinux-01 ~]# yum install -y vim-enhanced
  • 一般模式、编辑模式、命令模式
    一般模式:dd 等
    编辑模式:按 i 开始编辑后
    命令模式:/ 搜索、查找替换、:wq保存退出

5.2 vim颜色显示和移动光标

相同的文件在不同的目录下,有可能导致颜色没有了
/etc 下有颜色,其他目录无颜色

[root@arslinux-01 ~]# vim /tmp/passwd 

在这里插入图片描述

  • 在没有颜色的配置文件中,添加 # 开头的行,保存重新打开,会发现,有颜色显示了
    在这里插入图片描述
    将名称改成 .sh 也会有颜色
[root@arslinux-01 ~]# mv /tmp/passwd /tmp/passwd.sh
[root@arslinux-01 ~]# vim !$
vim /tmp/passwd.sh

在这里插入图片描述

  • 其实没必要纠结会不会显示颜色,颜色往往根据文件的具体内容有关,如果是脚本的话,可能根据脚本的不同来显示具体的颜色

  • vim 的配置文件:/etc/vimrc

  • 在配置文件开头加上 #! /bin/bash ,配置文件会将 if 、for 等 shell 语法高亮

5.3 vim一般模式下移动光标

h			    	向左移动一个字符
l					向右移动一个字符
j					向下移动一个字符
k					向上移动一个字符
空格					向右移动一个字符
nh					向左移动 n 个字符
nl					向右移动 n 个字符
nj					向下移动 n 个字符
nk					向上移动 n 个字符
n空格				向右移动 n 个字符

ctrl+f				向前翻页
ctrl+b				向后翻页
0					光标快速移动到行首
shift+6(^)			光标快速移动到行首
shift+4($)			光标快速移动到行末
gg					光标回到首行行首
G或shift+g			光标移动到最后一行行首
nG(或者n shift+g)	光标移动到第 n 行行首

5.4 vim一般模式下复制、剪切和粘贴

dd					剪切、删除一行
ndd					剪切、删除包含光标所在行内往下的 n 行
p					粘贴在光标所在的下一行
P					粘贴在光标所在的上一行
yy					复制光标所在一行
nyy					复制含光标所在行内往下的 n 行
x					向后剪切、删除一个字符
X					向前剪切、删除一个字符
nx					向后删除/剪切n个字符
v					按v后移动光标会选中指定字符,可以实现复制、粘贴等操作
u					恢复一次操作(最多恢复50次)
Ctrl+r				还原时多还原了一次的话,按此快捷键取消一次还原操作
dG					从删除光标所在行以下所有行
d^					删除光标之前到行首的内容
D或d$				删除光标到行尾的内容

5.5 进入编辑模式

i					光标所在位置开始编辑
I					光标跳到行首,从行首开始编辑
a					光标所在后一个字符开始编辑
A					光标所行的行末开始编辑
o					光标行的下方插入一行开始编辑
O					光标行的上方插入一行开始编辑

5.6 vim命令模式

/word				向光标之后查找一个字符串word,按 n 向下继续搜索,N 或 shift+n 向上

?word				向光标之前查找一个字符串word,按 n 向上继续搜索,N 或 shift+n 向下

:n1,n2s/word1/word2/g	在n1~n2行间查找word1并替换为word2,不加g则只替换每行第一个word1

:1,$s/word1/word2/g	将文档所有word1替换为word2,不加g则只替换每行的第一个word1

:w					保存文本
:q					退出vim
:w!					强制保存,在root用户下,即使文本只读也可以完成保存
:q!					强制退出,所有改动不生效
:e!					恢复到打开时的状态
:set nu				显示行号
:set nonu				不显示行号
:↑					上次使用的命令
:nohl				高亮显示的词,不高亮提示

:x					保存退出,更改文件后,更改mtime;未更改,wq会改mtime,x不会

:1,100s/dnsmasq/arslinux/g	从第1行到100行,s表示开始替换,把dnsmasq替换为arslinux,g表示全部替换

1,$s/\/etc\/hosts\//arslinux/g	把/etc/hosts/替换为arslinux,用 \ 转义;或者 1,$s#/etc/hosts/#arslinux/g或者@符号分隔
\ 转义 或者 用 # 作为语法字符

5.7 vim实践

cp /etc/dnsmasq.conf /tmp/1.txt

1,分别向下,向右,向左,向上移动6个字符(6j,6l,6h,6k)

2,分别向下、向上翻两页(分别按两次ctrl+f和ctrl+b)

3,把光标移动到第49行(49G)

4,把光标移动到行尾, 再移动到行首(shift+4,shift+6)

5,移动到1.txt文件的最后一行(G)

6,移动到文件的首行(gg)

7,搜索文件中出现的“dnsmasq”,并数一下该字符串出现的次数(/dnsmasq然后按n)

8,把从第1行到第10行出现的dnsmasq替换成dns(:1,10s/dnsmasq/dns/g)

9,还原上一步操作(u)

10,把整个文件中所有的etc替换成cte (1,$s/etc/cte/g)

11,把光标移动到第25行,删除字符串“ly”(25G然后按j向右移动光标找到“lyl”,按v选中,然后按x)

12,还原上一步操作(u)

13,删除第50行(50G dd)

14,还原上一步操作(u)

15,删除第37-42行所有内容(37G 6dd)

16,还原上一步操作(u)

17,复制第48行的内容并粘贴到第52行下面(48G yy 52G p)

18,还原上一步操作(u)

19,复制第37-42行的内容并粘贴到第44行上面(37G 6yy 44G P )

20,还原上一步操作(u)

21,把第37-42行的内容移动到第19行下面(37G 6dd 19G p)

22,还原上一步操作(u)

23,把光标移动到首行,把第1行内容改为“#!/bin/bash”(先按gg,把光标定位到第1行,然后按字母A,进入编辑模式,同时>光标到行尾,进行修改操作,完成后按Esc;dd再O也可以)

24,在第1行下面插入新的一行,并输入“#Hello!”(按o进入编辑模式,同时光标向下另起一行,输入“#Hello!”)

25,保存文档并退出(按Esc键,输入":wq")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值