Monday, May 13, 2013

IBM Model M SSK

周末终于拿到淘宝上买的键盘了,IBM Model M SSK比较稀缺的IBM Model M。

花了不少时间清理干净,清洗键帽,因为是单层键帽,晾了一天一夜都没有干,不经意一甩键帽才发现里面还有蛮多水,就费力一个一个键帽的甩,把里面的水甩干。这样过了个把小时就干透了。

由于是通过快递再加上好几天的海运,淘宝的老板给困的结实,可是忘了在键盘外面包上泡沫,快递过程中对键盘的损害还是可以看到的。不过不影响键盘的使用。

我以前没有用过任何的机械键盘,这个是我第一款的机械键盘,看网上说用Model M来打字比用Cherry MX Blue的感觉好的多,所以我也就不准备再去买一个Blue Switch来试一试了。使用了一阵子的感觉真的是很棒,声音打一点还是可以接受的。只是晚上在家里用就有点显吵。

现在的问题是这个PS2的键盘拿到公司,用公司的KVM上的PS2 To USB转换头,出现延迟,或者键打不出来的问题,根本不能用,网上搜了一下,发现是IBM Model M耗电比较厉害,要112mA,而普通键盘也就耗电1.2mA.需要买品牌比较好的转换头。手上现在没有,只有先把键盘放在一旁,等我买到转换头再用了,小郁闷!

Friday, May 3, 2013

推荐一款输入法 : 中州韻輸入法引擎 | Rime Input Method Engine

自己一直在使用Google拼音输入法,最近在找Ubuntu上的中文输入法的时候看到有人推荐这个,简单看了一下说明,的确很吸引人。重要的是,这个输入法是跨平台的,Windows,Linux和MacOS都有支持。安装使用了几天,感觉的确很棒,就没有继续使用Google了。

中州韻輸入法引擎 | Rime Input Method Engine

https://code.google.com/p/rimeime

Tuesday, April 30, 2013

完全使用VIM一个月

之前的文章讲的,我是因为考虑要买一个HHKB键盘而决定使用VIM的,到现在已经使用有一个月了。虽然最终没有买HHKB键盘,不过学会了VIM这个也是一个让我觉得很得意的成就。现在自己很庆幸当时狠下心来学习了VIM,真的不愧是编辑器之神。

自己从毕业工作开始,使用过好几种编辑器,SourceInsight,Eclipse,UltraEdit,SublimeText,NotePad++这个单子还可以更长,这几个是自己感觉比较好的编辑器。期间也有试着学习Emacs,每次都放弃了。VIM自己一路来都在用,可是只是在需要远程简单编辑Linux上的一些文件时候用一下,VIM从来没有成为自己的主编辑器。这些编辑器中我使用最多的是SourceInsight和SublimeText。SourceInsight在看代码方面,特别是大型项目代码的时候,真的是有很大的优势,可是其编辑功能真的是太差了。SublimeText,我从看到它的第一眼就喜欢上了,可能是因为它的配色很和自己的胃口吧。自己特别喜欢SublimeText的Ctrl+P功能,Ctrl+D,多选功能,Column Edit,Per Project Setting。还有就是它选择丰富的插件系统,因为其插件支持Python,插件开发变得相对容易。还有就是其跨平台支持,这些有优点让SublimeText出道不到几年已经变成一个十分流行的编辑器,自己这次转换到VIM,在选择插件的时候就是参考了已经习惯的SublimeText来做选择,只有在VIM里面基本实现了日常开发需要的功能,才能够抛弃别的编辑器,100%使用VIM。

使用VIM,就是要全键盘工作,在编辑代码的时候抛弃鼠标,要想实现高效的浏览和编辑,定制自己称心容易记的组合键是必不可少的。你可以轻易的在网上找到别人的VIM配置,自己加以借鉴修改成适合自己的配置。自己的VIM基本配置一开始就使用没有修改过的The ultimate Vim configuration (vimrc) 只是插件从一开始我就选择自己要用的。在使用过程中,再慢慢修改到自己喜欢的配置。慢慢的,你的VIM配置就十分完整了。

