无语黄昏

━━━━周易、交易━━━━

关于 Rcode.vim 插件

,

  昨天找到了这个插件,由于我英文不好,所以想搜索一下关于这个插件的中文使用说明,但是并没有找到。而第一次知道这个插件,是从作者本人在 Google 上的推荐,由此我知道它的作者是大名鼎鼎的"依云,"他的博客上有很多关于 vim 的文章并且在论坛上解答了很多其他人的问题。另外前些天我还曾经就他编译的 GVIM 在他的博客上发过评论。

  插件的官方地址:http://www.vim.org/scripts/script.php?script_id=3705

  虽然说明不多,好在功能不是很复杂,凭着我 N 年前的英文底子也看懂了大概。简要地说,这个插件的作用就是将原本通过 vim "管道"符号"|"连接的命令,可以在一个新的小窗口中并列地写出来并且一起来执行它。如下图所示:

  

  我将原本需要连续四次执行的替换,通过 Rcode.vim 可以一次性写下来并且一次性替换完成。这种需要,象作者所说的,比较适合用 vim 排版大量文字的情况。而恰恰我就属于有这种需要的人,为了完成类似的任务,我曾经找到了一些其它方法,比如用 textPro 的替换表来排版大段文字,或者前段时间说过的,由群友帮助我制作的在 vim 中使用的 "替换表"。当然,这个 Rcode 脚本在本质上和那个没有什么区别。都是通过 Call 函数来执行外部文件的多行命令。只是原来使用的"Vim 替换表"没有这个单独打开的窗口,因此这个更显得直观。

  另外,这个插件还不止能执行 vim 自身的脚本语言,还支持 PythonAwkPerl 等,不过这些我都一窍不通,所以我更关心如何能让它更贴近我自己的使用习惯。从图中可以看到,通过脚本自身的命令":Rocde vim"执行后,会在正文下方弹出一个新窗口(我将这个命令 Map 到了 <Local>s 中),这样只要连续输入命令后,用"<C-Enter>" 即能执行。下次如果需要执行同样的批量替换,则使用过的命令仍然会保留在该窗口中。

  

  但是,我希望它能增加一些功能,比如有历史记录功能;因为我可能有很多替换的要求,每一次都要单独输入或不断的增减当然很麻烦。例如我针对"大写替换小写"有一个单独的文件,"全角替换半角"又需要一个文件,"标点符号修改""分段格式化" "公式参数替换"等等需要很多种不同的替换方式,这样的话,如果能够在窗口中单独列出一些带有序列号的文件名称,就象一个收藏夹那样,针对当前文本执行不同的替换,就会方便多了。如下图所示,左侧的 vim 插件 NERD_Tree Bookmarks 的收藏夹,最底下的 Yank 插也有 100 个历史复制菜单可供粘贴,我希望 Rcode.vim 也能添加类似的功能。比如在使用了一些命令之后,我可以将这些替换保存到一个文件之中,这样这个文件就列在该窗口的一侧或上方,以便我下次直接就能使用。

  另外,我在写批量替换命令时,可能要添加很多注释,因此需要半角引号或百分号打头的行或 /*...*/ 这类注释符也能使用。另外也可能不止是用替换,也可能用":g"命令或一些宏命令,不知道这些要求是否能支持。期望作者"依云"能尽快回复。

易名原创:VimWiki 导出 Html 乱码没法发图片?又被盾了

Comments

Anonymous Monday, December 19, 2011 4:30:44 AM

依云 writes: 明白了,两个需求: 1. 中文文档; 2. 保存代码历史/片断。 对不? 挺好的建议,我会尽快尝试加入这些。 关于注释,直接按所使用的语言的语法写就可以了。代码并不是一行行地执行,而是利用 Vim 内建命令从临时文件执行的。比如 VimScript 是使用 :source 命令执行的。

易名gcy001 Monday, December 19, 2011 4:38:07 AM

  OK,这么快回复真好,等待你的升级版本。

Anonymous Monday, December 19, 2011 8:08:27 AM

依云 writes: 似乎能用了,你先试试啦 :Save 保存 :RcLoad 加载,支持补全。 http://p.vim-cn.com/ctH

易名gcy001 Monday, December 19, 2011 3:11:51 PM

  刚刚看到,没想到这么快回复了。试过了,保存是没问题,但是加载的时候会提示“Bad argument”,我使用的是默认设置路径。

易名gcy001 Monday, December 19, 2011 3:21:32 PM

  另外,我想最好是能够将已保存的部分列出名字来,这样方便使用,可以直接激活使用它;否则还要手动输入命令一个个去找。比如:

  ——————————————————————————————————————————————————————————————
  A.全角转半角;B.半角转全角;C.大写转小写;D.提取标题列表
  A<Enter>则激活相应替换表
  ——————————————————————————————————————————————————————————————

Anonymous Monday, December 19, 2011 5:18:48 PM

依云 writes: 是这样的,载入时需要写成 语言名/保存名。。。。因为打开时就确定了文件类型,所以保存时就不需要了,但是载入时是需要的。 使用列表方式已加,命令:RcSelect http://p.vim-cn.com/ctP

Anonymous Monday, December 19, 2011 5:20:08 PM

依云 writes: 还有,RcLoad 支持补全,所以你可以按 显示所有补全候选项,按 补全。

Anonymous Monday, December 19, 2011 5:29:26 PM

依云 writes: 我的 <tab> 被吃掉了。。。

Anonymous Monday, December 19, 2011 5:30:34 PM

依云 writes: 还有前面一个是 <C-d>。 天哪,captcha 里出现一个*倒着的* has。。。

Anonymous Tuesday, December 20, 2011 5:28:20 AM

依云 writes: 那个图片不登录看不了。

易名gcy001 Tuesday, December 20, 2011 9:22:43 AM

Anonymous Tuesday, December 20, 2011 10:47:46 AM

依云 writes: 唉,Windows。。。。希望这次可以了。我没有在 Windows 上完成测试,因为我的 gvim 会 C++ Runtime Error。。。 http://p.vim-cn.com/ctR

易名gcy001 Tuesday, December 20, 2011 11:22:39 AM

  谢谢,这回命令都正常了。不过还有一个问题,就是每次执行替换时,如果没有替换项,那么会出现报错,是否也可以用 <slient> 的方式,取消这个 Message ?添加一下就应该可以了。

Anonymous Tuesday, December 20, 2011 11:41:52 AM

依云 writes: 这个是你自己的代码的问题了。脚本中用 s 命令时一般会加标志位 e,忽略没有匹配的情况: %s/a/b/ge

易名gcy001 Tuesday, December 20, 2011 12:54:34 PM

  嗯,那好吧。我指的不是这种情况,比如针对查找一行带有“A”的情况来替换,但是如果文中没有这一行,那么也会提示报错了。我是不希望显示这种情况。


  噢,我刚刚把所有的替换式子后面都加上了 /ge ,现在不提示错误了。之所以会这样,是因为我一直用的原来的类似的这种全文多个正则替换的脚本,是不需要加上这个“e”的,因此没有使用这个参数的习惯。现在都改好了,就没有再提示错误了。

Anonymous Wednesday, December 21, 2011 2:43:52 PM

依云 writes: 新版本已经发布,中文文档: http://lilydjwg.is-programmer.com/2011/12/21/rcode-vim-2-0-released.31390.html
February 2012
S M T W T F S
January 2012March 2012
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29