【vim】疯狂的循环替换

标签: vim 疯狂 循环 | 发表时间:2011-06-05 00:58 | 作者:K# 本
出处:http://www.cnblogs.com/

需要同时进行以下三个替换:
    foo → bar
    bar → baz
    baz → foo

:%s/\<\%(foo\|bar\|baz\)\>/\={'foo':'bar','bar':'baz','baz':'foo'}[submatch(0)]/g

把代码:
    int foo = 0;
    float bar = pow(2.0, (float) foo);
    char baz[256] = {};
    sprintf(baz,"2^%d = %f\n", foo, bar);

替换成:
    int bar = 0;
    float baz = pow(2.0, (float) bar);
    char foo[256] = {};
    sprintf(foo,"2^%d = %f\n", bar, baz);

实际应用:

--------------------------------------------------------------------------------------------

"根据当前文件的扩展名.{cpp,h}来打开相应的.{h,cpp}文件
fun! XX(cmd)
    let l:fn = expand('%')
    if l:fn !~ '\.\(cpp\|h\)$'
        echo 'unknown filetype'
        return
    endif
    let l:newfn = substitute(l:fn, '\%(cpp\|h\)$', '\={"cpp":"h", "h":"cpp"}[submatch(0)]', '')
    if empty(glob(l:newfn))
        echo 'no such file'
        return
    endif
    exe a:cmd . ' ' . newfn
endf

"竖直分割窗口
cmap vv call XX('vsp')

"水平分割窗口
cmap ss call XX('sp')

"在新Tab中打开
cmap tt call XX('tabe')
----------------------------------------------------------------------------------------------
相对应的.{h,cpp}文件对,在同一个窗口中打开,否则在不同的Tab中打开
方法一
$ vim -p *.h
:tabdo vv

方法二
$ vim *.h
:tab ball
:tabdo vv

方法三
$ vim -p '+tabdo call XX("vsp")' *.h

作者: K# 发表于 2011-06-05 00:58 原文链接

评论: 2 查看评论 发表评论


最新新闻:
· 全平台全语种 Firefox 5.0 b4 已发布下载(2011-06-05 17:07)
· 西班牙首创能晚上发电太阳能电站 耗资27亿元(2011-06-05 16:24)
· 马云:数学1分的落榜考生(2011-06-05 16:07)
· Reditt创始人:产品要优雅还要满足用户需求(2011-06-05 15:59)
· 手机致癌深度调查:可能致癌但证据有限(2011-06-05 15:56)

编辑推荐:Microsoft NLayerApp案例理论与实践 - 基础结构层(数据访问部分)

网站导航:博客园首页  我的园子  新闻  闪存  小组  博问  知识库

相关 [vim 疯狂 循环] 推荐:

【vim】疯狂的循环替换

- 本 - 博客园-首页原创精华区
"根据当前文件的扩展名.{cpp,h}来打开相应的.{h,cpp}文件. 相对应的.{h,cpp}文件对,在同一个窗口中打开,否则在不同的Tab中打开. $ vim -p '+tabdo call XX("vsp")' *.h作者: K# 发表于 2011-06-05 00:58 原文链接. 评论: 2 查看评论 发表评论.

Vim初探(一)

- Lee - 博客园-首页原创精华区
  Vim是一款简单而强大的文本编辑器,它能以简单的方式完成复杂的操作. Vim(http://www.vim.org/)是一款开源软件,提供Windows, Linux和MacOS上的多平台的版本. MacOS上的Vim称为MacVim(http://code.google.com/p/macvim/).

Vim 秘籍表

- fandunqiu - LinuxTOY
献给程序员们,彩色风格的 VIM 速查秘籍表,适合打印、设为桌面背景或放置到专门的数码相框. 同时还提供 300DPI 的清晰版、黑白和适用于红绿色盲人士的版本,请移步至作者站点下载. 消息来源:CoolShell 作者 陈皓. 分类: Screenshots, Vim plugins |. 收藏到 del.icio.us |.

Vim学习笔记

- 临池学书 - C++博客-首页原创精华区
最近在学习Vimtutor中的相关内容,Vim的使用博大精深,很多命令一旦不使用就会忘记,下面把其中的没有使用到的相关命令做一个简单的总结,供以后复习使用. 至于常见的保存,插入等等命令,则不予记录,在以后的使用中加深练习即可. To change until the end of a word, type  ce (ce + 修正的单词).

VIM中替换技巧

- lostsnow - Web Digest
: use :rewind to recommence search " multiple file search better but cheating :bufdo %s/searchstr/&/gic : say n and then a to stop " How to search for a URL without backslashing ?http://www.vim.org/.

简明 Vim 练级攻略

- Andy - 酷壳 - CoolShell.cn
vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的. 下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令.

简明Vim练级攻略

- Yishen - 平凡的世界
今天看到这篇文章,共鸣点非常多. 它把Vim使用分为4个级别,目前我自己是熟练运用前面三级的命令,在培养习惯使用第四级. 完全就是我这一年来坚持使用Vim的过程. 翻译自《Learn Vim Progressively》,原中文翻译出自《简明Vim练级攻略》. 我进行了部分的排版工作,和文字删减以及所有图片本地化的工作.

Vim发布二十周年

- Orvice - Solidot
1991年11月2日,Vim文本编辑器公开发布了第一个版本. Vim最初是为Amiga平台开发的Vi编辑器克隆,但迅速被移植到其它平台,并最终成为最流行的Vi兼容文本编辑器. Vi的开发始于1970年代末,作者是BSD开发者、太阳微系统公司联合创始人Bill Joy. 它是类UNIX系统的标准编辑器.

VIM的高级使用

- - 博客园_iTech's Blog
1)一些常用的Vim配置,在~/.vimrc中. syntax on       支持语法高亮. set nu          显示行号. set ai          设置自动缩进. set shiftwidth=4   设置自动缩进 4 个空格, 当然要设自动缩进先.. set sts=4          即设置 softtabstop 为 4.

VIM入门与进阶

- Wolf - 潘魏增
上周在公司内部作了一次《VIM入门与进阶》的主题分享,这里把分享内容公布出来,希望对一些朋友有用. 我的vim配置可以去github下载. pdf格式:http://panweizeng.com/download/vim-meituan.pdf. keynote格式:http://panweizeng.com/download/vim-meituan.key.