我和Vi的相识,相知,到相爱

@smth

    很久以前就接触vi了,差不多是97年的时候,那个时候我还是刚刚接触计算机,在学校的一个Linux机器上用了一个编辑器,当时不知道是叫“vi”,给我的感觉就是极其难用,简单的编辑一个文件也没有成功,留下了一个不好的印象。后来也一直没有怎么用过,到了98年的时候自己有了电脑,喜欢玩 Linux,vi是linux中的御用编辑器,当时知道了它的名字叫“vi”了,想起一年前的经历,对vi有点胆怯,上网搜寻了有关vi的简单操作办法(当时还不会看vi的帮助),知道了简单的编辑操作(还知道用方向键去移动光标),后来也没有深入的去学习如何使用,到了2001年的时候,接触了 Python,很多人推荐使用vim,也就安装了,看了一些帮助,直到了基本的编辑指令,从此,手离不开键盘了,即使在记事本里面也忍不住按j,k,l,晕,后来得到了一本书O'Reilly的《学习Vi编辑器》,从此一发不可收拾,再也离不开vi了。
... Read more!

生活与选择

    一个猴子跑到玉米园,它发誓要摘一个最大的玉米。于是它摘了一个又扔了一个,它总能发现更大的,待它走到园的尽头时,才发现什么也没有摘到。
    我们的人生中是否也存在很多这样的场景呢?事业,爱情,在存在选择的关头,我们应该如何来处理呢?人类比猴子聪明,可以在事情没有到结束的时候就能够拥有很多的理论基础,就能够看到可能的结局。但是已经被你扔掉的很难再找到。我们不需要最大的最好的,我们要抓住真正属于你的,适合你的。追求总是无止境的。
... Read more!

正确设置 Vim 的字符编码选项 (gVim/Vim on Win32 中文环境)

(本文转于此处:http://www.rainux.org/blog/index.php/2005/10/20/106)

正确设置 Vim 的字符编码选项 (gVim/Vim on Win32 中文环境)

和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括 UCS-2、UTF-8 等流行的 Unicode 编码方式。然而不幸的是,和很多来自 Linux 世界的软件一样,这需要你自己动手设置。

Vim 有四个跟字符编码方式有关的选项,encoding、fileencoding、fileencodings、termencoding (这些选项可能的取值请参考 Vim 在线帮助 :help encoding-names),它们的意义如下:

  * encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有在 .vimrc 中改变它的值才有意义。
  * fileencoding: Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此)。
  * fileencodings: Vim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因此最好将 Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面。
  * termencoding: Vim 所工作的终端 (或者 Windows 的 Console 窗口) 的字符编码方式。这个选项在 Windows 下对我们常用的 GUI 模式的 gVim 无效,而对 Console 模式的 Vim 而言就是 Windows 控制台的代码页,并且通常我们不需要改变它。

好了,解释完了这一堆容易让新手犯糊涂的参数,我们来看看 Vim 的多字符编码方式支持是如何工作的。

  1. Vim 启动,根据 .vimrc 中设置的 encoding 的值来设置 buffer、菜单文本、消息文的字符编码方式。
  2. 读取需要编辑的文件,根据 fileencodings 中列出的字符编码方式逐一探测该文件编码方式。并设置 fileencoding 为探测到的,看起来是正确的 (注1) 字符编码方式。
  3. 对比 fileencoding 和 encoding 的值,若不同则调用 iconv 将文件内容转换为 encoding 所描述的字符编码方式,并且把转换后的内容放到为此文件开辟的 buffer 里,此时我们就可以开始编辑这个文件了。注意,完成这一步动作需要调用外部的 iconv.dll (注2),你需要保证这个文件存在于 $VIMRUNTIME 或者其他列在 PATH 环境变量中的目录里。
  4. 编辑完成后保存文件时,再次对比 fileencoding 和 encoding 的值。若不同,再次调用 iconv 将即将保存的 buffer 中的文本转换为 fileencoding 所描述的字符编码方式,并保存到指定的文件中。同样,这需要调用 iconv.dll

  由于 Unicode 能够包含几乎所有的语言的字符,而且 Unicode 的 UTF-8 编码方式又是非常具有性价比的编码方式 (空间消耗比 UCS-2 小),因此建议 encoding 的值设置为 utf-8。这么做的另一个理由是 encoding 设置为 utf-8 时,Vim 自动探测文件的编码方式会更准确 (或许这个理由才是主要的 ;)。我们在中文 Windows 里编辑的文件,为了兼顾与其他软件的兼容性,文件编码还是设置为 GB2312/GBK 比较合适,因此 fileencoding 建议设置为 chinese (chinese 是个别名,在 Unix 里表示 gb2312,在 Windows 里表示 cp936,也就是 GBK 的代码页)。

