在 IDE 中使用 Vim

作为一个 Vimer ,很可能不会习惯其他的 IDE 中的编辑功能。

但作为一个理性的 Vimer,我们也应该知道并非所有的东西都适合用 Vim 来写。

例如,写后端或许可以只用 Vim(或许 JAVA 除外),但写跨平台的游戏前端,就不太可能了。

作为 cocos2d-x 的使用者,我必须在 Windows/Mac OS X 下不断切换,在 Visual Sudio/Xcode/Eclipse 三个 IDE 中不断辗转。那些坑爹的快捷键,我经常记错。那些纠结的键绑定,我经常搞混。

所以还不如把编辑模式都都改成 Vim 方便。下面是分别针对这三个 IDE 的 Vim 支持插件: 继续阅读在 IDE 中使用 Vim

怎么理解Vim以及怎么学

这是我对知乎上一个问题的回答,原题是:Vim 约等于记事本吗?

最近看了linux的C编程书和vim用法
感觉vim和记事本似乎没多大区别
相对IDE缺少:代码自动补全,debug时查看所有变量值 等功能
平常编写一个自己的电脑可以运行的程序,加了适当插件的vim和VS应该差不多吧?

下面是我的回答。


题主真的看完了 Vim 手册么?

====== 很2的分割线 ======

Vim 并不适合所有人用。如果你已经习惯了 VS 或者其它 IDE,并且觉得它们就是神级工具,那么不必尝试 Vim。

Vim 是给 Vimer 用的,是给熟悉或者认同 Unix哲学 的人用的。

不要被网上那些 编辑器之神神之编辑器 之争的文章刺激得热血沸腾就跑来学习 Vim。如果你工作在 Windows 上,很少接触类 Unix 操作系统,不了解 Unix哲学,或者对 Unix哲学 之说感到不屑,那么趁早放弃。

Vim 并不适合所有场合,很多时候,你还是依然需要 Xcode、Eclipse、IntelliJ IDEA 和 VS,没必要让 Vim 做所有的事情。

虽然我知道 VS 也能当记事本,但我从来不敢这么用。

你现在只能把 Vim 当记事本来用,但不代表 Vim 就是记事本。是的,约等于也不是。

====== 分割线之2 ======

(如有雷同,实属巧合)

选择和放弃: 继续阅读怎么理解Vim以及怎么学

vimpress使用解惑

写了9年博客,尝试过多种博客写作工具,但一直没有持续用下去,原因是使用博客写作工具会弄乱HTML代码,另外一些插件的语法在这些写作工具中并不支持。

但WordPress提供的编辑器并不好用,这几年来我一直都是用Vim以MarkDown格式写博客。写完后将内容粘贴到WordPress的在线编辑器中发布。

一直都知道有Vimpress这类插件,可以直接使用xmlrpc在Vim中发布博文,这几天终于付诸于实践,把它装上了。

在Vim的官方网站上,这类插件主要有下面几个:

  • Vimpress
    这是最早的一个,但2007年就停止更新了;
  • Vim Blog
    这个是在Vimpress的基础上进行修改的一个版本;
  • VimRepress
    这个也是基于Vimpress的修改,但修改得更彻底,加入了许多功能;
  • blogit.vim
    从帮助看,这个比VimRepress更强大,而且并不是基于Vimpress修改的。

这些插件都需要Python支持,如何让自己的Vim支持Python,可以看这篇文章:不重新编译,让官方网站下载的Vim支持Python

继续阅读vimpress使用解惑

不重新编译,让官方网站下载的Vim支持Python

在为Vim安装VimPress插件的时候,发现它需要Python支持。查了一些资料,原来在编译Vim的时候,是可以将Python语言整个编译进入Vim中的。这样的Vim可以直接使用Python语言来写扩展。

除了编译嵌入方式,在Windows系统中,Vim还可以以动态链接的方式支持Python。

Vim的帮助文件中这样描述:

Vim 可以用四种方式编译 (:version 输出结果):
1. 无 Python 支持 (-python、-python3)
2. 只有 Python 2 支持 (+python 或 +python/dyn、-python3)
3. 只有 Python 3 支持 (-python、+python3 或 +python3/dyn)
4. Python 2 和 3 支持 (+python/dyn、+python3/dyn)

