关于vim的“亿“种用法

​在平时运维工作中,vim是最常用的文本编辑工具之一,类似于windows中的nodepadd++  非常的小巧且灵活,使用起来简单,便于查找,大大增加使用效率                    ”

vim的三种模式

🎢命令行模式

打开文件之后 就是命令行模式 需要通过快捷键 进入编辑模式

在命令行模式中 可以通过快捷键对文件进行 复制 粘贴 删除 查看等操作

一般常用的命令 如下:

yy

复制光标所在的当前行

数字yy

从光标所在行,向下复制数字的行

p  

在光标所在的行下一行yy粘贴复制的数据

np

在光标处复制几行

dd 

删除光标所在的当前行

数字dd 

从光标所行,向下删除数字指定的行 

u

撤销上一步

G

移动到末尾行

gg 

移动到第一行 也可以是1G

x

向后删除一个字符

X

向前删除一个字符

关于移动

h

向左移动

l

向右移动

j

向下移动

k

向上移动

gg

移动到首行

G

移动到尾行

nG

移动到指定的行

$

移动到行尾

0

移动到行首

可以配合使用

例 

向左删除两个字母   d2h

向左复制两个字母   y2h  

🎢编辑模式

打开文件后,进入命令模式 通过 i、a、o、O 进入编辑模式

i在光标前插入数据
a在光标后插入数据
o在当前行下一行插入空白行,并在当前行写数据
O在当前行上一行插入空白行,并在当前行写数据

🎢末行模式(我认为最重要的一个模式)

在命令行输入  : ,   /   ,  ?   进入该模式

进入末行模式,查找数据
/进入末行模式,向后查找数据
进入末行模式,向前查找数据

关于 " : "

显示行号:

:set nu

取消行号:

:set nonu

切换行号:

:15 #跳转到第15行
10gg #跳转到第10行
10G #跳转到第10行

批量更改相同数据:

一般我用在批量更改域名 或者将http更改为https

:%s/http/https/g    #批量将文本中所有http更改为https
:%s/http/https/     #将每一行的第一个http更改为https
:s/http/https/      #将光标所在行的第一个http更换为https
:s/http/https/g     #将光标所在行中所有http更换为https
# 注意如果更换路径的话 记得将路径中的/转译
如:
将文本中/root/cr 替换为 /root/nginx/conf.d/cr
:%s/\/root\/cr/\/root/\/nginx\/conf.d\/cr

就是在路径中/之前添加一个\

范围性的更改字符:

:10,20s/http/https/ 将10行到20行之间每一行的第一个http换成https
:10,20s/http/https/g 将10行到20行之间所有的http更换为https

在每行的行首 添加相同的字符

:%s/^/#/

在某个范围内所有的行首添加字符

:%1.10s/^/!!!/

在每行的行尾 添加相同的字符

:%s/$/\&/g

在某个范围内所有的行尾添加字符

:10,40s/$/\&/g

显示文本中高亮

一般编辑配置文件的时候,会有不同的颜色显示 可以通过这个打开或者关闭

:syntax off   关闭高亮
:syntax on    开启高亮

vim的寄存器

使用vim 编辑某个文件时,对这个文件进行的操作都会被记录到寄存器中,当执行保存的指令时(w,x),会将寄存器的信息 写到文件中。

可以通过 :reg 查看所有寄存器

寄存器的分类

🎊 名寄存器 : ""  最后一次操作的内容(删除,复制 我测试的 就只保存这两种) 注意 这里只保存最后一次操作哦 

🎊 数字寄存器:"0 ~ "9 :缓存最近操作的删除,复制等操作内容。"0寄存器缓存最近一次复制的内容,"1 ~"9 缓存最近9次删除的内容,最早被删除的数据,排名越靠后 "0是最新,"9是最老的数据。

如果要复制这里的文本,在命令行模式 输入"2p 复制 "2寄存器的数据

🎊 行内删除寄存器:"-   如果删除的文本不含换行符(不是一整行),会存放到这个寄存器中,如 执行了x,X,d2n  只要不包含换行符 就会保存到行内删除寄存器中

🎊 只读寄存器:vim寄存器中 有四个只读寄存器, 

