vim - 我的vim常用操作

移动和跳转

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

当页最后一行 ------- 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 ---- 删除当前行并进入编辑模式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 9,947评论 0 5
  • 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。 启动vim 在命令...
    im蚂蚁阅读 30,927评论 3 48
  • 待整理~ 1、vim ~/.vimrc 进入配置文件 如果不知道vimrc文件在哪,可使用 :scriptname...
    spfanlost阅读 5,697评论 0 0
  • 简述 本文将讲述在iOS开发中如何根据某个UIView(前提是该UIView已经被加入到Controller中)来...
    TianBai阅读 12,186评论 29 123
  • 最近不是失眠就是多梦,总在虚幻与现实间徘徊,昼夜交接时刻,我头痛欲裂,昏昏沉沉,似睡非睡间,置身于华丽的钢...
    哈哈1203阅读 3,251评论 1 4