我的Vim是在Vim官方网站下载的32位windows版。怎么知道我的Vim有没有包含Python支持呢? 继续阅读不重新编译,让官方网站下载的Vim支持Python

Vimwiki的相关资料搜集

2012-10-04更新:加入Vimwiki2.0新特性


做个记录,近期准备尝试Vimwiki(部分文章可能需要翻墙)

Vimwiki

Vimwiki介绍文章

可以嵌入Vimwiki的评论系统

在Eclipse中使用Vim

目前我知道的比较好用的,有3种方法:

1.Vrapper

建议使用 http://vrapper.sourceforge.net/update-site/unstable 来安装,虽然是不稳定版,但用起来感觉比稳定版还要稳定。 😉

vrapper的Bug不少,和中文输入法也会有一些冲突,但总之还是为我带了来效率的提升。

最困扰我的问题在于,Esc键经常会不起作用,由于Eclipse中经常会有多层次的代码提示,而按一次Esc键之后,只会消除一层代码提示。如果此时立即开始Vim编辑,则会将代码提示的内容自动加入到源码中,最后不得不一条条删除它们,这点很让然很烦躁。

注意:如果希望使用Ctrl+D快捷键实现翻页,就必须将Eclipse中的Ctrl+D屏蔽掉。因为Ctrl+D在Eclipse中是删除一行,如果你经常在Vim中Ctrl+D的话,你就杯具了…… 继续阅读在Eclipse中使用Vim

使用Vim将批量将快捷方式转换为TypeAndRun的Config.ini格式

关于快速启动,我最早使用的是Win+R这种绿色的方式。但由于要记忆大量的自定义文件名,且不支持模糊查找,我改用了 Find and Run Robot (FARR)

但突然有一天,我感觉FARR实在是太慢了……

于是我改用 TypeAndRun

原来用FARR的时候,我是把一堆常用的快捷方式放在一个文件夹中,然后在FARR中将这个文件夹加入索引位置,以实现快速启动。4年多来,这个文件夹中有88个快捷方式。

现在Type And Run要求将所有的自定义别名加入到Config.ini中。一个个手动加实在是太痛苦了,我用Vim写了个脚本实现它: 继续阅读使用Vim将批量将快捷方式转换为TypeAndRun的Config.ini格式

使用Vim修复Sprite Sheet Editor 0.5.6版生成的错误XML文件

Sprite Sheet Editor 0.5.6有一个很重大的Bug,在保存metadata的时候,我将frame的ow/oh属性保存成了与w/h属性相同的值。

根据Sprite Sheet Editor修剪每帧中的空白区域的原理说明可以知道,对于剪切过空白的帧来说,ow和oh是还原原始帧大小的关键。如果这两个值出错,会导致无法取得动画的正确尺寸。

好在这个是可以回溯的。可以通过比较某个Label包含的所有帧的尺寸,通过ox/oy和w/h计算出每帧的实际尺寸,最大的那一个,就是该Label中的所有帧的统一ow/oh属性值。

使用这个方法,得到的实际值,甚至比原来通过Sprite Sheet Editor进行手工设定的值更小,也就是更加节省内存。

选择什么工具处理?AS3有强悍的E4X,JAVA和BASH也不错。但我正好想学习下Vim脚本,就用它了!

处理思路: 继续阅读使用Vim修复Sprite Sheet Editor 0.5.6版生成的错误XML文件

Sprite Sheet Editor修剪每帧中的空白区域的原理说明

source on github

Sprite Sheet Editor 0.5.0版本中,我加入了我加入了修剪空白的功能。这个功能将每帧图像的上下左右的空白全部清空,然后再将所有清空了空白的帧绘制在一张大的sheet上,从而使最终sheet文件尺寸尽可能的小。

但是,对于动画来说,所有帧的尺寸应该是统一的,这样才能实现正确对位。所以,一个完整的动作的帧的大小,应该以这个动作所有帧的有效像素的外延来确定。

看看这张图,就清楚了: 继续阅读Sprite Sheet Editor修剪每帧中的空白区域的原理说明