以下是我的 .vimrc(见附件) 中关于字符编码方式设置的内容,这个设置比较有弹性,可以根据系统中的环境变量 $LANG (当然,Windows 中的写法是 %LANG%) 的值来自动设置合适的字符编码方式。此时,推荐设置 %LANG% = zh_CN.UTF-8,可以通过后面的 Windows 注册表脚本文件来方便的做到。

注1: 事实上,Vim 的探测准确度并不高,尤其是在 encoding 没有设置为 utf-8 时。因此强烈建议将 encoding 设置为 utf-8,虽然如果你想 Vim 显示中文菜单和提示消息的话这样会带来另一个小问题。

注2: 在 GNU 的 FTP 上可以下载到 iconv 的 Win32 版(http://mirrors.kernel.org/gnu/libiconv/libiconv-1.9.1.bin.woe32.zip),不推荐去 GnuWin32(http://gnuwin32.sourceforge.net/) 下载 libiconv,因为那个版本旧一些,并且需要自己改名 dll 文件。

注3: 查看帮助 :h iconv-dynamic
On MS-Windows Vim can be compiled with the |+iconv/dyn| feature. This means
Vim will search for the "iconv.dll" and "libiconv.dll" libraries. When
neither of them can be found Vim will still work but some conversions won't be
possible.
... Read more!

在状态栏上显示当前文件的format

在vimrc中添加下面的代码

function FunFileEncoding()
return &ff
endfunction

set rulerformat=%40(%{FunFileEncoding()}\ [%m%t]\ \ %l,%c%V\ \ %p%%%)
我自己使用的版本
set statusline=%<[%n][%f]%m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).':'.&ff.']'}%y\ [POS=%04l,%04v][%p%%]

... Read more!

定制vim的标题栏,使其显示文件编码

(感谢水木的 runsnake (狂奔之蛇))
在vimrc中加入下面一行:
auto BufEnter * let &titlestring = hostname() . ":" . expand("%:p") . " ( " . &fenc . " )"

就会显示如:Zhang:/home/john/.vimrc (utf-8)

后记:
虽然能够显示了,但是对一些文件编码的判断似乎有问题,应该是vim底层对文件编码判断的问题了。
... Read more!

vim常用命令两则

1,格式化代码
gg=G

2,将代码高亮和格式使用html输出
:TOhtml
... Read more!

VIM中删除空行命令

只有一个回车 :g/^$/d
行中只有一些空格 :g/^\s*$/d
... Read more!

VIM7.0中CursorLine的支持

修改vimrc

~/.vimrc里加了:

if version >= 700
    set cursorline
    hi CursorLine cterm=bold ctermbg=DarkBlue
endif
效果还不错。
... Read more!

Firefox中,切换Tab的快捷键

Ctrl+Tab 新建一个Tab页
Ctrl+1….9 切换到第N个Tab页
Ctrl+pageup/pagedown
... Read more!

健康贴士:英国专家教你奇妙15招 远离感冒困扰

健康贴士:英国专家教你奇妙15招 远离感冒困扰

英国医学专家日前就“抗流感”提出15项建议,可以帮人们增强免疫力,摆脱感冒困扰。
流感是“万病之源”,传染性极强,特别是在秋冬时节,往往一人感冒,两人遭殃,三人卧床不起。

据每日邮报报道,英国医学专家约翰-奥克斯福德(John Oxford)称,我们生活的环境中每时每刻都有病菌。要抵御病菌的困扰,就必须增强我们自身的免疫系统。只要你按以下的方法去做,疾病就会在不知不觉中远离你。

1、多吃瘦肉
瘦肉富含蛋白质,可以增强免疫力。

2、不要让鼻子“着凉”
注意鼻子保暖,会有效防止感冒。

3、不要贪睡
研究表明:过度睡眠会降低免疫力。

4、少服维生素
研究表明:长期服用维生素对身体有害。

5、适量摄入“奥米伽3鱼油”
奥米伽3鱼油会增强肌体抗感染能力。

