Vim的分屏功能
本篇文章主要教你如何使用 Vim 分屏功能。
目录
分屏启动Vim
关闭分屏
分屏
移动光标
移动分屏
屏幕尺寸
分屏启动Vim
使用大写的O参数来垂直分屏。
vim -On file1 file2 ...
使用小写的o参数来水平分屏。
vim -on file1 file2 ...
注释: n是数字,表示分成几个屏。
关闭分屏
关闭当前窗口。
Ctrl+W c
关闭当前窗口,如果只剩最后一个了,则退出Vim。
Ctrl+W q
分屏
上下分割当前打开的文件。
Ctrl+W s
上下分割,并打开一个新的文件。
:sp filename
左右分割当前打开的文件。
Ctrl+W v
左右分割,并打开一个新的文件。
:vsp filename
移动光标
Vi中的光标键是h, j, k, l,要在各个屏间切换,只需要先按一下Ctrl+W
把光标移到右边的屏。
Ctrl+W l
把光标移到左边的屏中。
Ct ...
13个不错的Javascript和CSS的菜单
以前发布过两篇文章——“30种时尚的CSS网站导航条”和“20个优秀的Javascript导航技术”,今天向大家介绍一下,13个不错的Javascript和CSS的菜单。
1) 性感的滑动型菜单
演示: Mootols Version
演示:Script.aculo.usVersion
2) FastFind 菜单 右键菜单,还可以被拖来拖去。使用 jQuery 。
演示: FastFind Menu
3) Webber 2.0 Dock 菜单
演示: Webber 2.0 Dock Menu
4) Phatfusion- 图片菜单 使用了onClick 事件来 open 和 close 菜单项。
演示: Phatfusion- Image Menu
演示: Mootools version with XML parser
5) 可拖动的树形菜单
演示: Drag and Drop ordering in a TreePan ...
VIM有趣的命令
前几天逛豆瓣,发现了VIM一个有趣的小技巧。
在VIM中输入:h!试试看会发现什么。
再输入:h 42呢?又会有什么发现?
Richard Feynman, 挑战者号, 软件工程
源文:链接 (本文主要根据挑战者号的问题,以及Richard Feynman那对NASA严厉的批评报告,批评了不适当的“自顶向下”的设计方法,并总结了一下软件工程和其它工程的相通的一些观点。翻译水平有限,欢迎指正)
佛罗里达州,美国东部时间1986年1月28日上午11时39分,挑战者号航天飞机 执行为期6天的STS-51-L 任务,在发射后,其右侧固体火箭助推器(SRB – Solid Rocket Booster)的O型环密封圈(用于连接两节助推器)失效,泄漏出来的热汽达到了5000华氏度,直接蒸发了O型密封圈,并灼烧了毗邻的外部燃料舱,在几秒钟内,外部燃料舱出现结构连接失效,空气的动力迅速分解了航天飞机。在而航天飞机上升72秒以后,助推器脱落,导致航天发飞向侧面滑出。几乎在引航员 Michael J. Smith 发出”Uh oh” 的同时,整个航天飞机完全解体,片刻,航天飞机内部发生爆炸,所有7名宇航员罹难。 那时的我还只是一个小孩,我从电视下方滚动的新闻条目知道了这一惨剧。
在那个时候,火箭助推器工程师曾经警告过这个O型环可能存在问题,但可 ...
装完Ubuntu 9.10后要干的事
Ubuntu 9.10刚刚release,就有人在网上发表了贴子告诉大家在装完这个操作系统后,还需要去安装的一些开源免费软件,相当丰富。不过,这个贴子的链接被GFW干掉了,所以,你需要使用Tor的支持,或是使用Google Reader才能查看源文(RSS链接)。而这个贴子非常长,所以我无法作全文翻译,不过这个贴子的内容具有很强的指导意义,所以我在这里为大家总结一下该文所提到的那些诸多的东西。(关于那些如何翻墙的事情怎么做我就不多说了,网上有很多相关的文章,你自己搜索一下就可以找到)
目录
基本工作
受限软件
界面相关
桌面相关
音频/视频编辑器
多媒体Playback
网页浏览器
游戏
图片和发行物
文件分享
时间管理
沟通软件
安全和隐私
系统工具
基本工作
1)第一件事自然是下载那些Ubuntu的镜像站点表,以及更新操作系统的一些补丁。“系统”->“管理”-> “更新管理器”。
2)第二件事是设置文件目录共享。就是在文件夹上点右键,在菜单 ...
文件备份的几个简单命令
我们知道,备份文件是一件很重要的事情,我在《优秀程序员的十个习惯》一文向大家说明了备份文件应该是程序员最基本的一个习惯。本文主要是向大家介绍一些在备份文件和数据时能用得到的一些示例,当然,这些示例主要是通过一些命令行或是脚本来实现的。这就是用命令行和脚本的优势,你可以实现比较灵活和自动的定制。
本文中的脚本和示例都是主要是通过zip, tar, ftp, wget和shell脚本来完成。在Linux下,你可以什么也不用安装任何程序,但在Windows下,你需要安装zip 和wget这三个命令(在本文的最后有这三个命令的链接,你可以去下载)
几个小脚本
1)首先,我们来看一下,如何给某目录打个zip包。
Windows:
zip -r backup.zip "c:\yourfolder"
Linux: (打包自己的home目录)
tar -czvf ~/backup.tgz --exclude backup.tgz ~/
2)接下来,我们再来看一下,创建一个带有时间文件名的压缩包,并上传到远程主机的一个例子。
Windows
:: cmd 脚本
...
ldd 的一个安全问题
我们知道“ldd”这个命令主要是被程序员或是管理员用来查看可执行文件所依赖的动态链接库的。是的,这就是这个命令的用处。可是,这个命令比你想像的要危险得多,也许很多黑客通过ldd的安全问题来攻击你的服务器。其实,ldd的安全问题存在很长的时间了,但居然没有被官方文档所记录来下,这听上去更加难以理解了。怎么?是不是听起来有点不可思议?下面,让我为你细细道来。
首先,我们先来了解一下,我们怎么来使用ldd的,请你看一下下面的几个命令:
(1) $ ldd /bin/grep
linux-gate.so.1 => (0xffffe000)
libc.so.6 => /lib/libc.so.6 (0xb7eca000)
/lib/ld-linux.so.2 (0xb801e000)
(2) $ LD_TRACE_LOADED_OBJECTS=1 /bin/grep
linux-gate.so.1 => (0xffffe000)
libc.so.6 => /lib/libc.so.6 ...
Windows 7 的新粉丝 Linus Torvalds
正当Windows 7 开始热卖的时候,正当广大北美用户抱怨Windows 7的销售价格,在东方要比西方便宜很多的时候。我们著名的Linus Torvalds来到了日本东京的一个软件商店里“庆祝Windows 7的Release”,难道他是去那里买一份便宜的Windows 7?
Linus Torvalds, 图片来自一个未经确认的 Yodobashi 商店, Tokyo, Japan. 来源: Jim Zemlin/The Linux Foundation (点击看大图)
这个图片目前还没有新闻报道,不过已有很多来源可以参考了……
Linus在日本参加一个Japan Linux Symposium的座谈会,在一个Picaca的链接上说,Microsoft选择了和Japan Linux Symposium同一天,在座谈会的间隙,Linus和其同事想做点有趣的事情,于是他们来到了Windows 7的小商店里,当然,售货员同志并不知道这人是谁,而Linus一进店里马上就做了一个下蹲坚大拇指的手势,而他的同事很识相地马上就照了一张照片。呵呵,当然,他们什么也没有买。
而在一个 ...
Ajax开发利器UIzard
正如UIzard这个名字所暗示的,这是一个User Interface 的Wizard,从字面上理解,这是一个做界面的向导。这有什么奇怪的,Dreamwave之流已经是相当的成熟了,还能好得过它?是的,这个开源的项目,也许并没有那些商业软件那么成熟,不过,我想告诉你的是,这个开源软件绝对是值得我们重点关注的一个软件。
你可以理解为这是一个Web开发的IDE,不过其集成了Ajax方面的东西。这并不仅仅简单的是那种“所见即所得”的编辑器。而且,它也不信仅可以让那些非程序员非常简单地创建一个从前端到后端的Web应用,而且,他还可以让你连接数据库,创建非常复杂的布局和时间线,甚至于一些套件(白板,在线的类Word,Excel,PPT等功能),所有这些,你只需要简单的点几下按钮就可以了。真是相当的强大。(下面是个抓图)
看上去很不错吧,上面的的屏幕抓图展示了,你可以非常简单地嵌入一些Google的API。而且,你还可以设置RSS相关的功能,是的,源代码是很复杂的,但是有了这个工具,你所需要的就是用鼠标点来点去。
最NB的是,你不需要在你的硬盘上安装这个工具,你完全是一个基于Web的在线ID ...
Javascript的两本书
Definition Guide 和 The Good Part, 犀牛和蝴蝶,一厚一薄,事情不言而喻。
[推荐]基于Mac的Port工具Fink
看到标题,读者朋友们肯定第一时间想到的MacPort 。
恩,那是一款非常棒的工具。 不过我更愿意推荐各位使用另外一款工具 Fink(http://www.finkproject.org/).
Fink 项目希望把 Unix 上各种开放源码软件带到 Darwin 和 Mac OS X 平台上。 我们通过修改 Unix 软件使得它可以在 Mac OS X 上编译和运行(“移植”),并提供一个方便的分发系统使得每个人都可以下载和使用它。 Fink 使用 Debian 中的象 dpkg 和 apt-get 等工具来提供强大的二进制软件包管理。 你可以随意选择是下载预编译好的二进制安装包或从源代码自己构建一切。
关于 Fink的安装 ,大部分用户可参见http://www.finkproject.org/download/index.php?phpLang=zh。
不过后面我主要想介绍我的安装方式,因为我的Mac 版本是10.6 64bit.所以还是有些差别。也许上述普通方法有效,但是我并未尝试。
安装步骤如下(感谢 http://sage.ucsc. ...
Bug 和 Icon 搜索引擎
以前给大家推荐过一个《PDF电子书搜索引擎》,现在再来推荐两个:
一个是开源项目的bug搜索引擎(当你想要选用某个开源软件的时候,或是你发现有一些异常的时候,你可以先去看看是否有一些相关的BUG)
http://bugspy.net/
还有一个是图标的搜索引擎(那些ICON还是比较精美的,可以用来做UI的开发)
http://www.iconfinder.net/
(全文完)
一张关于操作系统的图
一图胜千言
bash 函数级重定向
相信每一个人对于操作系统的重定向不会陌生了。就是>, >>, <, <<,关于重定向的基本知识我就不说了。这里主要讨论bash的重定向中的一个鲜为人知的东西,那就是bash脚本的函数也可以定义相关的重定向操作。这可不是命令级的重定向,这是函数级的重点向。这并不是一个新的东西,我只是想告诉大家一个已经存在了多年但却可能不被人常用的功能。
关于bash的这个函数级的重定向的语法其实很简单,你只需要在函数结尾时加上一些重定向的定义或指示符就可以了。下面是一个示例:
function mytest()
{
...
} < mytest.in > mytest.out 2> mytest.err
现在,只要是test被调用,那么,这个函数就会从mytest.in读入数据,并把输出重定向到mytest.out文件中,然后标准错误则输出到mytest.err文件中。是不是很简单?
因为函数级的重定向仅当在被函数调用的时候才会起作用,而且其也是脚本的一部分,所 ...
程序员小抄大全
你是否会经常忘记一些CSS中的函数名或是一些属性名,那个时候,你一定觉得,如果手边有一个“小抄”(Cheat Sheet)就好了。当然,这个“小抄”不是给你作弊用的,这个“小纸条”就是可以让你马上知道那个你最想知道的东西。这个“小抄”上也不需要有所有的东西,就需要那些经常用的就行了。现在,网上有很多这样的“小抄”,它们可能是PDF格式的,可能是PNG格式的,你可以很方便地把其打印出来(可以打印得很小),然后贴在你的电脑旁,一但需要,瞟一眼就可以了,这对于我们的工作是相当方便的。
之前,酷壳也有两篇关于速查卡的文章《Web设计的速查卡》和《Vim命令速查卡》,不过都不如本贴多。
下面是N多的各种和样的“小抄”,其中包括了Ajax, C++, Java, Python, PHP, Perl, ASP, Unix, Ruby, Google, HTML, CSS, XML ……..,让我们姑且叫做“程序员小抄大全”吧。当然,他们都是英文版的,可能某些链接你可能需要翻墙软件才能访问。我这里就不教你怎么翻墙了,这样的贴子网上多的是。
Actionscript
Quick referenc ...
Google Maps API用法教程
在过去的一年中,在线地图的发展是相当巨大,我们可以看到在线地图的极有价值的信息和其能力。这其中,最有名气的自然是Google Maps。. Google Maps由一个相当强大的开发引擎并也有一个很大的社区提示支持。
Google 允许各种web masters 通过Google Maps API来增加或自定义他们站点特定的地图,你可能从这里取得Google API key 。一个地图 API key只对一个“目录”或域有效。key绑定了你的域名,你要在网站上放地图,需要有对应的key,否则拒绝读取地图数据,在本地测试可以不用key。当然,你可以申请多个API key。
目录
创建一个简单的地图
地图标记
活动标记
加入多个标记并分组
过滤显示标记
创建一个简单的地图
在你的站点上引入Google Maps 是一件很简单的事情,你只需要加入:
引入Google的JavaScript 文件
设置JavaScript 一些参数
一个你需要显示地图的HTML layer
Google的Javascript文件引入 ...
使用Flex Bison 和LLVM编写自己的编译器
使用Flex Bison 和 LLVM编写你自己的编译器
原文出处:http://gnuu.org/2009/09/18/writing-your-own-toy-compiler
1、介绍
我总是对编译器和语言非常感兴趣,但是兴趣并不会让你走的更远。大量的编译器的设计概念可以搞的任何一个程序员迷失在这些概念之中。不用说,我也曾今尝试过,但是并没有取得太大的成功,我以前的尝试都停留在语义分析阶段。本文的灵感主要来源于我最近一次的尝试,并且在这一次中我取得一点成就。
幸运的是,最近的几年,我参加了一些项目,这些项目给了我在建立编译器上很多有用的经验和观点。另外一件事是,我非常幸运得到LLVM的帮助。对于这个工具,我不知道改怎么去形容它,但是他给我的这个编译器的确带来非常大的帮助。
1.1、你为什么要阅读本文
你也许想看看我正在做的事情,但是更有可能的是,你也是和我一样对编译器和语言非常感兴趣,并且也可能遇到了一些在探索的过程中遇到了一些难题,你可能正打算解决这些难题,但是却没有发现好的资源。本文的目标就是提供这些资源,并以一种手把手的方式教你从头到尾的去创建一个具有基本功能的语言编 ...
用脚本实现哄小孩睡觉
当然,不并需要一个天才式的人才能做到这个事,其实这个事情很简单。让我来一点一点向你解释。下面是一些准备工作。
首先,你得找一台PC机,得配上光驱,光驱可以破一点。
然后,你得给这台PC机上装上Linux,不需要太多的东西,最基本的就行了。
然后,你得写下下面的代码。
while [1 = 1]
do
#弹出光驱
eject
sleep 1
#收回光驱
eject -t
sleep 1
done
在运行代码之前,请确保你们小孩的摇篮和PC机的光驱连接在一起。当然,你也可以在脚本中播放一曲催眠曲。注意,脚本其中的sleep 1是为了配合上摇篮的节奏,这样需要你在实际过程中调试一下。
这样的成本是不是有点高?居然还要达上一台电脑,呵呵。所以,我就不建议你用Windows来实现了,那样的成本可能会更高。
到处都是Unix的胎记
一说起Unix编程,不必多说,最著名的系统调用就是fork,pipe,exec,kill或是socket了(fork(2), execve(2), pipe(2), socketpair(2), select(2), kill(2), sigaction(2))这些系统调用都像是Unix编程的胎记或签名一样,表明着它来自于Unix。
下面这篇文章,将向大家展示Unix下最经典的socket的编程例子——使用fork + socket来创建一个TCP/IP的服务程序。这个编程模式很简单,首先是创建Socket,然后把其绑定在某个IP和Port上上侦听连接,接下来的一般做法是使用一个fork创建一个client服务进程再加上一个死循环用于处理和client的交互。这个模式是Unix下最经典的Socket编程例子。
下面,让我们看看用C,Ruby,Python,Perl,PHP和Haskell来实现这一例子,你会发现这些例子中的Unix的胎记。如果你想知道这些例子中的技术细节,那么,向你推荐两本经典书——《Unix高级环境编程》和《Unix网络编程》。
目录
...
图片搜索引擎优化Checklist
今天,专业的搜索引擎优化SEO(Search Engine Optimizers)会让你的网页或文章能更多得被搜索并访问到。而图片的搜索优化则是这项技术中非常特别的一部分,它可以让你的图片更容易地被人搜索到,比如:艺术图片,服务设计,或是家具等等。相信大家都知道图片远比文字更有吸引力,这是因为我们都知道——“一图胜千言”。
在搜索引擎的世界里,有一组有限的因素决定着图片的位置。下面是一个Checklist可以让你把你的图片搜索优化做得更好。
首先,你的图片应该是你的网页的一部分,他们使用了相同的样式。例如:页面的Title,head和Body文本必需和图片一样告诉访问者相同的故事。
在你的服务器上创建一个Images的目录,把你的图片都保存在那里。并且确认搜索引擎可以index这个目录。
在图片的文件名上使用描述性关键字,使用连字符号分隔关键字,千万不要使用下划线。
为图片的HTML中<image>标识中的alt属性提供一个简短的描述,你可以认为这是图片的tag,千万不要在alt属性中放入太多的关键字,就算是这些关键字都是相关的。
可以考虑使用一个短的文 ...