将vim变得简单:如何在vim中得到你最喜爱的IDE特性

将vim变得简单:如何在vim中得到你最喜爱的IDE特性

原文出处:这里

摘要:
开源的vim文本编辑器提供许多灵活而强大的功能,但是vim自身是很难被配置使用的,在本教材中,我们将向你显示通过几个简单的方式使得你的vim具有集成开发环境IDE的行为

vim是很多程序员和系统管理员最爱的文本编辑器,虽然他提供了很多优秀而灵活的功能,但是对于新手来说他依然是难于上手的。从传统集成开发环境转到vim的开发人员通常会开在发方式的转变中发现迷失了自己。

我经常收到来自于读者的邮件,他们希望能找到一种方式使得vim变得对开发者更友好。一个常见的抱怨是vim并不是自身就带有IDE的特性,并且如何来通过配置能得到等价IDE功能也不是很清晰。而揭开vim真正神奇的秘密就是利用强大的vim插件系统和对vim自身功能的改善和增强的第三方脚本。在阅你读本文之前,我已经整理好了一个vim的有用tips和插件列表,这些列表中的内容将会使那些用惯IDE功能的人们在vim上感到宾至如归的感觉。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (20 人打了分,平均分: 4.00 )
Loading...
一个C的序列化库tpl

一个C的序列化库tpl

tpl(http://tpl.sourceforge.net/)是一个开源的小项目,其主要是提供一个可以序列化或反序列化C语言数据的一个API函数库。tpl号称是最有效率的也是最快的,它可以把你内存中的数据存放到文件中,并可以在你需要的时候用文件中反序例化到内存变量中。而且这个函数库没有依赖于别的函数库。

下面是一个简单的示例(来源于其主页)

把一个数组(“序号”和“人名”)序例化到文件中。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (11 人打了分,平均分: 3.36 )
Loading...
谁说C语言很简单?

谁说C语言很简单?

前两天,Neo写了一篇《语言的歧义》其使用C语言讨论了一些语言的歧义。大家应该也顺便了解了一下C语言中的很多不可思异的东西,可能也是你从未注意到的东西。

是的,C语言并不简单,让我们来看看下面这些示例:

  1. 为什么下面的代码会返回0?(这题应该很简单吧)

      int x;
      return x == (1 && x);
    

    本题主要是关于C/C++中变量初始化的问题。

  2. 阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (27 人打了分,平均分: 4.00 )
Loading...
Web设计的速查卡

Web设计的速查卡

速查卡不仅仅可能帮助我们记住一些重要的东西,而且可以放在手边,当我们需要的时候,可以很快地查找。

在本篇文章中,你可以看到28个相当不错的关于Web设计的速查卡,它们分别是关于:Photoshop, Dreamweaver, 颜色, 排版, 其它Web设计相关的。他们都是一页纸,可以方便你很快地打印出来。

Photoshop

Photoshop CS3 快捷键速查卡

Photoshop CS3 Keyboard Shortcuts Cheat Sheet - screen shot.Downloads: PDF (Windows), PDF (Mac)

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (9 人打了分,平均分: 3.67 )
Loading...
语言的歧义

语言的歧义

语言是人与人相互沟通的途径,而计算机语言则是人和计算机沟通的途径。就算是任何再完美的自然语言都会有歧义,但是又是什么让人和计算计算机间产生了歧义呢?
下面这篇文章来自Gowri Kumar的Puzzle C一文。我做了一些整理,挑选了其中的一些问题,并在之后配上相应的答案(这些答案是我加的,如果需要原版的答案可以直接和本文作者Gowri Kumar联系,作者的联系方式可以从这里得到)。

puzzle 1

此段程序的作者希望输出数组中的所有元素,但是他却没有得到他想要的结果,是什么让程序员和计算机产生歧义?

#include <stdio.h>
#define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))
int array[] = {23,34,12,17,204,99,16};
int main()
{
    int d;

    for(d=-1;d <= (TOTAL_ELEMENTS-2);d++)
        printf("%d\n",array[d+1]);

    return 0;
}

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (27 人打了分,平均分: 4.30 )
Loading...
Linux磁盘使用命令du的改进

Linux磁盘使用命令du的改进

我们知道,在Linux下,如果你想知道当前目录下,每个文件或子目录的尺寸,你可以使用du命令来完成这一动作。如:

$  du -sh *

这个命令可以以K,M,G的方式显示每个文件和子目录的大小。我们把这种方式叫做,human-readable,也就是可以让人读的方式,如下所示:

8.4G Desktop
2.6G Documents
12K keys
12M Pictures
536K scripts

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (6 人打了分,平均分: 2.33 )
Loading...
22条经典的编程引言

22条经典的编程引言

下面的这些经典的引言来自英文,也许有些我翻译的是不很好,所以,我提供了中英对照,如果有问题,请大家指正。

 

过早的优化是万恶之源。Premature optimization is the root of all evil!
– Donald Knuth

 

在水里行走和以一个需求规格进行软件开发,有一点是相同的,那就是如果水或需求都被冻住不了,那么行走和软件开发都会变得容易。Walking on water and developing software from a specification are easy if both are frozen
– Edward V Berard

 

Hofstadter 定理:“一件事情总是会花费比你预期更多的时间,就算是你已经考虑过本条Hofstadter 定理”。It always takes longer than you expect, even when you take into account Hofstadter’s Law.
– Hofstadter’s Law

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (17 人打了分,平均分: 4.06 )
Loading...
关于C++构造函数的FAQ

关于C++构造函数的FAQ

下面是一些关于C++构造函数的FAQ。你能回答得出来吗?你可以点链接查看答案,不过是英文版的。他们来自于C++ FAQ Lite。当然,也有中文版的,只可惜中文版的太老了,只更新到了2001年。在C++ FAQ Lite上还有很多关于其它部分的FAQ,大家可以去看看。

[1] 构造函数是用来干什么的?

[2] List x;List x();有什么不同?

[3] 是否一个类的构造函数可以调用另一个构造函数来初始化自己?

[4] 是否Fred类的默认的函数函数就一定是Fred::Fred()?

[5] 如果要创建一个Fred 对像数组,什么样的构数函数会被调用?

[6] 构造函数初始化成员变量时,用 “初始化列表” 还是 “赋值”?

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (5 人打了分,平均分: 2.60 )
Loading...