git中修改commit的message的方法
一不小心commit时message写错了,找了好长时间,走了不少弯路,才找到方法……
git rebase -i master~5
这个是找出master分支最近5次的commit,看见那个写错的了吧?把pick改成edit,保存退出。
此时工作目录已经变成这次commit的样子了,不要慌,然后:
git commit --amend -m "message"
修改这次的message。最后:
git rebase --continue
怎么样,成功了吧?
利用这个方法也可以修改commit的文件。
用vim格式化代码
虽然不是第一次听说,但是第一次用的感觉还是很神奇。
以下转自:http://hi.baidu.com/seesea8/blog/item/b96c8e51eb8f352743a75b41.html
从别的编辑器里粘贴到vim里的代码经常由于不正常的缩进变得格式混乱。在vim的官方FAQ (http://vimdoc.sourceforge.net/cgi-bin/vimfaq2html3.pl)找到的:
格式化全文:
gg=G
自动缩进当前行:
==
这个是原文节选:
14.6. How do I format/indent an entire file?You can format/indent an entire file using the gg=G command, where
gg - Goto the beginning of the file
= - apply indentation
G - till end of fileFor more information, read
:help gg
:help =
:help G
:help 'formatprg'
:help C-indenting
CMake 项目卸载方法
CMake 默认不提供 uninstall 这个 target,想要的话,输入:
xargs rm < install_manifest.txt
对于不修改配置的项目足够了。
manifest.txt是CMake生成的安装文件列表。
用上Windows 7了
虚拟机上安装的,呵呵,图就不上了,网上有的是。
说起来,Windows 7的安装确实很傻瓜,比XP友好很多,据说跟Vista是一样的。
宽任务栏并没有想象中的那么碍眼,不过特效比起Compiz还是差远了。
不开Aero(开不了)的情况下在虚拟机(512M)里还是很快的,很流畅。
IE 8用着很难受,简直是逼迫别人习惯,就像Windows一贯作风一样。
不得不说,微软在各个细节做的都很细致,一些细小的动画,即使没有Aero也能体验到。
不过在体验了Linux的高定制性之后,即使某些程序的某些方面不如Windows,Windows也不可能成为我的主操作系统了。
Arch Linux无法休眠的解决
用了好久 Arch Linux,一个美中不足就是无法休眠。点了休眠按钮,看到它在休眠,可是重启后还是正常启动。
网上查了查,找到解决办法。
添加自己到power组:
#gpasswd -a username power
修改/boot/grub/menu.lst,加上resume=<你的swap分区>,例如:
kernel /boot/vmlinuz26 root=/dev/sda4 resume=/dev/sda5 ro
OK,享受超快的开机速度吧。
Linux下国际化编程(Gettext、i18n)
参考:http://blog.chinaunix.net/u1/59571/showart_1670949.html
一、编写程序
对于国际化程序的编写,终端程序和图形界面程序是不同的,但是后期的翻译步骤是一致的。
终端程序只有gettext函数,可以通过预编译(#define)来简化,而glib中的gi18n.h提供了_()宏,比较方便。把所有文本放在_()中间即可。
下面编写两个示例来说明。
终端程序:
#include#include #include #define _(STRING) gettext(STRING) int main () { setlocale (LC_ALL, ""); bindtextdomain ("test", "./locale/"); textdomain ("test"); printf (_("This is English.\n")); return 0; }
GTK+程序:
#include#include #include #define GETTEXT_PACKAGE "gi18n" #define LOCALEDIR "./locale" int main(int argc,char **argv) { GtkWidget *window; gtk_init (&argc, &argv); bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW(window), _("help")); g_signal_connect (G_OBJECT (window), "delete-event", G_CALLBACK (gtk_main_quit), NULL); gtk_widget_show (window); gtk_main (); return 0; }
二、生成po文件
xgettext -k_ -o lang.po ./*.c
三、编辑po文件
将头部的CHARSET改为"UTF-8",在msgstr后加入翻译。
四、生成mo文件
msgfmt -o test.mo lang.po
注意test是你程序中的GETTEXT_PACKAGE名字。
五、移动mo文件
先建立locale/zh_CN/LC_MASSAGES/这个文件夹,然后把mo文件移动过去,注意locale是你程序中的LOCALEDIR。
六、运行程序
呵呵,看看效果吧,在不同的locale下(可修改$LANG),运行的程序效果不同哦~
源码见这里:http://cid-162cb1a1d5fea75d.skydrive.live.com/self.aspx/.Public/i18n.7z
(第一次用skydrive,不知道会不会很麻烦……)
2009年来了
我的小说还是没有进展。
参加了电子设计大赛的培训班,开始努力。
开始研究ubuntu-tweak源码,争取给同学们写个相似的。
时间是最有威力的法术,然后才是心灵。
时间暂停多好。
