配置windows上的git commit时的默认编辑器

在Win下使用github的Git Shell,每次commit时都会弹出记事本,使用不是太爽,想换成vim才顺手。操作步骤如下 安装gvim 将gvim的目录加入Path环境变量中,在 我的电脑 – 属性 - 高级 - 环境变量中修改 配置git git config –global core.editor gvim 重启Git Shell即可生效!

vimari – safari下的vimium扩展

虽说我现在用的主力浏览器还是chrome,但是偶尔还是会给safari一些机会,这让在chrome下用惯了vimium插件的我很不适应,按下熟悉的按钮没得到应有的反馈,简直就跟残废了似的。 于是我开始放狗搜索,然后得到了这个 — vimari. 简单介绍 vimari从chrome的vimium移植而来,大部分代码都是基于vimium。而vimium对于chrome来说,就象是vimperator之于firefox,在浏览网页的时候,也能带来vim类似的操作体验,对于vim控来说实在是不可多得的好扩展。 Vimari is a Safari extension that provides keyboard based navigation. The code is heavily based on \’vimium\’, a chrome extension that provides much more extensive features. Vimari attempts to provide a lightweight port of vimium to Safari, taking the best components of vimium and adapting them to Safari. 稍加配置,我就很容易获得了和后者类似的使用体验。例如下图的配置选项中,我把 […]

使用markdown格式写Todo list

上周我完成了chrome的markdown-preview扩展的修改,使它支持markdown文件的实时预览功能。现在可以考虑用这个功能来做一些更酷的事情,比如说,写Todo list? 开始干 首先我找到了一个叫topmarks的markdown样式文件,这个样式文件能给出一个漂亮的Todo list样式,我把它合并到了 修改后的markdown preview插件 关注了一下markdown-preview原作者的github,他有计划增加一项功能,让用户可以自定义css文件,但是近期完成无望,所以我新增了一个topmarks的分支,采用新的样式 在chrome的扩展中重新加载插件 效果图 如图,我采用vim编辑文件,右边摆上chrome浏览器预览,文件采用dropbox同步,保证我随时能更新这个文件。 关于topmarks的补充说明 topmarks样式采用了这些自定义标签 <t> 新任务 <d> 已完成的任务 <c> 已取消的任务 http, ical, mailto, file链接有不同的图标

markdown文件的编辑以及实时预览

之前看到有一款叫Mou的软件可以编辑markdown格式的文本内容并且实时预览,可是我比较喜欢用vim编辑器,所以就想着能不能用别的软件配合着来实现实时预览。 今天看到一个chrome的扩展叫markdown preview,它可以自动把md或markdown后缀的文本转换为html格式在chrome中查看,只是还欠缺一个自动刷新的功能。然后我看到它的源码已经放在github上,于是抓回来做了一些修改,加上了自动刷新的功能。 演示 尝试了一下在vim中编辑文件,然后在chrome中浏览,效果还不错,见下图: 更改后的扩展 我把修改后的markdown preview插件放在github上 , 已经尝试向原作者发起pull requests,要试用的话需要按下面几步操作: 把插件的代码clone回来 git clone git://github.com/volca/markdown-preview.git 开启chrome扩展的开发者模式,具体位置在窗口 -> 扩展程序里 载入正在开发的扩展程序 将允许访问文件网址勾选上 然后你就可以尝试用chrome浏览器打开markdown文件预览html,采用趁手的编辑器去修改它。 BTW chrome下的插件写起来比想像的要简单,写javascript就是了 现在这篇blog即是我用markdown格式写成的,用到了wordpress的markdown on save扩展。 Update 测试把文件放在dropbox的Public下,修改之后的效果能够立刻在共享链接里看到效果,很完美

php文档更新

php.net最近更新了php文档,比较有用的是新增的pman工具。pman是一个命令行小工具,方便查看php函数的本地帮助文档,但是不包含php.net的评论数据。简单的试用心得如下: 安装pman 使用传说中的pear来安装pman sudo pear install doc.php.net/pman 如果pear版本比较老,需要先升级pear才可以继续 sudo pear upgrade pear pman使用方法 pman的使用方法很傻瓜,比如我们想查看strlen的帮助信息: pman strlen 帮助文本的内容是彩色的,能和chm版本的php帮助文档媲美。pman的详细使用帮助如下 #pman –help man, version 1.6c usage: man [-adfhktwW] [section] [-M path] [-P pager] [-S list] [-m system] [-p string] name … a : find all matching entries c : do not use cat file d : print gobs […]

用gvim编辑firefox的文本框内容

