主页

Mac OS X 下终端的配置

工欲善其事,必先利其器,今天要讲的是日常开发中最常用到的终端的配置。以下教程会用到: iTerm2 Solarized oh-my-zsh issues 一、使用 iTerm2 代替默认终端 都说自带的终端不好用,何不试试 iTerm2? 二、配置 iTerm2 的配色 先通过下面命令下载 Solarized 配色文件: ~ $ git clone git://github.com/altercation/solarized.git 然后打开 iTerm2 的偏好设置(快捷键为 Cmd + ,),找到 Profiles / Colors,在最下面的 Load Presets … / Import… 加载下载好的 iterm2-colors-solar...

阅读更多

关于正则表达式

所谓正则表达式,就是一种描述字符串结构模式的形式化表达方法。在许多工具(如文本编辑器)及编程语言(如 Perl、JavaScript、awk)中,正则表达式都扮演了极其重要的角色。 正则表达式的起源 关于正则表达式,最初的想法来自 20 世纪 40 年代的两位神经学家研究出一种模型,认为神经系统在神经元层面上就是像现在的正则表达式这样工作的。1968 年 Ken Thompson 开发了他的文本编辑器 ed,其中一个命令是显示正在编辑的文件中能够匹配特定正则表达式的行。这一功能随后成为独立的工具 grep。 正则表达式 完整的正则表达式由两种字符构成:元字符和普通文本字符。 1、元字符 元字符是指那些不表示其本身含义,而具有特殊含义的特殊字符。比如表示匹配字符串开始和结束的...

阅读更多

几种常见排序算法的总结

排序算法是计算机科学中最常见的一类算法,也是程序员在求职面试时最经常会被问到的。所以本文中,将会对几种常见的排序算法进行简单的介绍和分析。 一、插入排序 插入排序(Insertion Sort)由 N-1 趟排序组成。对于 p = 1 趟到 p = N-1 趟,插入排序保证从位置 0 到位置 p 上的元素为已排序状态。下面的程序中,位置 p 上的元素存于 tmp,而在位置 p 之前所有更大的元素都被向右移动一个位置,最后 tmp 被正确放在的位置上。 下面的 C 代码是参考《编程珠玑》而对交换操作进行优化过的: void insertion_sort (int d[], int N) { int j, p; int tmp; for (p = 1; p...

阅读更多

读「人月神话」

我在本科学习计算机专业时,就听过有一本鼎鼎大名的书叫「人月神话」,但却也一直没有机会阅读。直到前一阵子在重庆交大的图书馆中无意发现了这本书,就借下来翻看,读到了一些很多很有价值的观点,受益颇多,所以才有了此文的简单记录。 一、编程的乐趣与苦恼 在第一章中,作者总结了编程带给开发人员的一些乐趣所在,以及伴随着的若干苦恼。编程行业“满足我们内心深处的创造渴望和愉悦所有人的共同情感”提供了五种乐趣: 创建事物的快乐。 开发对其他人有用的东西的乐趣。 将可以活动、相互啮合的零件组装成类似迷宫的东西,这个过程所体现出令人神魂颠倒的魅力。 面对不重复的任务,不断学习的乐趣。 工作在如此易于驾驭的介质上的乐趣——纯粹的思维活动——其存在、移动和运转方式完全不同于实际事物。...

阅读更多

高效使用 Vim 编辑器

Vim 是程序员最广泛使用的文本编辑器之一(在 Unix 文化里,它的对手是 Emacs,并由此引发了黑客界的编辑器之战)。 本文将会介绍一些实用的配置和命令,以便高效地使用 Vim 进行编辑。这些技巧均不需要安装任何额外的插件。 一、使用相对行号 在 Vim 中,相对行号是提高移动效率的一大利器。通过它可以快速定位目标位置距当前光标的行数,然后使用类似 7j 或 11k 的命令进行移动操作。 下面的配置会使 Vim 对当前行显示绝对行号,而对其它行显示相对行号: set number set relativenumber 二、更多的命令,更高的效率 “不要使用方向键,使用 h/j/k/l 替代!”,这句话通常是给 Vim 新手的第一条建议。Vim 中内置了丰富的命...

阅读更多

Perl 编程技巧

Perl 起初是由 Larry Wall 为了让在 UNIX 上进行报表处理的工作变得更加方便而设计和开发的实用摘录和报告语言(Practical Extraction and Report Language),它借鉴了 C、awk、shell 脚本以及很多其它编程语言的特性。Larry Wall 本人也是一个语言学家,他设计 perl 语言时使用了很多语言学的思维,他也经常使用语言学说明 perl 语言的架构,像“变量”和“函数”,他有时说成“名词”和“动词”。 一、利用注释调试:使用 Smart::Comments 模块 调试 Perl 脚本有两种方式:一种是使用 Perl 的内置调试器,另一种是在脚本中嵌入 print 语句。如果是第二种,大概就会了解到,像那样手工调试的最大...

阅读更多