vim 常用的查找、复制、删除、移动操作命令速记

说明:不带冒号表示普通模式执行,带冒号表示命令模式执行; ${n}表示变量n; ## 表示注释;

:set number/nonumber ## 显示/隐藏行号

## 查找
:set hlsearch ## 设置查询字符高亮
:set nohlsearch ## 设置查询字符不高亮
:/${targetStr} ## 从文本开始向后查找;按 n 键匹配下一个,按 N 建匹配上一个
:?${targetStr} ## 从文本尾部向前查找;按 n 键匹配下一个,按 N 建匹配上一个

## 跳转到指定行
G ## 跳到最后一行
${line_num}G ## 跳转到 line_num 行
${line_num}gg ## 跳转到 line_num 行, 与 ${line_num}G 命令相同
:${line_num} ## 跳转到 line_num 行

## 插入行
o ## 对光标所在行后面插入一行,并进入insert模式
shift + o ## 对光标所在行的前面插入一行,并进入insert模式

## 选择
v ## 字符选择模式
V ## 行选择模式
Ctrl+v ## 块选择模式

## 复制
y ## 复制
yy ## 单行复制
${n}yy ## 多行复制

## 粘贴
p 

## 剪切
x ## 剪切光标选中字符
${n}x ## 剪切光标字符往后至n个字符(${n}表示数字变量)
dd ## 剪切当前行
${n}dd ## 从当前行开始剪切n行

## 删除
:%d ## 删除全部
d ## 删除当前选中内容
dw ## 删除至当前词词尾
diw ## 删除至当前词词尾, 忽略词尾空格
daw ## 与diw类似,但不进行忽略
di{匹配符号} ## 删除对称匹配符号内的数据
da{匹配符号} ## 删除对称匹配符号及匹配符号内的数据
D ## 删除光标到行尾的所有内容(与 d$ 效果一致)。
d0 ## 删除光标到行首的所有内容(与 d^ 效果一致;^ 和 0 表示行首)。
dt${目标} ## 删除光标到行内目标字符的位置(目标字符保留)
df${目标} ## 删除光标到搜寻的目标位置(向后)
dF${目标} ## 删除光标到搜寻的目标位置(向前)
${行首字符}D ## 跳到行首,删除光标到行尾(行首字符:[^0_])
:${m},${n} d ## 删除m行到n行(包括n行)
## 备注: d/D 可以使用 c/C 进行替换,区别为前者不进入插入模式

## 替换【提示:srcStr和targetStr 支持正则,targetStr中使用&表示匹配到的字符串】
:s/${srcStr}/${targetStr}/ ## 替换当前行第一个 srcStr 为 targetStr 
:s/${srcStr}/${targetStr}/g ## 替换当前行所有 srcStr 为 targetStr
:n,$ s/${srcStr}/${targetStr}/ ## 替换第 n 行开始到最后一行中每一行的第一个 srcStr 为 targetStr
:n,$ s/${srcStr}/${targetStr}/g ## 替换第 n 行开始到最后一行中每一行所有 srcStr 为 targetStr
:%s/${srcStr}/${targetStr}/(等同于 :g/${srcStr}/s//${targetStr}/) ## 替换每一行的第一个 srcStr 为 targetStr
:%s/${srcStr}/${targetStr}/g(等同于 :g/${srcStr}/s//${targetStr}/g) ## 替换每一行中所有 srcStr 为 targetStr
## 可以使用 # 或者 + 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#${srcStr}/#${targetStr}/# ## 替换当前行第一个 srcStr/ 为 targetStr/
:%s+/${srcStr}/apras/+/${targetStr}/apras1+ ## /srcStr/apras/替换成/targetStr/apras1/

## 合并
J ## 合并上一行与当前行
${n}J ## 合并 光标当前行 和 后面 n 行
:j ## 合并上一行与当前行 
:${n}j ## 合并第 n和n+1 行
:${m},${n}j ## 合并 第 m到n 行 
:%j ## 合并所有


## 移动
:m +1 ## 向后移动一行
:${n}m ${k} ## 当n<k时,n、k数据行互换;当n>k时, n、k+1数据行互换。
:${n}${m}m ${k} ## 当m<k时,n到m数据行整体后移到k行(原来m行移动到了k行); 当n>k时, n到m数据行整体前移到k+1行(原来n行移动到了k+1行)。
## 移动二, ${cur} 表示当前光标行
:${n}m ${offset} ## offset为带±前缀 等同于 k = cur+offset,执行【 :${n}m ${k} 】。
:${n}${m}m ${offset} ## offset为带±前缀 等同于 k = cur+offset,执行【 :${n}${m}m ${k} 】。

u ## 撤销操作
${n}u ## 撤销 n 次操作
Ctrl + r ## 恢复最近撤销的操作
${n}Ctrl + r ## 恢复最近 n 次撤销的操作


## 全局规律
:% ## 全文档操作
:${m},${n} ## 第 m 到 n 行操作
:${n},$ ## 表示n行到最后一行


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值