分类:'小小工具' 的所有文章

Gonzui,程序员专用,本地代码搜索引擎

查了好久,终于挖出这个东东

我不是要google的code search,也不是Koders或者Codase的那种服务。

我要的是,对我自己机器上的代码做索引,然后打开网页搜索本地的代码,有时候我只要C有时候我想只找类定义,不用怀疑,Gonzui都可以做到。结果的代码还有语法高亮哦。

路人甲:Google本地搜索不是很好吗?
兔毛猫:Google搜索本地文档是很好,但是我想搜程序代码的时候,他给我一坨屎,哦不,是一堆。

Gonzui专注于本地代码搜索,非常符合我的搜索要求。

目前支持的语言:C, C++, Java, JavaScript, Ruby, Python, PHP, Perl, Objective Caml, Brainfuck, CSS, Shell and plain text.

注:Win32版本的支持有限制:gonzui-win32 doesn’t support Ruby, Perl, and Objective Caml. Perl and OCaml will be supported soon. For ruby, I’m waiting for exerb’s support for ruby 1.9.

不说什么了,给link吧。

主页在这里:http://gonzui.sourceforge.net/
Win32上的可用版本在这里:http://soutaro.com/gonzui-win32/
一些屏幕截图在这里:http://gonzui.sourceforge.net/screenshots.html

参见:wikipedia上的介绍:

Gonzui
From Wikipedia, the free encyclopedia

Gonzui is a source code search engine software.

This software was originally developed by Satoru Takabayashi who developed the Namazu whole text robot search engine.

Gonzui is specially designed for searching source code including various programming languages. As of 2005, it supports C, C++, Java, JavaScript, Ruby, Python, PHP, Perl, Objective Caml, Brainfuck, CSS, Shell and plain text.

It also supports licenses such as GPL, LGPL, Perl’s License, and Ruby’s License as a search key.

附:
win32版本的使用方法:解压缩后进入所在命令行,然后:
> gonzui-import.exe file://c:/path/to/codes
> gonzui-server.exe

淘宝的表情包不错啊

打包下载: http://www.2maomao.com/blog/wp-content/uploads/taobao/taobaogif.zip

收集这些小东东的方法参见:获取起点小说网上面的职业头像的ruby脚本

如何在配置Windows下的GTK+开发环境

能找到这儿的,应该对GTK+有所了解,不了解的看这里

如果英文还可以的,到GTK的老巢看看说明就行了。

好,和我差不多的看官,下面开始介绍,以2.1x为例,其他的版本请自行到GTK的老巢翻找

总共需要:gtk以及其支持库,unixutils(make程序),gcc for windows(MinGW),后面两个不介绍了,自己找资料,下载后记得加入系统的PATH变量里

0. 打开gtk的下载页面:http://www.gtk.org/download/

1. hoho,有3个ftp链接,分别是:GTK+ SourceGLib SourcePango Source

2. 首先用ftp工具(没有的话下载一个filezilla看看)匿名登录GTK+ Source所在的那个ftp地址:ftp://ftp.gtk.org/pub/gtk/v2.10/ (限制连接数,请勿用ie打开)

3. 因为是windows系统,windows现在的主流还是win32,进入win32目录

4. 对,你看到了一堆的东西,包括cario / cairo-dev / gtk+ / gtk+-dev,各找个最新的下载下来

5. 然后,进入dependencies目录,霍霍,这里更多

6. 别客气,里面的atk / atk-dev / gettext / gettext-dev / libiconv / libjpeg / libpng / libtiff / libxml2 / pkg-config / zlib123-dll,捡最新的都下载下来吧

7. 好了,现在重复2-6,下载Pango和GLib所在的ftp目录下的win32及win32\depenencies目录下的东东,记住三个关键字:win32, dependencies, 还有“最新”的, “-dev” 也不放过

8. 好了好了,真的好了,把这些下载的文件全部解压到一个目录下,比如d:\system\gtkplus目录

9. 还差一点点就可以开始了,别忘了我们最终编写的程序还要有运行时支持,就像MFC也有mfcxxx.dll一样,gtk+需要GTK+运行库的支持,懒一点儿的下载这个(如果还有效的话),想稳定的到这里去找找下载吧:http://sourceforge.net/projects/gimp-win/,嫌太慢的话就搜搜google

10. 好,下载并安装完gtk+runtime(我用的是gtk+-2.10.13-setup.exe)以后,开始编写Hello world

————————编写Hello World健体强国,Oh Yeah! 分割线————————

1. 首先写个hello.c,里面的内容是

下载: hello.c
#include <gtk/gtk.h>
static gboolean delete_event( GtkWidget *widget, GdkEvent *event, gpointer data )
{
  
g_print ("delete event occurred\n");
  
return FALSE;
}
static void destroy( GtkWidget *widget, gpointer data )
{
  
gtk_main_quit ();
}
int main( int argc, char *argv[] )
{
  
GtkWidget *window;
  
GtkWidget *label;
  
gtk_init (&argc, &argv);
  
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  
g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (delete_event), NULL);
  
g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (destroy), NULL);
  
label = gtk_label_new ("Hello GTK");
  
gtk_container_add (GTK_CONTAINER (window), label);
  
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
  
gtk_widget_show (label);
  
gtk_widget_show (window);
  