VIM的学习曲线相对于除Emacs外的编辑器是很陡的,可是你一旦掌握,你就真心会喜欢上VIM,你就恨不得所有的日常使用程序都想要VIM的Key Binding。实际上学习VIM跟学习任何别的软件或者编程语言一样,没有什么捷径,唯一的途径就是使用,让自己天天使用,强迫自己只使用VIM,遇到问题就Google一下,找打解决办法。以我自己的经验来讲,当我强迫自己只使用VIM来做工,只用了一个礼拜,自己就很习惯使用VIM了。

对于一个代码编辑器来讲,最重要的几样功能只要实现了,就基本上是一个可以使用的编辑器了,高级功能是要在实际需要的时候再学习的。因为我是做C编程的,而且项目比较大,光C代码文件就有1万多个,所以,以下几样是我认为不可少的几样功能:

  • 代码跳转,跳到定义地方
  • 快速代码查找,在整个项目的所有文件内查找
  • 漂亮的代码显示
  • 自定义组合键
  • 丰富的扩展性 (加入特有的编译构建系统,或者特有的外部命令)
  • 项目管理,或者对不同的文件夹进行不同的设定 (Per Project/Dirctory Setting)
  • 快速打开文件
  • 基本的代码补全提示(对于大型项目真的是实用的)

SublimeText对于上述的功能都有很好的实现,而且SublimeText也还有Vim的KeyBinding。可是自己对于这种混杂的Key Binding不是很习惯。在习惯了Vim后,虽然Vim没有实现所有我喜欢的SublimeText的功能,我还是果断的选择了Vim。

对于我选择的插件和我选择的Vim Key Binding我会再另外写一个blog来讲述。希望有更多的Programmer跟我一样,最终选到一个自己十分喜欢的编辑器,不管是Emacs还是Vim,还是别的,只要你真的喜欢,并且能完成你需要的所有功能,那就用它吧。

Friday, April 19, 2013

VIM杀手秘技


该文内容来自: http://stackoverflow.com/questions/726894/what-are-the-dark-corners-of-vim-your-mom-never-told-you-about 并没有列出所有的,只是选择了投票比较多的。的确都是一些很实用的技巧

:w !sudo tee %
在Linux系统下面辛苦编辑了一个配置文件,要保存的时候发现要root权限,怎么办?这个命令就是让你不用以root权限来运行VIM但是可以编辑系统文件的命令。

:earlier 15m
把当前文件恢复到15分钟前的状态, 这个时间参数除了分钟,还有很多别的格式。

