« Posts by Chris

Begin VIMming - Basic Skills I

VIM(pronounced /vi:m/)——Vi IMproved的缩写,是一款在多平台上均表现出色、能够令我们事半功倍的文本编辑器。《程序员修炼之道》(The Pragmatic Programmer: From Journeyman to Master)一书上教导我们,掌握一款能够在多平台上功能强大的文本编辑器的必要性。可能对程序员来说,没有比一款得心应手的文本编辑器更重要的工具了吧:-)

我第一次用VIM应该是初学Linux的时候,算算也已经4、5年了。曾经尝试过另一个大神级的editor——Emacs,但显然本人木有达到大神的境界...还是VIM比较通俗易懂一些,所以渐渐就Stick到VIM了。不可否认,相对于一些“现代”的GUI Oriented的文本编辑器,如Notepad++、UltraEdit等,VIM的学习曲线是比较陡峭的(虽然比起Emacs个人觉得要容易许多,当然这因人而异),这也是阻止许多童鞋接触VIM的主要原因。事实上,也有许多博客在宣传VIM方面做了很多工作,比如善用佳软

我在学习VIM的过程中看过许多Tutorial、参考过许多博客,当然自己也在使用中积累了一些经验。最近发现有一些有趣的技巧一段时间不使用容易淡忘,所以决定写几篇博客,总结我认为经典而且实用的VIM技巧,一方面分享使用VIM的经验,一方面也让自己整理一下过去所掌握的技巧,所谓温故而知新。因为参考了许多地方,如果文中有没有引用到原文的地方,请原作见谅。

絮絮叨叨了许多,下面就进入正题吧。因为VIM相关的内容比较多,一篇文章中很难细说,所以暂时打算分为四个部分来写。

  • VIM basic skills
  • VIM customizing your vimrc
  • VIM plugins
  • VIM advanced topics

难度由浅至深,今天从第一部分开始,也就是介绍一些比较实用的基础VIM编辑技巧。正如开头所说,本人远非“大师”或者“大神”,只是总结自己的经验,如有出错之处,请指出。 »Read More

Mac OS X下的Quake-like Terminal: Visor Terminal

好久没来更新了,主要是前段时间心烦,事情特别多,偶尔有空也和justice, sinnyn一起打DOTA,自己就是不想挤些时间出来写点东西。前天发现我家里一台电脑中了毒,这个毒异常牛X,机器上Win 7和Mac两个OS同时中毒...我猜是因为我装了一个免费的Proxy软件导致的,幸而这台电脑也不是常用的,所以么下决心重装一下。

重装完之后我要折腾一下Mac OS的Terminal,配置一下VIM,因为是比较常用的东东。想到前段时间在一个同事那儿看到他用的Terminal很棒,类似于Linux下的Tilda或者Guake,能够方便地即时唤出和隐藏Terminal,这对于Mac OS这种图形界面为主,但又不乏控制台命令的操作系统特别有用。这种样子的Terminal统称为Quake-like Terminal或者叫Drop-down Terminal,意思是这个Terminal像是Quake游戏中的控制台。

先看看效果如何吧:

是不是很棒呢,我为它设置的快捷键是Control+`,这样就可以用快捷键迅速唤出它,在配置apache,mysql之类的服务时很顺手噢。
»Read More

通过Google Reader API获取历史RSS条目

有时候你看到了一个好的Blog,于是你订阅了它,但你会发现,如果直接访问订阅的RSS源,它只会返回最新的10-20条内容,这是由Blog服务器决定的。如果偶们非常希望能够看到它以前所有的文章,怎么办呢?

订阅至Google Reader是个好办法,Google Reader发现你希望看到更多条目的时候,自动会获取更多的历史条目。这是怎么做到的呢?原来Google童鞋已经爬了多年的网络了,它所爬到的信息都存在它的数据库里,所以其实当Google Reader提供给你这些历史条目的时候,它实际上是从它所爬到的数据库中提取出来的。但有时候使用Google Reader也不够方便啦,因为它是增量式提供给你信息的,如果这时候希望获得所有的条目,用Google Reader一小段一小段地去取实在太过麻烦。今天发现了一个方法,很有效,很方便,推荐给各位童鞋。

»Read More

Tricks in Visual Studio

在水源VC版上看到了关于VS的小技巧的一系列帖子,觉得挺有意思,转一些我觉得有用的trick。

Watch窗口的秘密

Watch窗口是提供调试人员跟踪变量变化的一个工具,通常你可以在Watch窗口中监视程序中的某一个变量,其实除了变量以外Watch窗口还支持一些特殊的名称,如下表

eax EAX寄存器,其实就是刚刚调用的函数返回值
@err Win32 GetLastError()返回的错误号
xxx,su 将char* xxx当作unicode字符串显示
xxx,hr 把xxx当作是HRESULT来显示错误信息,经典的组合:@err,hr
xxx,wm 把整数xxx当作Windows 消息号,显示消息的名称(如WM_PAINT)
xxx,x 显示十六进制的值
xxx,23 把xxx当作数组首地址显示23个元素
xxx,mb 显示xxx开始的内存块内容,十六进制,类似于Memory窗口

这些特殊的名字都是非常有用的哦。

快捷键的秘密

还有几个非常有用的快捷键:

  • Ctrl+方向键可以一个单词一个单词跳跃,这和Word是一样的
  • 按住Alt拖动鼠标,可以纵向选择文本!
  • CTRL+ ] 用来跳转到匹配的括号,当然括号不限于[,而是包含了{ ,[, (, }, ],)
以下适用于2005及以上:
  • Ctrl + K + F 格式化你的代码
  • Ctrl + K + \   删除多余的空格和TAB
  • Ctrl + R + W   把本来看不见的空格和TAB显示出来,有点像Word的显示非打印符号,这样多余的空格一目了然,VC6中是CTRL+SHIFT+8
  • Ctrl + E + W   类似于记事本的“自动换行”效果

Visual Studio有很多有意思的技巧,闲下来没事的时候可以多摆弄摆弄,哈哈

破解Win 7远程登录限制的小工具

以前一直用的是Server 2008,只要装了Terminal Service就可以设置多用户同时远程登录,现在改用Win 7了,一直没在意远程连接数的限制。最近正好需要让几个小弟帮忙做些事情,他们需要远程登录我的电脑,这才发现Win 7只能支持一个登录Session,就是说我这边登录了的话他们就没办法远程登录上来了,崩溃了。还好,天无绝人之路,各路高手早已经有解决办法了,我就分享一下这个小破解程序。

在此下载:Win7RDP

解压之后以管理员身份运行install.cmd,一切就搞定了~