用版本控制工具管理VIM配置文件和插件

2010年3月6日 – 21:45

方便多台电脑,以及不同系统之间同步VIM配置文件

如果在win下,把配置写到 vimfiles/vimrc
如果在linux下,就是把配置写在 ~/.vim/vimrc 里

然后原先的_vimrc 或者 ~/.vimrc 文件里写入下面这句话
runtime vimrc
这句话会载入运行时中第一个叫做vimrc的文件

如果你有gvimrc文件,则跟上面一样操作

然后只需要对 vimfiles 文件夹进行版本控制就可以了,
换到其他系统,比如 linux 和 mac 下,也只需要在 ~/.vim/下面 update 就可以了

参考:
http://vim.wikia.com/wiki/Version_Control_for_Vimfiles

P.S. 中文资料比较匮乏,先前我使用的是source的方法。
后来用了英文关键字搜索才找到算是官方的wiki的,发现了这个runtime命令。
不得不说,vim作者考虑的很详尽,不愧是发展了几十年近20年的编辑器了。

附:
我的vimfiles,还很原始,配置中,尚未能用于生产。全中文注释,仅供参考。
http://bitbucket.org/shawphy/vimfiles/src/

文件保存后自动刷新浏览器页面

2010年2月28日 – 23:44

做前端的就是苦命,前端的键盘最苦命的是F5按键。
每次修改了点页面,写了点代码就要按F5去测试,着实让人崩溃。
除非用DreamWeaver这种工具,或者TopStyle这种,否则就免不了受罪。
这也归罪于微软各个GUI直接通信不良……

今天找到个方案, 这位达人写了一个Firefox小扩展,用于修改js和host文件的时候用。
原理请参考上面的链接,我就拿来改了一改

敲击这里下载

注意:这个工具只是一个很原始的模型!!

怎么用呢?

很简单,在Firefox,打开你所要的页面,这个扩展会不停检测 D:\refresh.firefox 文件,
如果存在这个文件,他就会自动刷新当前页面并删除这个文件。

那么如何创建这个文件呢?

For VIM

如果你是用VIM的,在$MYVIMRC中加入这句话

  1. function! b:AutoRefresh()
  2.     !start cmd /c echo x > d:\\refresh.firefox
  3.     syntax on
  4. endfunction
  5. autocmd BufWritePost,FileWritePost *.html :call b:AutoRefresh()

其中 syntax on 这句是为了可以不会出现一个等待键盘确认的事件。我是参考这里
这就让html文件保存的时候生成d:\refresh.firefox文件了

For Editplus

如果你像我一样是Editplus用户的话,也很容易。如图

设置Auto Run: After Save里的,添加命令就行了。

  1. cmd /c echo x >d:\refresh.firefox

只不过还是有点后遗症,随便什么文件保存它都会生成……
作为一个不开源,没有插件体系,更新也很不勤快的编辑器……要求也不要太高了……
友情提醒:请使用正版软件~可以在有能力的时候购买许可,或者转用其他开源编辑器,比如Notepad++等。不要让使用盗版成为国内软件开发人员的原罪……

For Others

基本原理都知道了,应该不难办了吧?

系统资源占用

实测下来,我E7200,CPU占用率不到1%。这个setInterval还是很节约资源的。

带来的好处

仔细想的话,节约的不只一步。你要切换窗口,要按f5,看效果,再切换回来继续调整。但如果你是宽屏或者是编辑器背景透明的话,无需切换就可以完成了。节约的是大把时间。如果是虚拟机或者其他电脑测试的情况下,也可以用局域网共享实现,非常好用。其他浏览器只要提供访问文件的接口,也可以如法炮制。

让服务器自动从Hg版本库中下载代码

2010年2月13日 – 02:58

每次写完代码,提交到版本库,测试可以执行不会冲突,推到远端代码仓库。之后要发布的话,还要通过FTP上传到服务器上,FTP速度又不很理想,严重影响工作效率。

有没有解决之道?有!

直接让服务器从代码仓库中下载代码不就行了么?代码仓库中已经包含最新代码了,让服务器从代码仓库的服务器远程下载代码,方便快捷全自动!

而且,现在用的是hg,而不是svn。svn有个问题,提交的代码可能是未完成的半成品导致程序无法执行。而hg的好处是半成品可以提交在本地,阶段性成果完成后再往远端代码仓库中提交。

下面就以使用BitBucket为例,其他服务大同小异。

编译 hg

首先需要在服务器端编译一份 hg ,编译起来还是很方便的,直接从官网下载一份源码,解压缩后make && make install 一下就行了。他源码包里的README里就这么写的。

Mercurial/Hg 下载地址

第一次clone

第一次使用需要先clone一份代码仓库到本地,以后就可以简单的使用pull命令获取更新了。
所以第一次使用需要 hg clone <你的仓库地址>
仓库地址可以在 BitBucket里的项目里找到。

编写 PHP

然后在服务器端写一个文件up.php,放在需要更新的目录下面, 如下代码:

  1. passthru("/< hg命令行工具的绝对地址>/hg pull -u https://<你的用户名>:<你的密码>@<你的代码仓库地址>");