gtk_main ();
  
return 0;
}

(为了缩短篇幅删去了所有注释和空行,完整版本参见后面参考资料里面的内容)

2. 好的,为了简单起见,不依赖任何开发环境,咱来写个makefile

gtk_include=-IE:/system/gtkplus/include -IE:/system/gtkplus/lib/gtk-2.0/include -IE:/system/gtkplus/include/gtk-2.0 -IE:/system/gtkplus/include/atk-1.0 -IE:/system/gtkplus/include/pango-1.0 -IE:/system/gtkplus/include/glib-2.0 -IE:/system/gtkplus/include/cairo -IE:/system/gtkplus/lib/glib-2.0/include

gtk_lib=-LE:/system/gtkplus/lib -lcairo -lintl -lgettextpo -lglib-2.0 -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lgdk_pixbuf-2.0 -lgdk-win32-2.0 -lgtk-win32-2.0 -lcharset -liconv -lpango-1.0 -lpangoft2-1.0 -lpangowin32-1.0 -lpangocairo-1.0 -lzdll -latk-1.0

#target_dir=Debug

main: hello.c
gcc -mms-bitfields -Wall -g hello.c -o hello \
${gtk_include} ${gtk_lib}

all:
${MAKE} main

注意事项:
a). 这里我的目录是e:\system\gtkplus,你解压的目录可能不一样
b). “gtk_lib=” 后面的”L”后跟的是gtk lib根目录,然后后面的小写的’l'对应该根目录下面所有的.lib文件,一一排好队,中间空格隔开
c). “gtk_include=” 后面的是所有包含.h文件的文件夹,前面加个”-I”,也来排好队,中间空格隔开
d). 注意makefile要用tab不要用空格
很繁琐吧,试试这个:windows下编译gtk文件的简单方法

3. 好啦,都有了,把hello.c和makefile放在同一个目录下,打开一个命令行进入该目录,敲入”make”,回车(没有make程序?到前头翻翻是否下载了unixutils和gcc for windows)

结果出来了,运行了hello.exe会看到这个界面:
Hello GTK

恭喜,你成功了?什么?还没搞定,rp太差了吧~~~~ :D

参考资料:
1、GTK+ 开发简介
2、在Windows 下以GTK+ 撰写视窗程式安装GTK+

程序员最喜欢用的编程字体

昨天和亮仔谈起编程字体,他说有个站点专门收集这个。
Google了一下,发现了这篇blog:Finding the Best Programmer’s Font

首先是好字体的标准:
* 非常清晰(Crisp clear characters)
* 支持扩展字符集(Extended characterset)
* 对空白把握的很好
* 可轻易区分’l', ‘1′ 和 ‘i’
* 可轻易区分’0′, ‘o’ 和 ‘O’
* 可轻易区分左右引号 - 最好是对称的
* 清晰的标点符号,特别是大括号小括号和中括号

里面提到的22个常用的font依次为:
1. Bitstream Vera Sans Mono
2. ti92pluspc
3. Crystal
4. Monaco
5. Anonymous
6. Andale Mono
7. Raize
8. ProFontWindows
9. Sheldon
10. BSU Kermit
11. Lucida Sans Typewriter Regula Java 2 SDK附带
12. Courier New
13. Courier, Windows自带
14. Lucida Consolev
15. ProggyTiny
16. ProggyClean
17. Fixedsys
18. Topaz-8
19. Free Monospaced
20. MS Mincho, Windows / Office自带
21. Hyperfont
22. Squareshooter Mono

呵呵,光说不看,没意思,这里有个对比图,可以参考一下(点击看大图),或者点击下面这个链接查看:
http://www.lowing.org/fonts/allfonts.htm

我最喜欢的是第1个和Lucida Console,加上clear type字体效果,大小选择10,真的很爽。
在叛变到Bitstream Vera Sans Mono一年以后,最近改为Consolas,visual studio自带的,非常爽,也可以在这儿下载

另参:
1. Programming Fonts — by Keith Devens
2. Best Programming Fonts for Easy Coding and Readability

zz: Vimperator:把你的Firefox变成VIM

Zenzen的酒楼提到:

VIM是我工作和日常使用得最多的一款编辑器。使用VIM的后遗症之一就是:使用其他编辑器时总是习惯不停的是按ESC,接下来很流畅的按下冒号。接着发现这里不是VIM,只能又一次慌忙的把输入的冒号删掉。

我曾经想,要是Windows可以自己配置,把快捷键绑定成VIM样式的那该多好啊。虽然windows的开发工程师也用vim,但是这样的希望我估计不大的,毕竟定位不同。

不过今天看到一款Firefox的插件挺有意思:这就是Vimperator。作者简直太有才了,那熟悉的操作感觉又回到了身边。不过有个建议,vim的新手使用前最好还是看下它的帮助,不然可能连怎么打开网页怎么退出都不会。有vim使用经验的朋友们就无所谓了,好多快捷键都可以猜到。猜不到的时候”:h”就可以了。

另外罗嗦一句,默认情况下菜单什么的全部被隐藏起来了,我觉得还是这样的效果比较好一点“:set guioptions=m”。

兔毛猫评论:虽然我很喜欢VIM,但是超链接是鼠标的killer feature,相对于输入,还是点击链接来的快 :)

« 上一页下一页 »