Vim 配置文件 vimrc

1.替换方法
替换对应的vimrc文件,定制自己的vimrc
/etc/vimrc                  替换此文件;
/home/lmy/.vimrc     只对当前用户有效;

Ubuntu9.10:替换/etc/vim/vimrc,可以在新立得软件包管理器,查看vim到安装路径;
CentOS5.3:替换/etc/vimrc,vim安装目录:/usr/share/vim/vim70;

taglist.vim、winmanager.vim、supertab.vim等插件copy到相应到位置plugin目录;

1.1 vim错误

Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH. Plugin is not loaded.
通过新立得安装“ctags”

1.2 SuperTab代码补全

下载插件http://www.vim.org/scripts/script.php?script_id=1643
将supertab.vim拷贝到/usr/share/vim/vim72/plugin/
需要补全代码时用”tab”

(更多…)

常见的SVN错误

#, c-format
msgid “”
“Failed to mark ‘%s’ absent: item of the same name is already scheduled for ”
“addition”
msgstr “无法将“%s”标记为不存在: 同名项目已加入增加调度”
msgid “Destination directory of add-with-history is missing a URL”
msgstr “add-with-history 的目标目录缺少 URL”
msgid “Destination URLs are broken”
msgstr “目的 URL 无效”
msgid “No fetch_func supplied to update_editor”
msgstr “没有为 update_editor 提供 fetch_func”
msgid “Bad copyfrom arguments received”
msgstr “接收到非法的 copyfrom 参数”
(更多…)

iPhone应用程序生命周期

int UIApplicationMain (
    int argc,
    char *argv[],
    NSString *principalClassName,
    NSString *delegateClassName
);

那么UIApplicationMain函数到底做了哪些事情呢?这个函数主要负责三件事情:
1)从给定的类名初始化应用程序对象,也就是初始化UIApplication或者子类对象的一个实例,如果你在这里给定的是nil,那么系统会默认UIApplication类,也就主要是这个类来控制以及协调应用程序的运行。在后续的工作中,你可以用静态方法sharedApplication 来获取应用程序的句柄。
2)从给定的应用程序委托类,初始化一个应用程序委托。并把该委托设置为应用程序的委托,这里就有如果传入参数为nil,会调用函数访问 Info.plist文件来寻找主nib文件,获取应用程序委托。
3)启动主事件循环,并开始接收事件。
上面是UIApplicationMain函数的工作,接下来一个问题是应用程序视图的显示、消息的控制怎么办?下面就是UIApplication(或者子类)对象的职责,这个对象主要做下面几件事:
1)负责处理到来的用户事件,并分发事件消息到应该处理该消息的目标对象(sender, action)。
2)管理以及控制视图,包括呈现、控制行为、当前显示视图等。
3)该对象有一个应用程序委托对象,当一些生命周期内重要事件(可以包括系统事件或者生命周期控制事件)发生时,应用程序通知该对象。例如,应用程序启动、内存不够了或者应用程序结束等,让这些事件发生时,应用程序委托去响应。
(更多…)

viewDidLoad, viewWillDisappear, viewWillAppear等区别

viewWillAppear:
Called when the view is about to made visible. Default does nothing
视图即将可见时调用。默认情况下不执行任何操作

viewDidAppear:
Called when the view has been fully transitioned onto the screen. Default does nothing
视图已完全过渡到屏幕上时调用

viewWillDisappear:
Called when the view is dismissed, covered or otherwise hidden. Default does nothing
视图被驳回时调用,覆盖或以其他方式隐藏。默认情况下不执行任何操作
(更多…)

windows 7 bcdedit.exe(启动管理器)知识和常用语法

bcdedit.exe是windows 7系统自带的一个命令行工具,用来定制windows boot manager,官方的说法是:BCDEDIT – 启动配置数据存储编辑器。它位于x:\windows\system32目录下(X:为操作系统安装目录)。可以使用bcdedit.exe来编辑mac os x ,ubuntu,windows等多系统启动菜单。

BCD要起作用还必须依赖于X:\BOOT文件夹及X:\BOOTMGR这个文件。其中X:\BOOTMGR是真正的开机引导程序,而X:\BOOT文件夹中有一个名为BCD的文件,实际上我们通常所说的系统的启动菜单,就是以系统bcd文件的形式而存在的,也就是说系统bcd就是一个文件。以及一个名为FONT的文件夹,里面含有用于开机引导菜单的显示的字体文件。 bcdedit.exe的功能强大,参数非常多,下面我就讲解下bcdedit.exe的常用功能。
(更多…)

Linux C中md5加密以及mysql简单操作

md5,使用了openssl/md5.h这个头。自己写了一个md5字符串函数,如下:

#include<openssl/md5.h>
char *md5(char *str)
{
	MD5_CTX ctx;
	unsigned char md[MD5_DIGEST_LENGTH];
	char *result = (char *)malloc(sizeof(char)*(MD5_DIGEST_LENGTH*2+1));
	int i;
	MD5_Init(&ctx);
	MD5_Update(&ctx,(void *)str,strlen(str));
	MD5_Final(md,&ctx);
	for (i=0;i<MD5_DIGEST_LENGTH;i++)
	  sprintf(result+i*2,"%02x",md[i]);
	return result;
}

在编译的时候遇到了个问题,提示连接的时候找不到MD5_Init等,在编译命令中增加-lcrypto,问题解决。
(更多…)

结构体大小的计算所占字节

字节对齐原则

结构体默认的字节对齐一般满足三个准则:

1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除; 2) 结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节(internal adding); 3) 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节(trailing padding)。

通过这三个原则,就不难理解下面两个struct的差异了.
(更多…)