vim - 我的vim常用操作

2018-05-18  本文已影响5人  一双鱼jn

移动和跳转

行首 ---- ^
行尾 ---- $

当页最后一行 ------- G
当页第一行 --------- gg

ma ---- 把当前位置标记为标签a
`a ---- 跳转到标签a的位置

fx ---- 移动到当前行的x字符位置
Fx ---- 反向移动到当前行的x字符位置


查找和替换

:[range]s/old/new/[flags]

range : 替换的范围  
  % : 全文
  1,10 : 1-10行

flags : 
  c : comfirm , 每次替换前进行确认
  g : global , 整行中所有匹配的内容都替换。不加g默认只替换每行的第一个匹配内容
  i : ignore , 忽略大小写

:%s/old/new/g ----- 所有行替换
:%s/old/new/gc ---- 所有行替换,替换前确认
:1,10s/old/new/---- 1-10行替换
:10s/old/new/ ----- 第10行匹配的第一个内容进行替换
:.,.+5s/old/new/g ---- 从当前行及后续5行内进行替换


正则表达式替换

:%s/\s+$//g ---- 删除所有行尾的空格

:%s/^\s*//g ---- 删除所有行首的空格

:%s/^$//g ----- 删除空行

:%s/^\(.*\)=\(.*\)/"\1" : "\2"/g --- 将类似如下格式的文本进行替换

key=value 

替换后 

"key" : "value"

^\(.*\)=\(.*\)$
^匹配行首,然后是任意多个字符一直到=为止,为一组,这一组用()包起来,但是在vi中需要用\转义。继续任意多个字符一直到行尾为一组。

"\1" : "\2"
首先添加一个",然后放第一组的内容,\1是刚刚匹配的第一个()中的内容


~ ---- 切换当前字符的大小写

r --- 替换当前字符
R --- 从当前字符位置开始替换


插入和删除

D ---- 从当前位置删除到行尾

cc --- 删除一行并进入编辑模式

s ---- 删除当前字符并进入编辑模式
S ---- 删除当前行并进入编辑模式

上一篇下一篇

猜你喜欢

热点阅读