6、打打“太极”
“太极”是古老的中国健身术,可增强肌力,舒活筋骨。

7、不时“增压”
适当的压力会使免疫力增强。

8、不要节食
很多的节食方法都对身体无益。

9、常做爱
规律性的“做爱”可增强对抗病菌的能力。

10、多喝酸乳
常喝酸乳,好处多多。

11、多做运动

12、常喝茶

13、多多享受阳光
晒晒太阳,病毒也会远离你。

14、勤洗手
勤洗手会极大的减少病毒感染率。

15、多食人参
人参会让机体免疫系统“活力不断”。
... Read more!

在每篇Post下面添加Del.icio.us以及Diglog It链接

首先登陆你的Blogger Beta帐户,然后点击“Template”,接着点击“Edit HTML",将下面红色部分的内容添加到相应的span中去:

<span class='post-labels'>
<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'>
<data:label.name/>
</a><b:if cond='data:label.isLast != "true"'>,</b:if>
</b:loop>
</b:if>

<a expr:href='"http://diglog.com/submit?url=" +
data:post.url + "&title=" + data:post.title'
target='_blank'>+Diglog It!</a>
<a expr:href='"http://del.icio.us/post?url=" +
data:post.url + "&title=" + data:post.title'
target='_blank'>Del.icio.us</a>

</span>
然后直接保存一下你就可以看到在Labels的最后出现你增加的两个标签了。
... Read more!

如何隐藏Blogger Beta的Navbar

如果你正在使用 Blogger Beta 架构博客,并同时自由托管在 Blogspot 空间下的话,那在你博客的上方就一定会出现这个叫做 Navbar 的导航条了。它其实是一个功能强大的导航工具,并有4种颜色可供选择,具体操作可以参见 Blogger 的帮助文档

但也许有人会觉得它有些碍眼,与自己的博客风格不是很搭配,等等。那这时应该怎样把它去掉呢? Blogger 并没有提供给我们直接的操作途径,但我们依然可以通过改变模板中的 CSS 参数来达到这个效果。

首先登陆你的Blogger Beta帐户,然后点击“Template”,接着点击“Edit HTML",先在代码中找到这一行

/* global
----------------------------------------------- */

再将如下代码添加至它的后面
#navbar #Navbar1 iframe{
height:0px;
display:none;
visibility:hidden;
}

事实上你也可以将这段 Hack Code 添加到 CSS 表单中的任何位置,但应该以保持表单的规整并方便查找为原则。

现在保存更改,并从新查看你的博客,这时 Navbar 就会消失了。
... Read more!

为何Blogger对段落的前导空格也不支持

之前我自己的Blog是用的Wordpress,架设在我自己的服务器上。Wordpress是目前非常流行的一款Blog系统,但是用起来问题不少,第一点让人觉得不爽的就是会自动将你每段段首的空格给截掉,浏览页面的时候相当的不舒服。以为这个只是Wordpress的问题,现在将Blog移到Blogger上,没想到也有同样的问题,难道支持段落头的空格就这么复杂么?实在是搞不明白。
... Read more!

Visual C++ 2005 Express在Vista上安装竟然有问题

手上有一张Visual C++ 2005 Express的安装光盘,是随着杂志赠送的,在XP机器上安装没有任何问题。前天安装了Vista RC1,漂亮的界面完了几天,想在上面看看其它应用程序运行的如何,想到了Visual C++ 2005 Express,就开始动手安装,安装Visual C++ 2005 Express包括5部分,安装前三部分时比较顺利,在安装MSDN For Visual C++ 2005 Express的时候,跳程序异常的对话框,没办法只能取消,紧接着的下一步,应该是SQL Server Express,也安装失败。Visual C++ 2005 Express是最新的开发工具了,难道在微软最新的操作系统下Vista不能运行?或者是我机器的问题?十分的疑惑。还有就是,搞不清楚Visual C++ 2005 Express安装的时候为什么要SQL Server Express,难道是运行Visual C++ 2005 Express必要的前提?
... Read more!

IE7难道对Javascript的兼容性降低了?

今天增加了Label的Cloud小部件,根据网上的设置步骤一步步来进行,但是发现在IE7中竟然不能显示,而且显示Javascript错误,但是在Firefox中竟然能够很好的显示,在Javascript控制台中没有看到任何错误,非常奇怪,难道IE7的Javascript兼容性降低了?还是我的cloud的代码不对?
... Read more!