到目前为止,已经使用近两年vim,渐渐的对这玩意有一些依赖性。 平常用的是firefox浏览器,为了看上去比较酷或者在装A和装C之间徘徊,我又安装了vimperator插件,这样操作firefox就像用vim一样,干啥都得敲一些键盘命令,浏览网页的时候对鼠标不会太依赖,还可以方便的调整本本的位置比如放在腿上。 为了最大化的利用vim,我不厌其烦的在狗狗上爬来爬去,终于学到一招实用技巧——利用gvim编辑网页中的文本内容。简单的说,只要光标停留在目标网页的文本框里,就可以使用ctrl + i (<C + i>)快捷键biu的一下呼出gvim编辑文本。 设置过程笔记 安装vimperator插件 在firefox里输入伪vim命令 :set editor=gvim -f 在系统的path环境变量中加入gvim.exe的路径,比如俺的是 D:\Program Files\Vim\vim72,很可能要重启电脑才能生效 顺利的话就可以使用前文说到的快捷键了。 优点 切换页面的时候,不会因为编辑焦点区域丢失导致保存内容失败 论坛中灌水的时候效率明显提升 写wiki或blog的时候得心应手 缺点 对vim的依赖程度会越来越高,不可自拔 本人的_vimperatorrc配置 autocmd LocationChange .* :js modes.passAllKeys = /mail\.google\.com/.test(buffer.URL) || /google\.com\/reader\//.test(buffer.URL) set complete=sfl set titlestring=hello set wildoptions=auto noremap noremap noremap noremap cnoremap cnoremap cnoremap inoremap inoremap inoremap inoremap inoremap inoremap :style -name […]

bom头的影响

前阵子有同事写了一段代码,在setcookie的时候出现下面错误。 Cannot modify header information – headers already sent by …. 这个错误非常之常见,如果在setcookie之前输出了任何文本内容,便会有上述错误提示。由于页面头部require了若干文件,一行行排查是很麻烦的事情,因此,我在页面顶部加上: ob_start(); 在setcookie之前加上代码: ob_get_clean(); 这是为了获取setcookie之前页面输出的内容。页面运行后,显示输出了一个空字符串,也就是说,setcookie之前没有任何输出。 继而用vim打开了源文件,发觉vim有打开bomb选项,怀疑因此给代码添加了隐藏的字符串,关闭之: set nobomb 问题解决。 BOM是什么意思? BOM是“Byte Order Mark”的缩写,用于标记文件的编码。并不是所有的文本编辑工具都能识别BOM标记

用vim来写wordpress

用vim习惯了之后,用别的编辑器写长一点的文本都没法适应,写wordpress更是如此。为此我郁闷了很长一段时间,直到前不久找到了一个新的宝贝 —- vimpress。这个东东可不是什么新的软件,它只不过是vim的一个plugin罢了。 只要装好vimpress,你就可以用它来列出或者发布blog。 目前这个插件有如下功能 获得文章列表 写新文章 编辑文章 现场保存 (yeah, no kidding) 支持分类 支持标签 vim命令清单 “:BlogList” 列出blog里的文章 “:BlogNew” 写新文章 “:BlogOpen id” 打开一篇现有的文章进行编辑 “:BlogSend” 保存并发布文章 安装过程 将解压之后plugin和syntax目录复制到vimfiles目录下 修改plugin下的blog.vim进行配置,需要配置username,password以及xmlrpc.php的url 如果需要支持tag,可以设置enable_tags=1。 如果需要支持UTW tags,需要另外下载一个vim插件utw-rpc-autotag vimpress的主页 发现的bug 如果标题中包含:号,那么:以后的字符会被截断 如果试图对草稿进行修改,那么发布后的博客没设定发布日期 BTW:现在这篇blog就是我使用vimpress完成的:)

很爽的vim motion操作

在“一组能让你爽出内伤的 Vim motion”里头看到一组这样的vim操作: * ci[ 删除一对 [] 中的所有字符并进入插入模式 * ci( 删除一对 () 中的所有字符并进入插入模式 * ci< 删除一对 中的所有字符并进入插入模式 * ci{ 删除一对 {} 中的所有字符并进入插入模式 * cit 删除一对 HTML/XML 的标签内部的所有字符并进入插入模式 * ci” ci’ ci` 删除一对引号字符 (” 或 ‘ 或 `) 中所有字符并进入插入模式 使用了之后,用vim写php/html感觉效率高了很多。从上面的操作中进一步演化,还能有些实用的组合: * vi[ 选择一对 [] 中的所有字符 * vi( 选择一对 () 中的所有字符 * vi< 选择一对 中的所有字符 * vi{ […]

vim 7.1跳出来了

vim 7.1发布啦~~ 这个时候距上次vim 7.0的发布相隔了一年之久。这个版本有啥变化?还是老一套: 输入下面命令就知道了: “:help version-7.1”. Changes since 7.1a: – Lots of spelling mistakes fixed. – Several runtime files updated. Somehow people tend to send me updates _after_ doing a release… – Bug in downloading a missing spell file fixed. Could wipe out a buffer with your text when downloading failed. – Building with […]