相信不少朋友像我一样,无论在linux还是windows下都用vim来办公,但是毕竟vim原生于linux,windows下的某些支持还是做的不太好。
这个系列的文章,我们就一起探讨一下。
一.鸡肋的文件查找
在linux下,查找包含一段文字的文件列表是很方便的:
|
|
要遍历所有所有的子文件夹也很容易:
|
|
但是到了windows下,用那个鸡肋的文件查找功能基本上查不到任何想要的东西,怎么办呢?
非常幸运的,vim考虑到了这一点,在内部实现了 vimgrep 这样一个命令,之前有在文章中介绍过,这次我们详细介绍一下.
虽然名字看起来和grep很像,但是用法还是不一样的,先来看一下普通的查找:
|
|
而如果需要循环遍历所有子目录的话,语法如下:
|
|
搜索到的文件列表会加入到quickfix中去,执行:
|
|
即可看到所有的文件列表。
OK,这样windows下内容查找的问题就解决啦~
二.没有类似软链接功能
有些没用过linux的朋友可能不明白什么叫软链接,简单来说即一个文件或者文件夹指向了另一个文件或者文件夹,在外面的使用者看起来,没有任何区别。但是为什么在windows下使用vim会遇到这个问题呢?
这里要先介绍一下vimwiki这个插件,这个插件可以用vim来打造个人wiki,被号称是使用vim必装插件,笔者也确实一直在用着,主要是用来做GTD。
但是wiki的问题就在于会生成很多独立的页面,而如果我有两台电脑,希望能够在家和工作都能对GTD的时间表进行处理,于是需要做同步该怎么办呢?现在国内已经有了不少不错的云存储服务,这里大家自己找一下。
问题就在于如果云存储的同步目录和wiki存放的目录不一致怎么办呢?linux下面可以很简单的通过软链接的方式来解决,但是windows xp及之前却并没有自带这样的工具。
问题当然是有解决办法的,详细参考这篇文章:
http://jdev.tw/blog/1242/mklink-junction-quick-folders-access
根据文中介绍,Vista及以上版本是默认带有mklink,实现了类似软链接的功能,而由于本人电脑用的是XP,所以使用junction来做的软链接,即:
|
|
这样不同目录之间做关联的问题也解决了,但是请千万注意一点:
与linux的软链接不同,用junction做了关联之后,删除虚拟的文件目录,也同样会把真实的目录删掉!务必小心!
OK,暂时只总结了这两点,希望能给windows下的vim(gvim)用户提供一些帮助,以后的文章我们再继续讨论~