带文件浏览器边栏的 Macvim
Vim 默认并没有文件浏览器的功能,所以如果需要同时浏览项目内多个文件,或是要在某个文件夹下创建新文件、重命名文件的时候,就有点麻烦,虽然有诸如 NERDTree 的插件,但是显然效果和使用上都不是那么直观,而且我需要的功能无非就是浏览和创建文件而已。
于是,终于找到了这个带文件浏览器边栏的 Macvim 修改版:
https://github.com/alloy/macvim
功能不多不少,正好满足要求,显示的效果非常直观,简单易用~
这样暂时也不用去折腾 TextMate、Sublime Text 什么的了,Macvim 还可以撑一段时间~
重新审视 Vim
虽然号称使用 Vim 多年,但是实际上一直没有仔细研究过,平常用的也就是 Vim 的基本快捷键而已,虽然经常写 Rails 代码,但是除了自己定义了一个在 erb 文件中输入 <%= %> 代码的快捷键之外,就没有任何其他配置了,插件也只是偶尔用用 NERDCommenter 之类。
最丢人的是,目前还不习惯用 hjkl 移动,因为平常也经常用其他的普通编辑器,所以即使在 Vim 下,每次也都是用着用着就去摸箭头键了,至今没有调整过来。
不过前天看到一篇非常好的 Vim 文章:
Coming Home to Vim / Steve Losh
受其影响,开始重新审视 Vim。
文章中提到的一些 Tips 比较有启发性,比如对于不知不觉去摸箭头键而不使用 hjkl 的问题,可以用下面的配置代码,将箭头键屏蔽:
nnoremap <up> <nop> nnoremap <down> <nop> nnoremap <left> <nop> nnoremap <right> <nop> inoremap <up> <nop> inoremap <down> <nop> inoremap <left> <nop> inoremap <right> <nop>
这样每次就会被强迫去用 hjkl 了,对于 Vim 初学者来说尤其实用。
此外,对于回到命令模式用的 Esc 太远的问题,除了通过某种方法把无用的 CapsLock 键映射为 Esc 之外,还可以使用“jj”:
inoremap jj <ESC>
因为单词中很少有输入 jj 的情况,所以并不会干扰输入。映射为“,,”也可以,当然也可以使用脚踏板 :)。
此外还知道了一个可以像 TextMate 那样智能打开文件的插件 PeepOpen:
虽然要收费,但是效果比 Command-T 之类的要好多了,所以等有了资金就去买一个用。有了这个东西,NERDTree 之类的就不需要了~ :)
最后,就是再定义一些快捷键了,Vim 的快捷键定义语法 nnoremap 和 inoremap 非常直观,一直都想不出应该定义什么真是不应该啊。
迁徙到 NetBeans 上去了
一直对 IDE 这类东西不感冒,估计是受原来 M$ 那个 Visual XXX 的影响,让我觉得很多细节都被 IDE 遮掩了,写程序写到最后就变成了一个只会摆弄 IDE 的工人。
所以自从来到 Linux 下,一直用 Vim 这个小巧但强大的编辑器来写东西,Chito 也是全部拿 Vim 完成,而且除了几个自动闭合 html 和括号的脚本,没有用其他任何插件。
这两天看到 NetBeans 6.1 发布的新闻,好评一片,再加上很多人都推荐用 NetBeans 来做 Rails 项目,就下了一个体验。
安装是标准的 Windows Installer 风格,一路 Next 就搞定了。然后启动,菜单选择直接导入一个现有的 Rails 项目,NetBeans 会自动构建项目类树,这样就可以自由在函数和文件间跳转,还有自动补全实例方法之类。
试用了一下,真爽~ 不愧是两次获得 Jolt 最佳开发环境大奖的 IDE 。代码的显示方式很友好,Ruby 的一些闭包语法都可以自动完成,还整合了 WEBrick 和 SVN,菜单和工具栏里还有一大堆我看不懂的功能和设置。
虽然很诱人,不过还是不能使我有足够的理由迁徙到 NetBeans 上去。之所以一直黏着 Vim,是因为 Vim 有一套非常方便的快捷键,命令、编辑模式也非常合我的胃口,其实之前也看到过不少好用的编辑器,比如 Scribes、SciTE 之类,但最后都是因为无法沿用 Vim 的操作模式只好放弃了。
本以为 NetBeans 的命运也是如此,结果我搜到了这个东西:
这是啥,NetBeans Vim 编辑模式插件是也~ 二话不说,下载、安装,重启 NetBeans …… 啊,我多年来的愿望终于实现了……
这个 jVi 本来就是 a port of a major chunk of vim,所以自然包含了 Vim 几乎全部的快捷键和功能,像 :w 和 !command 这样的命令都支持,原来咋没发现这个好东西呢~
Vim 这个问题解决了,很自然就迁徙到了 NetBeans 上来~