使用Ubuntu安装光盘恢复grub

实在抵挡不住Vista的诱惑,于是安装了Vista,将grub给覆盖掉了。由于好长时间没有做过grub的恢复,这次恢复还搞了好长时间。现在还是一步步记下自己恢复的过程吧。

1,使用Ubuntu安装光盘(注意这里不是LiveCD)启动,使用rescue 安装模式进入。
2,系统会要求你选择语言以及键盘等等一些设置,此时选择你习惯的设置,这些设置将不会带到你的系统中,仅仅是作为恢复操作时候使用。系统会进行到选择挂接一个分区进入shell的界面时,选择你的root分区,然后选择在你的root分区上执行shell
3,如果你的boot分区是单独的,那么首先挂接上boot分区。执行
grub-install --root-directory=/ /dev/hda(我只有一块硬盘,所以是hda)
4,重新启动电脑
... Read more!

一篇小小说,笑中带泪,入木三分

黄艳梅

今天是周末,我们高中同学要在天安酒店搞一次同学聚会。自从毕业后,好多同学都混得有模有样,我却默默无闻,在一家工厂当制图员,每月和丈夫一起靠着不多的收入共同撑着这个家。我本不打算去,可禁不起同学们的一片盛情,只好答应。

丈夫正在帮儿子复习功课,儿子就要上初中了,为了上一所好中学,这段时间丈夫没少操心,东奔西走,至今还没着落呢。看了儿子一眼,我走出了家门。

天安酒店是高级酒店,我走进包房的时候,同学们都已到齐。还没坐稳,一张张名片就飞了过来,一看一个个不是总经理就是带长的,就连以前成绩总是甩尾的阿辉 也当上了派出所所长。望着服务小姐端上眼花缭乱的菜肴,我真感叹自己孤陋寡闻,光这一桌就足以抵我三个月的收入了。阿辉像宴席的主人一样不停地招呼大家 吃,不时地为这个斟酒、为那个夹菜,嘴里还说:“只管吃,算我的。”大伙也没任何拘束,一轮接一轮地交杯把盏、海阔天空地闲聊。

酒足饭饱之后,天色已不早,此次聚会该结束了。可究竟谁埋单,我看大伙好像都没有要慷慨解囊的意思。这时候阿辉掏出手机,按了一串号码,然后说:“小李, 今晚所里扫黄抓到人没有?哦!刚抓到———好!好!随便送一个到天安酒店来给我埋单。”说完,他得意地把手机放进了口袋,一旁的同学跟着哄笑起来。

十五分钟不到,一个中年人就进来了,他看了账单,不禁皱了皱眉头,看来他身上的现钞也不足。他随即也拿出手机,拨了一串号码,说:“小张呀!我是马主任 呀!你儿子要读我们学校的事,我今天就给你拍板定下来了……不过我今晚请朋友吃饭,你过来埋单好吗?在天安酒店203包厢……”

二十分钟后,有人敲了敲包厢的门,门被打开了。当我见到戴着副瓶底般厚的眼镜的丈夫站在门口时,我晕了过去。
... Read more!

最近对我MSN ID的非议颇多。

MSN主ID:--饭前饭后便前便后请不要看我的ID
MSN副ID:@Office |生活就是一陀屎,你要学会挑里面的蛆吃~|生活就象强奸,你反抗不了就要学会享受;工作就象轮奸,你不行别人就会上。

放了有3天,每天一上线,就有好友断断续续的发来msg,声讨我的ID,有很多几乎很少说话的好友也浮出水面,大多数的评价如下:
好恶心的ID.....
狂恶....
爆恶心....
你的ID太.....弓....虽....
你不改ID,我发誓不跟你说话!!!.....
......

我的ID单纯从字面上看,确实很恶心,但是,也是生活的一个写照,只是我说的恶心罢了,我的ID是摘自某个论坛的精华,感叹这位高人概括的好,有同感,才放到我的ID上。生活的坚强也包括容忍恶心。
... Read more!

“得一痣”的搬迁

最近两天我自己的服务器经历了升级,系统测试。所以,不得不停机了好几次,也导致了“得一痣”空间连续几天不能够正常地运行。考虑个人的服务器放置Blog的稳定性了。我喜欢的是稳定和简洁,这一点Blogger.com做的不错,相信Google。没办法,我的生活已经摆脱不了Goolge了。最大的希望就是Blogspot.com在国内能够正常地访问。
... Read more!