以我的空间为例,就是:

  1. passthru("/home/shawphy/bin/hg pull -u https://shawphy:******@bitbucket.org/shawphy/test/");

其中最关键的一步是要把密码也写在URL里,否则的话就得用popen()函数来处理密码交互了,比较麻烦。

这样,只要访问这个php文件,就能更新这个网站了。

配置Hook

然后,只需要在 BitBucket 项目管理中,Admin标签里,右边Additional options/settings面板下找到Services,点进去。然后添加一个POST服务,URL地址就填写你那个PHP文件的地址就可以了。

这样就能实现往代码仓库中提交代码后,网站服务器自动下载并更新代码了。

其他

如果要自己搭建的服务器上配置的话,参考 Hg 官方Wiki

Google Chrome 下也有 Firebug 了!

2010年2月7日 – 23:33

是的,你没有看错,Google Chrome 下也终于又 Firebug 了。
本人测试下来,手感相当棒。不愧是原团队的作品。
虽然是lite,但大部分功能已经都有了。
如果你像我一样用不惯Chrome自带的开发者工具,就用这个吧!
围观地址:http://getfirebug.com/releases/lite/chrome/

TortoiseHg 设置语言成中文

2010年2月7日 – 18:30

最近逐步打算把各种项目从 svn 迁移到 hg,之所以不用 git,
一方面是第一次用的时候感觉很痛苦,没掌握门道;
另一方面是google code 他们也选择了hg而不是git;
还有一点是,我更喜欢Python。

google 专门撰写了文章分析了为何选择使用hg而不是git,
翻译的可以看这篇 [翻譯]Git 與 Mercurial 的分析

而 hg 在 windows 平台上最好用的除了直接用命令行之外,
还有就是这个 TortoiseHg
但他有点小小的问题,就是中文化起来很不方便,
这个问题已经提交过issue,不知道以后版本会不会有所改善。

其实设置语言的方法在文档里有详细说明:
如果你安装后还是英文,想要切换语言的话,只需要设置环境变量,增加一个 LANGUAGE,设置为zh_CN 就可以了

哪里设置环境变量?
系统属性(就是“我的电脑”属性)里,高级,环境变量,
然后在下面的系统变量里边增加一个 LANGUAGE,设置为zh_CN 就可以了

仅仅这样你会发现他右键菜单还是英文的,设置右键菜单需要到
C:\Program Files\TortoiseHg\cmenu_i18n\
里边,找到对应的语言,比如简体中文是 thg-cmenu-zh_CN.reg
导入注册表就可以了。

jQuery 1.4.1 中文文档 CHM 版发布

2010年2月2日 – 00:16

新鲜出炉,更新了大量内容,应该还有一些BUG,欢迎纠错:

http://code.google.com/p/jquery-api-zh-cn/downloads/list

本来更早出来的,结果半路又杀出1.4.1,而且发现bind、live还有ajax等方法有大量更新,所以重新翻译这三个方法,消耗了大把时间。所以今天才发出来。

jQuery 1.4 中文文档xml版先行发布

2010年1月22日 – 01:23

多的不说,大家围观,有问题提交到
http://code.google.com/p/jquery-api-zh-cn/issues/list

CHM版稍候,勿急
XML围观地址: http://shawphy.com/jqueryapi

锋利的jQuery新官网地址

2010年1月16日 – 20:26

由于cssrain的空间不知道何时才能恢复,所以暂时把《锋利的jQuery》的官网地址放到我的空间上。大家可以从 http://shawphy.com/book/ 来访问并下载源代码

jquery1.4 API 区别与更新中文版

2010年1月15日 – 22:30

jQuery 1.4终于经历了一年,发布了,可喜可贺。
我看到金山(不是金山软件的那个金山……)简单翻译了一下,帖个链接,大家移步去看看吧。

http://js.007studio.net/?p=276

原来IE还能这样禁止输入中文

2009年10月25日 – 17:18

今天遇到个诡异bug,设计丢过来的皮肤测试下来无法在文本框中输入中文,输入法调不出来。
本来以为是设置了ime-mode,结果搜了半天没找到。
调试了半天原来设计那边误加了这样一段代码

  1. input{
  2.     bblr:expression(this.onFocus=this.blur());
  3. }

本来这句应该是用在链接 a 标签上的,用于去除虚线框,他是让链接元素一获得焦点,立即触发失去焦点的事件。结果在IE中就导致了在input中无法激活输入法了,因为系统认为你根本没有在输入框中嘛~
调试的很辛苦,不过这个发现很有趣。算是一个IE-Only的小hack吧,而且超好用。仅在ietester中测试过ie6和系统自带的ie8,其他的大家试着玩吧。
另外,我不反对使用css表达式,为了实现功能,用用也无妨,毕竟用户电脑卡死的几率较小,而功能不实现的话100%就是失败了。不兼容其他浏览器,那是另一回事了。比如网银,比如公司内部系统什么的,还是很有现实意义的小技巧