".     : 最后一次被写入的数据,在命令行模式 复制 粘贴的不算 ,如果需要多次复制 ”.  里面的数据,可以输入".p 进行复制

"%   :  当前文件的名称

":    :  最近一次在寄存器中执行的命令。如果执行了保存命令 :w  ,把当前缓冲区的数据保存到文件中,w   就会存在这个寄存器里,如果需要再执行一遍寄存器的命令 可以通过 @:  再执行一次

"#   :  当 同时编辑多个文件的时候,编辑完a文件 通过 :bn  切换到下一个文件后 执行 :reg 可以查看到“# 这个缓冲区数据 目前还不知道有什么用

🎊 具名寄存器(字母寄存器):单个字母为一个缓存器,有26个字母缓存器( a - z )

在执行yy 或者dd前面加上寄存器的名字 注意 名字是"a - "z  粘贴的时候 p的全面加上寄存器的名字

🎊 黑洞寄存器 :在数字寄存器中 每添加一条新的数据, 之前"9的内容 都会被丢弃,会导1-9寄存器里面的数据被改变,如果不想数字寄存器里面的信息被改变的话 可以在进行删除或者复制操作的时候,使用这个寄存器   使用方法 "_dd  在执行删除命令的时候 前面加上寄存器的名字

🎊 搜索样式寄存器:  "/  保存上一次搜索使用的命令 比如 在末行模式 通过/ 搜索http 

还有表达式寄存器,选择及拖拽寄存器 不过 这两个我工作中 用不到 (主要是 表达式寄存器 看文档 感觉 太!难!了! 我看不懂,也记不住)

vim设置位置标记

在编辑文件的时候 通过按某个组合的按键,光标快速移动到某一行, 可以通过位置标记(mark)来实现

创建位置标记

将光标移动到你要跳转的某一行,使用mn命令进行标记,m是标记命令,n是所作标记的名称,执行完之后 什么效果都看不到 但是 vim已经记录了当前光标所在的行,将光标移动到其他位置,想快速回到刚刚这个位置 按  'n  或者 `n  ,同一行可以拥有多个寄存器

'n   : 移动到标记行的开头  (注意:这个字符单引号)

`n   : 移动到标记的确切位置  (注意:这个字符反撇号 1旁边的按键)

位置标记可用名称

可以使用小写字母 a - z 或者大写字母 A - Z 中的任意一个字母作为标记名称

注意哦 大小写字母是有区别的

小写字母的标记 只能在当前缓冲区内使用(即当前文件中使用)
大写字母的标记可以跨越不同的缓冲区 (即在不同的文件中使用)

列出位置标记

通过 :marks 命令,列出所有的位置标记。里面还包含了一些系统内置的特殊标记

'

上一次跳转前的位置

0-9

最近使用的文件

"

上一次退出文件时的位置

[

上一次修改的开始处

]

上一次修改的结尾处

^

最近插入的位置

.

最近编辑的位置

删除标记

标记也可以像寄存器一样使用,删除标记对应的行 可以使用 d'c ,删除标记c对应的行,删除行之后 相对应的标签也就被删除了,删除和复制 都可以配合标记操作

注意:在当前行执行删除命令  如果不在当标记行执行删除 他会把 当前行和标记行之间所有数据全部删除

:delmarks c x  命令 删除一个或多个标记

:delmarks !   删除所有标记

vim其他的妙用

🎈 删除每行 开头的注释

     光标移动到需要注释文本的首行 首字母

     ctrl + v  (块选择)

     按下箭头选中需要删除的文字  按x 删除

🎈 在每行的开头添加注释

     有两种方法 一种是上面说的 使用  :%s/^/#/g 这个组合键

      还有一种是通过ctrl + v进行操作

      光标移动到需要注释文本的首行   首字母

      ctrl + v  通过移动光标,向下选中 

      选中后 按大写的 i  

      你会看到光标返回到了刚刚选中的第一行 不用管 直接输入要添加的注释

      添加好后 按两次esc键 (在左上角)

🎞未完待续....

       

最后 一个vim的小游戏:

https://vim-adventures.com/

有兴趣的话 可以关注下我的公众号 也有一写有无趣的内容

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值