2008-12-29

Vim的一般模式

撤销:
u
上下左右:
hjkl
去到文件尾:
Shift + g
去到行尾:
$
去到行首:
0
整页翻页(f就是forword b就是backward)
ctrl-f ctrl-b
翻半页(d=down u=up)
ctrl-d ctlr-u
滚一行
ctrl-e ctrl-y

当前光标之前插入:
i
当前光标之后插入:
a
块缩进(比如:光标下的12行缩进一次)
12>1
退出命令行模式:
ESC

2008-12-25

Vim的插件

准备工作:
cd ~
mkdir .vim
cd .vim
mkdir doc
mkdir plugin
推荐插件一(taglist):
先在ubuntu的新立得包管理器中搜索ctags,把它装上。它是用来“build tag file indexes of source code definitions”,然后,按照这里提示的进行操作
:TlistOpen 打开标签窗口
:TlistClose 关闭标签窗口
:TlistToggle 切换打开和关闭状态
这里有更详细的文档
推荐插件二(matrix):
这里下载,然后放到plugin目录下,执行 :Matrix 就可以看到黑客帝国主题的屏保了。酷!
作者似乎是华裔。
推荐插件四(Calendar)
http://www.vim.org/scripts/script.php?script_id=52
:Calendar

推荐插件五(Template)

:NewTemplate php

Vim的命令行模式下常用操作

显示行数:
:set nu
去到某行:
:某
搜索:
:/^hello$/
搜索时,不区分大小写
:set ic
也就是
:set ignorecase
强大的g
对指定内容执行编辑器命令,比如:删除所有空白行用 :g/^$/d。这样,结合正则表达式,就很方便对文档进行许多自动化的操作。这里有更详细的描述
:g/^$/d
加密
:X
替换功能
去掉所有的行尾空格:
:%s/\s\+$//g
去掉所有行首空格:
:%s/^\s\+//g
去掉所有的空白行:
:%s/\(\s*\n\)\+/\r/
去掉所有的“//”注释:
:%s!\s*//.*!!
去掉所有的“/* */”注释:
:%s!\s*/\*\_.\{-}\*/\s*! !g
将多个空格替换为单个tab键
:%s/\s\+/\t/g
对多行进行单行注释:
: 30,45 s/^/#/
取消对多行进行单行注释:
: 30,45 s/^#//
隐藏菜单栏和工具栏:
:set go=
设置一个养眼的配色方案:
:colorscheme torte

Vim的配置

sudo vim /etc/vim/vimrc

"注释用双引号

"显示行号
set nu

"将tab键自动转换成4个空格
set tabstop=4
set shiftwidth=4
set expandtab

"不生成备份文件
set nobackup

"设置语法高亮
set syn="python"

"不产生临时文件
setlocal noswapfile

"设置自己喜欢的颜色
color torte


p.s.
编码问题
可以在vimrc中默认设为GBK,读取UTF8编码的文件时临时再该回来,最好是习惯用UTF8,这样可以免去很多麻烦。
set encoding=cp936
set termencoding=cp936
set fileencoding=cp936

这里有个讨论。

取消自动缩进:
rename * *.bak
都改掉名字就ok了。
目录:C:\Program Files\Vim\vim72\indent
这里有篇介绍。

2008-07-24

体验Knol

一早听说Google的Knol正式上线了,赶快进去体验一下。

在首页看了看推荐的词条,应该算是范例吧,不像维基的百科全书式,Knol像是百事通,比如有一条 “Featured Knols” 就叫 “How to Backpack”。我想,我可以写一篇叫“怎样灌水”。:) 从这一点看,有点明白“A unit of knowledge”的概念了。

Knol是基于作者的,比如:维基里页面的路径 http://en.wikipedia.org/wiki/knol 指向了“knol ”这个词条,而Knol里则可能是 http://knol.google.com/k/老徐/做饭/ 指向了老徐写的“做饭”这篇文章。那么,老徐就叫google在knol的签约专栏作家。作者可以发布广告来获取收益,这样一来Knol的流程就是:作者写作/评论 -> 向读者展示 -> Adsense广告展示 -> 作者和Google获得收益。

作者具有词条的所有权,可以拒绝他人的修改,这一点比较特别,不知道会不会引起抢注的行为。比如,我就创建一个“俯卧撑”的文章,让你们谁都不能改。:D 不过,由于Knol目前只能“搜索词条”不能"进入词条",不像维基百科有“Go”和“Search”两个按钮。你占据了“PHP”这个词条,我可以写个“关于PHP”的文章,在读者搜索“PHP”时依然会看到我的文章。

随便写点东西发布了一下,然后在IE里用未登录身份搜索词条,结果却找不到。但是在FF里用发布者的身份却可以找到该词条。似乎Google在说:“只有我们审核通过的东西才可以发布,否则只能自己看。”

总的来说,Knol更像是百度知道或新浪博客,不过推动作者写作的不是等级或排名的提升,而是广告收益的刺激。再加上作者间的协作、作者和读者的互动、以及系统内部的激励机制,共同作用来促使优秀内容的产生。这些内容经由Google的推荐,将更容易展现在用户的浏览器窗口中。

2008-04-08

cURL is Power

取回一个页面:
D:\curl>curl http://www.baidu.com
默认为http,所以scheme可以省略
D:\curl>curl www.baidu.com

取回一个页面并把它保存到文件里:
D:\curl>curl www.baidu.com > baidu.htm

查看服务器返回的头信息:
D:\curl>curl -I www.baidu.com
HTTP/1.1 200 OK
Date: Tue, 08 Apr 2008 03:14:19 GMT
Server: BWS/1.0
Content-Length: 3063
Content-Type: text/html
Cache-Control: private
Expires: Tue, 08 Apr 2008 03:14:19 GMT
Set-Cookie: BAIDUID=20CBF716BC8119675579A25769CAF417:FG=1; expires=Tue,
08-Apr-38 03:14:19 GMT; path=/; domain=.baidu.com
P3P: CP=" OTI DSP COR IVA OUR IND COM "

服务器的头信息可以获得很多数据,比如说这里我们可以得到:百度的服务器叫:BWS 估计是Baidu Web Server的意思吧。今天是08 Apr 2008,百度设置cookie在08-Apr-38过期,也就是说,如果不关闭浏览器,百度会记住你30年。

访问https
curl https://www.google.com

使用http代理
curl --proxy example.con:1111 www.baidu.com
curl -x example.con:1111 www.baidu.com

使用socket代理
D:\curl>curl --socks5 example.com:1111 www.baidu.com

把自己伪装成IE
D:\curl>curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" www.baidu.com

伪装成Baiduspider
D:\curl>curl -A ”Baiduspider+(+http://www.baidu.com/search/spider.htm)“ www.baidu.com

POST数据
curl -d "username=zhangshun&password=wabjtam" www.baidu.com

设置Cookie
curl -b "__utma=123123;__utde=456456" www.google.cn