删除指定范围 diwdi(di"
diw 删除当前词
di( 或者 di) 删除当前括号内的内容,光标要在括号上,或者括号内
di" 删除引号内的内容
相同的命令还有ciw , ci( , ci" 还有dt, dt), dt",ct, ct), ct"

:! [command] :.! [command]
前一个是执行外部命令,后面一个只是在:后面加了一个"." 好处是把命令的输出直接放在当前行。比如你要在文档里面插入当前日期,就可以用 :.! date

:%!xxd  把VIM变成Hex Editor
:%!xxd -r 从Hex Editor变回去

:g/rgba/y A
把所有包含rgba的行复制到a寄存器里面,然后可以用 "ap粘帖,这里用大写A是取为了把找打的行追加在寄存器里面,否则就只有最后一行被放在了寄存器里面了

:verbose set xxxxxx?
有时候.vimrc的一些配置会被一些插件或者autocommand重新设置,要找出哪些地方设置了这个,就用这个命令, xxxxxx这里泛指VIM的设置项,比如 :verbose set cindent? 就找出来哪些地方设置了cindent

q:
查看命令历史,这个我们应该经常不小心就掉出来了

gv
重新选择上次的选择

gf, gF
gf把光标移到文件名上,比如c文件里面include的头文件,按gf就会打开这个文件
gF跟gf已经,这个命令认识“文件名:行号”的格式,可以直接跳转到指定行

Wednesday, April 17, 2013

HHKB和VIM


前一段时间在网上游荡的时候被别人下毒,看中了HHKB键盘,网上编程人员对于此键盘都是推崇备至,引为终极解毒利器,于是心痒痒准备从日本Amazon购买一个Pro2。在下了决定后面几天,基本上每天都要花一些时间到网上找关于HHKB的文章看看,过了几天,没有下单去买,因为对于HHKB已经退烧了。退烧不是因为忽然觉得这个键盘不好了,而是因为考虑到如果我买一个HHKB,自己应该很快就会习惯其布局,那么以后自己不管到哪里,都要准备一个HHKB布局的键盘,否则就会严重不适应,特别是那个特别的Backspace键,一个使用率特别高的键,一旦适应HHKB的位置,那到标准键盘上面岂不是每次都会打出来一串"\"来。而自己现在又没有钱买上两个HHKB,一个放家里,一个放公司。于是,我就退烧了,因为开销太高。

在考虑HHKB期间,让我有一个意外收获,就是自己现在改用VIM了。起因是因为当时决定要用HHKB键盘,那当然是用VIM或者Emacs来作为编辑器才能够发挥其特殊布局的好处。基于自己已经对VIM有一点基础,于是决定最终选择VIM。网上参考了不少文章,终于把VIM的配置和插件搞定,这次是我认识VIM以来做的最好,最完整的一次配置。选择插件都是尽量在相似插件里面选择自己最喜欢的,而且考虑到Sublime Text有很多好功能,特别是自己天天使用的功能,比如Control+P,Project,Ctrl+D,就优先安装了那些实现这些功能的插件。现在自己对这次所做的配置是十分满意的,自己需要的功能都在VIM里面实现了。然后就是对键盘做了一些Remap,对于Ctrl和Esc应该怎么remap自己是考虑和实验了好几种方案,这个可以另外写一篇文章来单独写,自己最终只是选择了把CapLock换成Ctrl,而用Ctrl+[来作为Esc,这个是VIM内置的。在强制自己用了VIM两个礼拜了,我不得不说,我现在很喜欢VIM,简单快捷的编辑真的是让编辑代码感觉很爽。自己在VIM里面做了好多remap,尽量把常用的已经命令remap到Home Line的键上面。

我现在用的VIM配置已经放在github上面:http://github.com/yongzhy/vimconfig 自己还在慢慢的在使用过程中做一些修改,不过基本的,必须的插件都已经在了。还有一个没有解决的问题是代码自动补全,我倾向于用clang来做代码补全提示,不过由于公司的代码结构的特殊性,自己还没有找到一个好的解决办法,所以这个功能就先不这么急。

Tuesday, February 5, 2013

Windows 7 右键默认开启 "Open Command Window here"

windows 7 里默认要按住SHIFT点右键才会在菜单中出现“Open Command Window Here”的选项,通过修改注册表可以让此选项默认打开,不用再按SHIFT键

1.  运行regedit
2.  把下面3个KEY的“Extended”值逐个删除。
     HKEY_CLASSES_ROOT\Directory\shell\cmd
     HKEY_CLASSES_ROOT\Directory\Background\shell\cmd
     HKEY_CLASSES_ROOT\Drive\shell\cmd
3. Extened删除以后,右键点击文件夹,或者点击文件浏览器里面的空白处,都会出现“Open Command Window Here"的选项

Friday, January 25, 2013

Go wrapper for Lauterbach Trace32 Remote API

公司里面用Lauterbach Trace32的simulation来解决一些问题,其过程比较繁琐,要运行很多次不同的cmm文件,还要好几种文件。于是就想把这些过程自动化,写一个小工具根据指定的参数自动生成cmm文件,然后用Remote API控制Trace32来运行这些生成的cmm。这个小工具已经做好,用Go写的,本来决定要用QT写一个GUI版本,因为那些API是C的。最后因为发现那些API比较容易封装,而且自己也正在学习Go,就多做了一些工,把API用Go封装一下,然后用Go来写这个小工具。

本着共享的精神,封装好的API放在github上,不是每一个function我都测试过,我自己需要用的那几个API是没有问题的。 :)

代码地址: https://github.com/yongzhy/t32

Wednesday, January 9, 2013

五个小技巧让Sublime Text 2更漂亮

Sublime Text 2默认的界面和配色已经十分漂亮养眼,这里再提供5个小技巧,让Sublime Text 2 的界面更加漂亮一些。

打开用户自定义文件, Preferences -> Settings - User

1. 改变光标的样式

"caret_style": "phase"

这个会把光标的样式从闪烁变成淡入淡出,其余的选项还有“smooth”, “phase”, “blink”, “wide”, “solid”

2. 高亮当前行

"highlight_line": true

这个就不用解释了

3. 增加行间距

"line_padding_bottom": 1,
"line_padding_top": 1

这个会在每行的上下都增加两个像素的空格,让你阅读代码的体验更佳

4. 一直现在代码折叠箭头

"fade_fold_buttons": false

这个会让代码折叠箭头一直显示

5. 让文件列表里面的文件夹黑体显示

"bold_folder_labels": true

这样文件夹就是黑体字,文件就是普通字体,让人们比较容易区分文件夹和文件

转自: http://wesbos.com/sublime-text-5-visual-tweaks/

Tuesday, January 8, 2013

简单的 p4wrapper 实现 perforce p4的edit和revert命令

公司用Perforce管理代码,因为有很多产品,每个产品在自己的branch里面,电脑上自己参与的产品都有一个独立的workspace。自己用SourceInsight和SublimeText2来编辑代码,每次都在不同的workspace间换来换去,所以如果用p4命令来check out代码,P4_CLIENT每次都在变。为了省事,自己用Go写了一个简单的p4的wrapper,只做两件事情,check out和revert。其余的perforce的工作就用GUI的客户端。

自己写的这个wrapper有考虑到本人自己的情况,所以这个wrapper不需要用户去定义现在的workspace,wrapper会通过比较现在的工作文件的绝对路径和用户在当前开发主机上的所有workspace的路径mapping比较找出working workspace。这样就省去了每次要定义P4_CLIENT的苦恼。

代码放在github上, 点这里

我也把自己用的SublimeText 2的plugin放上去了。希望对那些工作环境跟我差不多的人有所帮助。

Monday, January 7, 2013

Adobe免费赠送CS2系列官方正版Key

对于正准备做游戏开发还有学习绘画的我来说,Adobe免费赠送CS2系列官方正版Key是一个很好的消息。CS2虽然是7年前的产品,但是功能方面应该能够满足我绝大部分的需求的。

Illustrator刚好可以用来做游戏里面的graphic,矢量图可以导出各种尺寸,对于现在动辄要支持好几种分辨率的App开发来讲,是很适合的。

除了CS2系列,还免费送Acrobat 7 Standard, Acrobat 8 Pro, Audition 3.0, Photoshop Element 5.0, Adobe Premiere Pro 2.0. 这些软件对于个人使用,功能方面和最新的CS6比起来应该是绝对足够个人使用了。

下载地址: http://www.adobe.com/cfusion/entitlement/index.cfm?e=cs2_downloads
需要注册一个Adobe账户,然后就可以下载了。

在Windows 7 64bit上安装这个CS2 系列,如果一切用默认安装,应该会有问题,下面是解决办法
1. 右击setup.exe选择用Admin权限安装
2. 在选择安装路径的时候,把"C:\Program Files (x86)\Adobe" 换成 "C:\Progra~2\Adobe"就可以了

晚上回家就开电脑下载。