Vim 下模拟 Emacs 键绑定

Vimer 需要 Emacs 键绑定?看上去很蛋疼的需求吧。其实不然,大部分的 Shell / Readline 默认绑定的是 Emacs 键位绑定(处于输入状态下,Emacs 的键位很好用)。Vim 的模式切换很牛逼,但是 Insert 模式下面,只有寥寥几个快捷键,我修改了配置文件,绑定需要的 Emcas 按键到 Vim 中来。

Github 中搜索关键字 Vim Emcas key bind,出来一些结果,不是很完美,我又慢慢调教了几个星期,放出我的 .vimrc。

more ...

使用 Vundle 管理 Vim 插件

早在这个月初,我就在 Vim 的邮件列表看到了一封关于 Vim 插件管理的 邮件。 才惊呼原来有这么强大的插件可以用来管理我那一坨插件, 今天细细阅读并查了一些资料,变开始配置自己的 Vim。

几种管理插件

Vim 的插件管理工具有蛮多,比如:

Vim-addon-manager 和 vimana 的对比,参见 Vim的插件管理工具

我最会选择了 Vundle,通过子目录管理插件,支持 Git 更新。 我其实不太喜欢子目录,觉得目录太多看着烦,但是考虑到在没有一个良好的 PKG 包描述文件的前提下,分子目录是一种简单有效的方法。

more ...

Vimperator的Pass through

作为 vim 的拥护者,我同时也喜欢使用 Vimperator 这款 Firefox 下面的插件,这款插件可以帮助实现 Firefox 的纯键盘操作。

我同时也是 GMail / Google Reader 的深度用户,他们在网页端也支持纯键盘操作,这样就和 Vimperator 产生了冲突。键盘按键事件被 Vimperator 拦截了,导致键盘操作在这些应用上面不起作用。

还好,Vimperator 提供了一种名为 Pass through 的模式,按 CTRL+Z 进入这种模式,在这种模式下面,Vimperator 将不响应键盘操作,全部放行到 Web 页面。

在某一次版本更新之后, Pass through 的快捷键 CTRL+Z 似乎不起作用了,我翻遍了用户手册也没有找到解决办法。

就在昨天,我无意中不知道按了什么键 …

more ...

一个mako.vim

给Vim找了一个Mako的语法高亮,发现着色居然有问题。查看更新记录后发现作者Armin Ronacher只更新到08年9月份。之后Mako更新了一些少许细节,我修改了一下mako.vim,放在这里供下载。

其实我只改了57/58行,增加一个block语法。

点击这里下载:mako.vim

使用方法,放入vimfiles/syntax

相关链接:

原始mako.vim:http://www.vim.org/scripts/script.php?script_id=1858

另外一个mako.vim是缩进用的,放入vimfiles/syntax:http://www.vim.org/scripts/script.php?script_id=2663

ps:Mako是一个Python下面的Template框架。

pss:貌似服务器ip被认证了,讨厌~

more ...

正则表达式抓捕替换

问题情境

需要将RDL报表里的GetComment( Parameters!F0001.Value , Parameters!F0002.Value ,“total”, Parameters!Language.Value)函数修改为GetCommentForComment( Parameters!F0001.Value , Parameters!F0002.Value ,“total”, Parameters!Language.Value, “ReportConnection0107”)。

思路

使用正则表达式里面的分组进行抓获,再用1将中间固定的参数取出,组成新的字符串。

Vim实现

%s/GetComment(((sw+!w+.w+s,){2}s“w+”s,sw+!w+.w+s))/GetCommentForReport(1 , “ReportConnection0107”)/gc

解释 …

more ...

将VisualStudio打造成Vim

image
image

背景:Vim in VisualStudio?

最近痴迷于Vim,尝试着在.net环境中(70%C#+20%ASPX+10%JS)使用Vim进行开发。但是似乎现成的Vim插件不太适应.net开发平台,在进 行调试、编译以及ASPX页面调整时候还是需要切换到VS。

内事不决问老婆,外事不决问Google,我以关键词“Vim C#”向G神询问,很可惜一圈一圈找下来,都没有什么有价值的答案。在StackOverlow上找到 了一些相关资源,其中几位资深人士(使用Vi/Vim大约20年)提到了一款叫做ViEmu的软件,就好奇的跑去看看。

ViEmu

让我们来见识一下ViEmu的厉害吧。ViEmu支持模式切换、移动、宏、高亮搜索,键盘映射、增强命令、正则表达、可视模式等等。反正常用的Vim功能都具备。它自 己也敢宣称支持Vim大部分功能(Vim太强大,不敢说完全模拟 …

more ...

Vim中缩进和空格的使用

原文链接:WindStorm的技术空间: vim中缩进与空格的设置介绍(Blog Spot)

对于使用vim的程序员来说,shiftwidthtabstopsofttabstop绝对是经常接触的三个缩进因素。能否有方便美观的,整体化的 缩进,主要是由他们相互间的配合决定。在经过一段时间试用后,总结一下我的设置经验。

1 shiftwidth

这个是用于程序中自动缩进所使用的空白长度指示的。一般来说为了保持程序的美观,和下面的参数最好一致。同时它也是符号移位长度的制定者。

2 tabstop

定义tab所等同的空格长度,一般来说最好设置成8,因为如果是其它值的话,可能引起文件在打印之类的场合中看起来很别扭。除非你设置了 expandtab模式,也就是把tabs转换成空格,这样的话就不会一起混淆,不过毕竟制表符为8是最常用最普遍的设置,所以一般还是不要改。

3 softtabstop

如果我们希望改变程序中的缩进怎么办?shiftwidthtabstop不一样的话,你会发现程序比较难看的。这时候,softtabstop就起作 用了。可以从vim的说明中看到,一旦设置了softtabstop …

more ...