星期六, 十月 23, 2010

VIM学习笔记 撤销 (Undo)

单线撤销

在Normal mode下使用u命令,或者在Command mode下使用:undo命令,可以撤销上一次的操作。

使用U命令,可以撤销所有针对当前行最近所做的修改。

Vim可以进行多次撤销,这个次数是由选项undolevels来指定的。例如我们可以使用以下命令,设置撤消次数为5000:

:set undolevels=5000

如果希望重做被撤销的操作,可以使用:redoCTRL-R命令。

分支撤销

以下述操作为例:新建文件并输入“大象”,然后在新的一行中输入“小牛”,返回Normal mode并按下u命令。这时输入“小牛”的操作被撤消,文件将只包含“大象”。接着输入“猩猩”,然后返回Normal mode并按下u命令,此时将撤消输入“猩猩”的操作,文件仍然只包含“大象”。所以你的“小牛”就再也找不回来了。而撤消分支(Undo branches)就可以解决这个问题。使用g-可以使文件重新包含入“大象”和“小牛”。此过程如下图所示:

Undo Branches

如果你先撤销了若干改变,然后又进行了一些其它的改变。此时,被撤销的改变就成为一个分支。我们可以使用:undolist命令查看修改的各个分支。

UndoBranch_list

  • "编号" 列是改变号。这个编号持续增加,用于标识特定可撤销的改变。
  • "改变" 列是根结点到此叶结点所需的改变数目。
  • "时间" 列是此改变发生的时间。

使用:undo命令并指定编号做为参数,则能够撤销到某个分支。

通过在不同的撤消分支间跳转,使用g-命令能够回到较早的文本状态;而g+命令则返回较新的文本状态。

我们还可以根据时间撤消操作:使用:earlier 10m命令退回到10分钟前的文本状态。也可以用:later 5s命令跳转到5秒以后的编辑状态。命令参数中的"s"代表秒,"m"代表分钟,"h"代表小时。

使用:help undo-tree:help usr_32.txt命令,可以查看撤消操作的帮助信息。

命令小结
u撤消
:undo
CTRL-R重做
:redo
:undolist查看撤消分支
g-返回较早的文本状态
g+返回较新的文本状态
:earlier退回到指定时间前的文本状态
:later退回到指定时间后的文本状态

Ver: 1.1<上一篇 | 目录 下一篇>

星期三, 十月 20, 2010

MEMORY & BOOK

Never memorize what you can look up in books.

---Albert Einstein

星期二, 十月 19, 2010

VIM学习笔记 缩进 (Indent)

手动缩进

在Normal Mode下,命令>>将对当前行增加缩进,而命令<<则将对当前行减少缩进。我们可以在命令前使用数字,来指定命令作用的范围。例如以下命令,将减少5行的缩进:

5<<

如果代码没有正确排版,那么我们可以使用==命令来缩进当前行;也可以进入可视化模式并选择多行,然后使用=命令缩进选中的行。

Indent_SampleCode

通过与文本对象组合,使用以下命令可以缩进{}括号内的代码。

=a{

如果需要缩进整个文件内的代码,则可以使用以下命令:

gg=G

在Insert/Replace Mode下,Ctrl-Shift-t可以增加当前行的缩进,而Ctrl-Shift-d则可以减少当前行的缩进。使用0-Ctrl-Shift-d命令,将移除所有缩进。需要注意的是,当我们输入命令中的“0”时,Vim会认为我们要在文本中插入一个0,并在屏幕上显示输入的“0”;然后当我们执行命令0-Ctrl-Shift-d时,Vim就会意识到我们要做的是减少缩进,这时0会就会从屏幕上消失。

缩进宽度默认为8个空格。我们可以使用以下命令,来修改缩进宽度:

:set shiftwidth=4

通过以下设置,每次点击Tab键,将增加宽度为8列的Tab缩进。

:set tabstop=8

:set softtabstop=8

:set shiftwidth=8

:set noexpandtab

使用以下设置,每次点击Tab键,增加的缩进将被转化为4个空格。

:set tabstop=4

:set softtabstop=4

:set shiftwidth=4

:set expandtab

其中,expandtab选项,用来控制是否将Tab转换为空格。但是这个选项并不会改变已经存在的文本,如果需要应用此设置将所有Tab转换为空格,需要执行以下命令:

:retab!

自动缩进

在Vim中还可以进行自动缩进,主要有cindent、smartindent和autoindent三种模式。

autoindent 在这种缩进形式中,新增加的行和前一行使用相同的缩进形式。可以使用以下命令,启用autoindent缩进形式。也可以点击==键进行缩进。

:set autoindent

smartindent 在这种缩进模式中,每一行都和前一行有相同的缩进量,同时这种缩进形式能正确的识别出花括号,当遇到右花括号(}),则取消缩进形式。此外还增加了识别C语言关键字的功能。如果一行是以#开头的,那么这种格式将会被特殊对待而不采用缩进格式。可以使用以下命令,启用smartindent缩进结构:

:set smartindent

cindent Vim可以很好的识别出C和Java等结构化程序设计语言,并且能用C语言的缩进格式来处理程序的缩进结构。可以使用以下命令,启用cindent缩进结构:

:set cindent

命令小结
>>增加缩进
Ctrl-Shift-t
<<减少缩进
Ctrl-Shift-d
:set shiftwidth=n设置缩进宽度
:set cindent启用cindent缩进结构
:set autoindent启用autoindent缩进结构
:set smartindent启用smartindent缩进结构

Ver: 1.1<上一篇 | 目录 下一篇>

星期三, 十月 13, 2010

VIM学习笔记 寄存器 (Registers)

将寄存器与各种删除、复制、粘贴命令组合使用,能够大大提高编辑文本的效率。

指定寄存器

在复制或删除文本时,可以使用"register命令将文本放入指定的寄存器中。例如以下命令,将复制的文本放到寄存器a中,同时文本也会被放入未命名寄存器中。

"ayy

如果再使用相应的大写字母来指定寄存器,那么会将当前行内容追加到寄存器a中,这时该寄存器中就有了两行文本。

"Ayy

查看寄存器

使用registers name命令,可以查看特定寄存器中的内容:

register_A

如果想要查看所有寄存中的内容,可以使用以下命令:

:registers

Registers

寄存器类别

寄存器可以分为以下9类:

类别符号描述
未命名寄存器"上一次复制或删除的文本
数字寄存器0-9文本删除历史
短删除寄存器-删除少于一行的文本
命名寄存器a-z,A-Z存放文本
只读寄存器%当前文件的名字
#交替文件的名字
.上一次插入的文本
:上一次执行的命令
表达式寄存器返回表达式结果
选择和拖拽寄存器*系统剪切板
+系统剪切板(X11)
~拖拽的文本
黑洞寄存器_永久删除的文本
搜索模式寄存器/搜索模式

未命名寄存器(The Unnamed Register) 当使用y命令复制文本,或使用d、c、s、x命令删除文本时,文本将自动被放入""未命名寄存器。即使你在复制或删除文本时,已经指定了寄存器(例如使用"xdd命令),这些文本也将会被同时放入"x和""寄存器。

数字寄存器(The Numbered Registers) "0始终存放最近删除的文本。"1也包含上次删除的文本。区别在于:"0不断被删除的文本所覆盖;而如果删除文本时,指定了寄存器或者文本小于一行,那么"1将不会被更新。 数字寄存器1-9可以看作是删除历史, 你可以从中找到早先删除的文本。比如你使用了三次dd命令,那么这三行文本被分别存放在寄存器1,2,3中,可以通过命令"1P,"2P,"3P将这些文本再粘贴回来。

短删除寄存器(The Small Delete Register) 当删除少于一行的文本时,除非指定了某个寄存器,否则这些内容将会被放入"-短删除寄存器中。

命名寄存器(The Named Registers) 当文本被放入以小写字母命名的寄存器(例如"a)时,该寄存器原有的内容将被覆盖;而使用以大写字母命名的寄存器(例如"A)时,将会把文本追加到原有内容之后。

只读寄存器(The Read-Only Registers) 你只能从4个只读寄存器中粘贴内容,而不能放入文本。"%包含当前文件名;"#包含交替文件名;".包含最近插入的文本;":包含上次执行的命令行。

表达式寄存器(The Expression Register) 当我们输入"=,就会在Vim底部显示一个以“=”开始的提示行,可以在这里输入表达式并按回车键确认。随后使用命令p将表达式的结果粘贴到文本中。例如要在文本中插入38*56的值,首先进入命令模式,输入"=,在屏幕底部的提示行中输入“38*56”并按回车,然后输入命令p,这样就可以将计算结果插入文本中了。在表达式寄存器中,不仅可以使用通常的算术运算符,还可以使用Vim特定的函数和运算符。例如通过表达式寄存器来得到环境变量的值(例如"=$HOME)。如果没有输入任何表达式而直接按回车键,那么Vim将执行最近使用过的表达式。

选择和拖拽寄存器(The Selection and Drop Registers) 有3个寄存器用于保存选中的文本:"*用于访问系统剪切板。在Windows下,"*和"+相同;在Linux下,"+包含选中的文本,"*包含复制的文本。使用"+y命令,可以将当前选中的文文本复制到系统剪切板中。而"+p命令,则可以粘贴系统剪切板中的内容。通过剪切板寄存器,能够在不同的Vim编辑器或者是其他应用程序之间,进行文本交换。"~包含上次从其它应用程序拖拽到Gvim中的文本。

黑洞寄存器(The Black Hole Register) 任何放入"_中的文本都将不复存在。如果想要永久删除某些文本而不是将他放入1-9中的某个寄存中,就可以使用黑洞寄存器。例如:命令dd将删除一行文本并将其放入寄存器1中;而命令"_dd则将该行文本放入黑洞寄存器中,这些文本也就会永久消失了,而寄存器1中的文本会保持不变。

搜索模式寄存器(Search Pattern Register) 当你通过/命令进行搜索时,所使用的模式将自动被放入"/寄存器。

粘贴寄存器

命令:put会将寄存中的内容粘贴到指定的文本行后面。使用以下命令,可以将寄存器中的内容粘贴到第五行的后面:

:5put a

如果要将文本放在这一行的前面,可以用以下命令:

:5put! a

你也可以使用p命令,将x寄存中的文本粘贴到光标之后:

"xp

而P命令,则将x寄存中的文本粘贴到光标之前:

"xP

如果直接使用pP命令,而没有指明特定寄存器,那么将粘贴未命名寄存器中的内容。

使用以下命令,可以粘贴上次插入的文本,方便你录入重复的内容:

".P

如果要粘贴系统剪切板中的内容,在Insert mode下可以利用快捷键Shift+Ins,而在Normal mode下,可以使用以下命令:

"*p

Ver: 1.0<上一篇 | 目录 下一篇>

星期五, 十月 01, 2010

从数据到智慧 From Data To Wisdom

毫无疑问,我们已经生活在知识经济的环境当中。每时每刻,我们身边都充满了各种各样的数据。但只有将这些杂乱无章的数据,转换为信息和知识,才能帮助我们做出聪明的选择。可见知识是从数据到智慧划分为不同层次的,如下图所示。

从数据到智慧的层次

Knowledge Hierarchy

从数据到智慧的定义

-DefinitionExample
Wisdom
(智慧)
运用知识,产出渴望的成果。如何减少库存
Knowledge
(知识)
是用于生产的信息(有意义的信息)。信息经过加工处理,应用于生产才能转变成知识。库存过多
Information
(信息)
是以有意义的形式加以排列和处理的数据。(有意义的数据)资产负债表
Data
(数据)
是未经组织的数字、词语、声音和图像等。总帐交易记录

上表列示了从数据到智慧的定义和举例。通过日常凭证的录入,我们得到了总帐记录,这些数据是离散的和难以阅读的;经过格式化后,总帐记录以资产负债表的形式显示出来,变成了有意义的信息;管理人员通过学习和分析信息,发现企业的经营状况--库存过多,信息被应用于生产成为了知识;人们在不断学习和应用知识的过程中,也结合自己的认知和经验提高知识,久而久之便形成智慧--使你能够正确地判断当前的形势,并做出最佳的决策。

从数据到智慧的转换

From data to wisdom

数据智慧的过程需要坚持不懈地学习,这个过程不是一次性的,而且不断往复进行的。数据经常以文字图片等形式存在,属于典型的显性知识;经过分析处理后,数据被逐步提升为信息知识;直到最终成为根植为头脑之中的极为个性化的智慧,升华为隐性知识;隐性知识经过总结后,又会以文档等形式转换为显性知识。通过这个不断循环往复的显性知识和隐性知识的相互转换过程,知识得到了不断提升和进化,而个人和企业学习利用知识的能力也得到了提高。

从数据到智慧--既是互相区别、逐步提升的层次结构,也是互相渗透、循环往复的转换过程。

星期日, 九月 12, 2010

VIM学习笔记 拼写检查(Spell Check)

从版本7开始,Vim内置了拼写检查功能,但是在默认情况下并没有打开。

启用

首先,你需要使用:echo &spelllang命令确认当前使用哪种语言。比如:“en”代表英语。如果想要改语言,可以使用:set spelllang=en_GB.UTF-8命令。也可以用逗号分隔制定检查set spelllang=en_us,nl,medical多种语言。

然后,你可以通过菜单:工具 -> 拼写检查 -> 打开拼写检查,来启用拼写检查功能。GVim将用红色的波浪线标识出错误的拼写。你也可以使用:set spell命令打开拼写检查,使用:set nospell命令关闭拼写检查。

检查

如果在文件中有很多拼写错误,可以用]s命令移动到下一个拼写错误处,用[s命令移动到上一个拼写错误处。

SpellCheck_1

纠正

如果想要纠正错误的拼写:首先将光标移至错误的单词上,然后执行z=命令列出一组相近的单词,你可以在其中选择正确的拼写。

SpellCheck_2

有些特殊单词(比如图中的"Gvim")也会被标识为错误拼写,如果你希望Vim能够承认它们为正确的拼写,可以使用zg命令。还可以用zw命令取消用户做的拼写识别。

命令小结
:set spell启用拼写检查
:set nospell关闭拼写检查
]s移动到下一个拼写错误处
[s移动到上一个拼写错误处
z=选择正确的拼写
zg添加用户拼写
zw删除用户拼写

Ver: 1.0<上一篇 | 目录 下一篇>

星期五, 九月 10, 2010

去他妈的教育

教育,我一直以为是及其恶心和丑恶的。

后来听到Pink Floyd的这首Another Brick In the Wall(II)

We don't need no education

We don't need no thought control

No dark sarcasm in the classroom

Teachers leave them kids alone

Hey! Teachers! Leave them kids alone!

All in all it's just another brick in the wall.

All in all you're just another brick in the wall.

后来又看到The Wall这部电影。所有的学生戴着相同的无表情的面具以同样节奏的步伐走向一个绞肉机,既不回头也不朝两边看。机器中有不停敲打的铁锤,看上去像军队一样整齐划一而且十分有力。经过绞肉机后, 所有的孩子都被榨干了灵与肉,从绞肉机另一端出来的是一群行尸走肉。

Brick2-4

Brick2-2

Brick2-6

再后来,又看到劳伦斯的在文明的束缚下

男人始终没有学会的一件事,就是不顾教育的约束,而遵从自己的本能感觉。问题是我们在很小的时候就被抓住了。小男孩在5岁时被赶着去上学。随之而来的便一场使小家伙成为奴隶的把戏。他被送到女教师的手中,送到那些年轻的、中年的、老年的女人们的手中,她们绝对相信自己的力量、正确性和权威,牢牢地控制住孩子,开始“塑造”那些可怜的小鬼。没有人对这些女人塑造年轻男人生活的能力表示过片刻的怀疑。耶稣会的人说:把孩子交给我,直至他7岁,我将能对他未来的一生负责。---可是,女教师并没有耶稣会会士那么聪明,也肯定没耶稣会的人那样清楚自己要做什么,但她们也参加这种把戏。她们把小男孩训练成一个开始成型的男子,今天的男子。

可怜的约尼,可怜的小鬼!开学的第一天总是这样:“约尼,亲爱的,现在你得好好坐着,象个乖孩子,象所有其他的乖孩子。”当他不堪忍受时,便是:“哦,约尼,亲爱的,如果我是你,我一定不哭。看看别的乖孩子,他们都不哭,是吗?亲爱的?做个好孩子。老师给你个小熊玩。约尼想玩小熊吗?好,别哭了!看看别的好孩子。他们在学写---写字!难道约尼不愿意做个好孩子,学习写字吗?”

其实约尼不想学写字。他从心底里不愿做个好孩子不愿学写字。但女教师煞有介事,完全控制了他。可爱的教师带着他进入那条他必须走的路,可怜的小鬼。而一旦进入,他就得乖乖地跟着走,做一个与其他好孩子毫无二致的好孩子。学校犹如一套精致的铁路系统,好孩子们在那儿受到训练,懂得怎样沿着轨道走,直到他们 14岁、16岁或其它什么年龄时才纳入自己的生活轨道。但到了那个年纪,顺着轨道走的习惯已经固定不变了。长大了的好男孩只是从一条轨道挣到另一条轨道而已。而且,沿着轨道走是如此顺当,他从来就没有想到自己是这条轨道的奴隶。好孩子们!

滑稽的是没有任何人,甚至没有一个明智的父亲,对那些学校的嬷嬷们的绝对正确性发生过怀疑。一切都是为了小约尼好。这些女教师们是知道什么对小约尼有好处的。那就是做一个同其他好孩子一样的好孩子。

然而,做个同其他好男孩一样的好孩子,说到底就是做一个奴隶,至少是一个循规蹈矩的机械人。这就意味着亲爱的小约尼将推动他所有的男子汉个性。男子气概的苗头一出现,就会被仔细地剔除。在剔除成长的小男孩的男子气概的嫩芽方面,没有什么能比老处女的手指更灵巧的了。她们把男孩子们变成一个个中性人,俯首听命的孩子。这是一种微妙的,以爱的形式出现的肢解活动,母亲们却对此深信不疑。“哦,我只希望他成为一个好孩子!”她忘记了自己对那个好孩子式的丈夫是多么的厌倦。好男孩对母亲和教师们都非常好。但是,作为男人,由他们构成的民族,只能是软弱无能的。

当然,没有人想让约尼做个坏孩子。人们史希望他是一个男孩,不带任何形容词的男孩。但那是不可能的。在那些条件最好的学校里,孩子们享有最大的“自由”,实际上教师们微妙而无声的强迫却最为厉害。孩子们被悄悄地、一步一步地、毫不放松被逼去做好孩子。他们长大后是好人,但却一无用处。

那么,这民说的“好”空间是什么意思呢?说到底,就是完全与别人一样,丝毫没有自己的灵魂。你当然不应有自己的感情,你必须做好人,必须具有别人预料你会有的感觉,即和其它人一样的感觉。也就是说,你最终什么也感觉不到,你所有的感觉都被扼杀了。所剩下的,只是人为的呆板感情,即每天早晨随着读报时产生的感情。

我永远忘不了上学第一天我哭得多么痛苦。我被人抓住了,套上了绳索。别的男孩也有同感。他们痛恨学校,因为在那儿,他们感到自己就像被抓起来一样;他们痛恨教师,因为他们觉得教师就像狱吏。他们甚至痛恨学习读书和写字。一遍又一遍重复的话是:“走着瞧,等我下矿井后,看我还做什么算术。”他们所期待的就是:下矿井,逃脱控制,做个真正的男子汉。躲进矿井的荒原中,脱离学校的狭轨。

校长是个白胡子、脾气暴躁的好老头。我母亲最尊敬他。记得有一次因为不想承认我的名字是大卫,他大光其火。“大卫!大卫!”他咆哮起来,“大卫是个伟大、优秀人物的名字。你不喜欢大卫这个名字吗?你竟不喜欢大卫这个名字!”他气得脸色发紫。而我却莫名其妙地讨厌大卫这个名字,如今依然如此,他无法强迫我喜欢。可他却想那么做。

事情就是这样。大卫是伟人,优秀人物的名字,所以我得被迫喜欢这个名字。而如果我们的名字是阿纳尼亚斯或亚哈,我就可能被放过。可大卫!不行!很幸运,我父亲并不懂得大卫和达维安全灯空间有什么区别。

grinder

人可能喜欢学习,但根本就不需要教育。教育只是一些泯灭人性,强调一致,着眼产出的加工厂。人类并没有因为教育而发展的如何先进,只是走过了几千的历史。而且是以无数无辜生命的牺牲做为代价。而造成这些灾难的人,普遍受过良好教育。而当某人小偷小摸时,我们就说他缺少教育。那不是很奇怪吗?监狱里的人,是因为没上学而进去的,还是因为上了学才进去的。教育本身应不应该为这些过失也付上责任。

好像坏人都是自学成才,而好人都是精心培养起来的呢?这也太过荒谬。

IT界的乔布斯、拉里森、盖慈,早就证明了,重要的是天份,和教育根本无关。应该考虑的如何减少对知识流动的阻碍,而不是盖几幢大楼,加几个大门,然后把人关进去。

在任何领域中,比如数据库有MySQL, DB2, SQL Server, Oracle, 浏览器有Firefox, Safari, Netscape, IE,这个世界上有很多东西都应该是个性化的,而老师就是把个人化的东西神圣化,这对人性是很可怕的。重要的并不是要找什么样的老师,建什么样的学校。而是要提供人们自由学习的机会和场地。为什么你找点纸印几个字在上面,我就要相信。如果把以色列和巴勒斯坦的教科书放在一起一定很行为艺术。教育被太多谎话和强迫所控制。不如不要。

星期五, 九月 03, 2010

从 Smultron 到 Fraise

Smultron

Smultron在瑞典语中是一种野生草莓的名字。她是一个开源的文本编辑器,味道纯美而且有益健康。

后来,她又移植成了法语草莓Fraise;现在,正结出新的果实。

Fraise_header

Fraise 编辑文本

  • 显示通常不可见的字符(Invisible Characters:换行符或Tab等);
  • 显示或隐藏行号;
  • 选择是否折行(Line Wrap)显示;
  • 大小写转换和首字符大写(Capitalise First Letter);
  • 快捷键Command+Option+F进入即时查找(Live Find)状态。在查找框中输入想要搜索的内容,就会高亮度显示匹配的内容。利用快捷键Command+G定位到下一匹配处。
  • 可以同时在多个文件中进行查找和替换,并支持正则表达式;
  • 可以仅打印选中部分的文本,并且可以打印语法着色;
  • 设置自动完成(Auto-completion),或者按功能键F5可以显示近似匹配的单词;
  • 全屏幕操作。这时屏幕上只会显示你正在编辑的文档,使你专心于当下的任务。

Smultron_LiveFind

Fraise 编辑网页

如果你和我一样喜欢手工编写XHTML代码,那么Smultron绝对会是你的好帮手:

  • 支持语法高亮度(包括HTML,CSS,Java,SQL等等编程语言);
  • 支持多种编码格式(GBK,UTF-8等);
  • 使用快捷键减少缩进;
    • Smultron: Command+[
    • Fraise: Tab
  • 使用快捷键增加缩进
    • Smultron: Command+]
    • Fraise: Shift+Tab
  • 快捷键Command+T自动补全匹配的标签(Close Tag)。
  • 利用“Prepare For XML”菜单,将选中的&,<和>转换为遵从XML标准的&amp;, &lt; and &gt;。
  • 调用颜色选择器,并将选中的颜色以RGB或HEX代码插入代码中。
  • 使用快捷键Control+Shift+D创建本行的副本,可加速编写列表,或重用类似的代码。
  • 储存代码片段(snippets)便于重复使用。
  • 预览(Preview)网页。
  • 验证(Validate)网页。

Smultron_Snippets

如果你希望获得更干净的代码,可以删除那些多余的空格和换行符。这适合像我一样,有“洁癖”的人。

  • 选择“文字”菜单下的“移除不需要的空白”;
  • 选择“文字”菜单下的“移除换行结尾”;
  • 选择“文字”菜单下的“移除Tab...”;
  • 预览网页;

Fraise 编辑多个文件

  • 文档列表(Documents List)。列示和切换正在编辑的多个文档。通过放大图标尺寸,可以预览文档内容。
  • 支持多页面编辑(Tabs)。快捷键Command+Option+Up移动到前一个页面,Command+Option+Down移动到后一个页面。
  • 窗口分隔(Split Window)。将程序界面划分为多个部分,便于阅读较长文档的不同部分或同时编辑多个文件。

Smultron_View

Fraise 对Mac的支持

  • 拖拽一个或多个文件到Smultron的文件列表,将直接打开它们。
  • 集成于系统的“服务”菜单。
  • 支持AppleScript。
  • 与.Mac同步。

Smultron_Service

Fraise 选择合适的版本

Tags: , , , , ,

星期二, 八月 31, 2010

SILENCE & SCORN

Silence is the most perfect expression of scorn

沉默是表达蔑视的最佳方式

---George Bernard Shaw 萧伯纳

星期二, 八月 24, 2010

VIM学习笔记 打印(Print)

打印到屏幕

命令:print(简写为:p)可以显示出选定的行。如果没有指定参数,仅是打印当前行。打印完成以后,回到打印行的开头。

我们可以指定要打印的行的范围。例如以下命令,将打印1到5行。

:1,5 print

如果仅仅想打印第5行,可以使用以下命令:

:5 print

如果想要打印整个文件,可以使用以下命令:

:% print

我们还可以选择显示包含指定内容的行。例如使用以下命令,可以打印出含有“ex”的行,并会高亮显示“ex”。

:/ex/ print

我们可以组合使用标记命令m与print命令。例如:在一个地方用命令ma做上标记;然后在其他的地方用命令mb也打上标记;最后用以下命令打印这两个标记之间的内容:

:'a,'b print

命令:number:#不仅可以显示选定范围的内容,同时还会其行号。

命令:list也可以列出指定的行,而且能够显示出回车,Tab等不可见的字符。

打印到打印机

使用:hardcopy命令,将调出打印对话框,并将文本按照显示在Vim中的原样输出到打印机上。

使用:hardcopy!命令,则不会调出打印对话框,而是直接将文本输出到默认打印机上。

如果想要打印指定范围的行,可以使用以下命令:

:1,100 hardcopy

我们也可以进入可视化模式,然后选择指定的范围进行打印:

v100j:hardcopy

其中,命令v进入可视模式,100j向下移动100行,这些行将被高亮显示。然后用:hardcopy命令,打印出选中的行。

我们也可以使用命令V进入可视化模式,并选定一段内容,这时输入:就会在Vim的底部显示<,>两个字符,这两个字符分别指选定内容的开头和结束部分。然后就可以用:hardcopy命,令打印出选择的部分了。

打印选项

利用以下命令,设置printoptions选项,可以控制Vim的打印效果。

set printoptions=paper:A4,syntax:y,wrap:y

paper选项,用于选择纸张。可以设置为A3、A4、letter和legal。

syntax选项,确定是否按照语法高亮度打印文件。默认值“a”,意味着仅在使用彩色打印机时,打印语法高亮度;你也可以将值设为“y” ,强制打印语法高亮度。

wrap选项,确定是否折行打印。默认值“:y”,意味着自动折行;如果你将值设为“n”,那么过长的行在打印时将被截断。

header选项,设为“0”时,将取消打印页眉。

number选项,设为“y”时,将会打印行号。

关于printoptions的更多选项,请使用:help popt命令,查看帮助信息。

命令小结
:print打印到屏幕
:number带行号打印
:list打印不可见字符
:hardcopy打印到打印机
set printoptions设置打印选项

Ver: 1.0<上一篇 | 目录 下一篇>

星期日, 八月 22, 2010

星期三, 八月 18, 2010

2 Patches for RSS

RSS,让生活更美好。城市,不能。

有的网站,出于不可告人的目的,而没有输出全文RSS。比如:TechMixer是一个介绍优秀软件的网站,但订阅RSS却只能阅读文章的开头。

topic-only

幸好,通过FeedEx可以扩展RSS,轻松阅读全文。

full-text

有的网站,不但没有全文输出的RSS,甚至压根就不提供RSS。幸好,利用Page2RSS可以生成网页更新的RSS。其实,在Google Read中,也可以直接输入网址来订阅更新。但是,以上方法并不能对所有网站、所有日志都100%有效。还是,需要网站自身提高人品,让用户轻松自由地阅读。

请, 什么都不要做...

如果我的Mac连接了相机,那她自动打开iPhoto,可以称为智能;可如果我插入的只是一个放了两张图片的U盘,那启动iPhoto就有点小题大做了。

幸好,利用Mac OS X 10.6 Snow Leopard自带的“图像捕捉 (Image Capture)”程序,可以修正这个过度反映。你可以选择:在连接某个设备时,自动打开哪个程序,或者不打开任何应用。

Camera specific application launching

星期六, 八月 14, 2010

解构知识管理(下)

知识管理的实施步骤

知识管理的实施步骤

    扩展阅读:四个阶段的推进步骤

知识管理的实施方法
  • 构建支持知识管理的组织体系
  • 加大对知识管理的资金投入
  • 创造有利于知识管理的组织文化
  • 制定鼓励知识创造和转移的激励措施
  • 开发支撑知识管理的信息技术
  • 建立知识管理评估系统
    资料来源:美国生产力与质量研究中心
知识管理的成功关键
知识管理的失败原因

  知识管理的七个认识误区

  1. 知识管理是关于知识的
    知识管理系统应该把关注的焦点放在快速增长、改善运营和增加利润空间上。
  2. 知识管理是关于技术的
    知识管理不是一个单纯技术项目,它必须能够适应快速变化的商业环境。
  3. 知识管理是万能的
    知识管理不可能一天就解决所有的信息问题,应该从小处开始逐步取得成效。
  4. 知识管理的目标是建立一个文档库
    知识管理不仅仅是为了保存信息,更重要的是要利用知识帮助企业做出更好的决策。
  5. 能买到一个现成的系统
    知识管理的工具繁多,核心问题是怎样把这些工具和你的成长,运营和技术战略进行集成。
  6. 知识管理就是控制知识
    知识管理不是为了控制知识,而是要努力培育一种分享知识的企业文化。
  7. 做好之后,他们就会用的
    知识管理的成功应用,必须得到高层领导的坚定支持并配合鼓励知识共享的企业制度。

  知识管理的十种失败因素

  1. 没有获得高层领导的支持
  2. 由上而下进行的项目,没有底层的参与
  3. 忽略在人事和技术上的后续支出
  4. 选择错误的技术解决方案
  5. 没有预先设定运营的目标
  6. 选择错误的顾问公司
  7. 错误的衡量过程
  8. 制定宽泛的策略,无法完全实现
  9. 忽略用户的因素
  10. 缺乏实施后的持续改进
知识管理的评估方法

    可以从以下几个方面评估知识管理的实施效果:

  • 人力资本
    • 培训费用
    • 组织学习
    • 员工忠诚度
    • 管理经验
  • 创新资本
    • 研发费用
    • 从事创新的员工比率
    • 产品更新
    • 知识产权
  • 客户资本
    • 满意度
    • 服务质量
    • 合作的时间
    • 重复购买
    • 销售额
  • 知识识别阶段
    • 知识库中联系的数目
    • 知识库中主题的数目
    • 点击率
    • 生产力
  • 知识诱导阶段
    • 来自于知识库的新需求
    • 可达到的相关资源
  • 知识分发阶段
    • 推的方式分发
    • 拉的方式分发
  • 知识利用阶段
    • 知识聚集活动中的系统利用率
    • 用户满意度
    • 知识利用过程中产生的商业机会

    扩展阅读:度量知识分享的收益

知识管理的主要收益

知识管理的主要收益

西门子ICN从知识管理获得的主要收益

知识管理的最佳实践
结语

知识管理的市场发展

    Market competition becomes competition on knowledge!

    管理大师德鲁克在1993年所写的《后资本主义社会》中表示:"我们正进入一个知识社会,在这个社会当中,基本的经济资源将不再是资本(Capital)、自然资源(Natural Resources)或劳力(Labor),而将是知识(Knowledge);知识员工将成为其中的主角。" 所以,如何管理好知识是现代企业必须面对的挑战!

    IDC在2002的调查中显示,世界500强中90%的企业已经开始知识管理项目。无疑,知识管理市场正在不断扩大,企业对知识管理重视也在不断提高,知识管理正在成为企业信息化的热点。我坚信,在不远的将来,KM将像ERP那样成为企业生存和发展的必备要素。

附纪
||下  本文结构用Freemind组织 图表用Dia绘制  Tag:  Author:yyq123  Version:1.3

星期四, 八月 12, 2010

VIM学习笔记 模板(Template)

在新建文件时,如果有针对该文件扩展名的模板存在,那么模板中的内容,将被自动插入进新文档中。

首先,创建模板文件(Skeleton Document)。例如,包含以下内容的XHTML 1.0 Strict模板。

注:你可以从Web Standards Project获得更多类型的HTML/XHTML模板。

然后,将模板以正确的扩展名,保存至Vim的skel目录中。如果没有skel目录,则需要手工创建。在Windows中,将模板Template.html保存到C:\Program Files\Vim\vimfiles\skel目录下;而在Mac/Liunx/Unix中,则保存模板为~/.vim/skel/Template.html

最后,vimrc文件中,添加以下命令:

Windows:

autocmd! BufNewFile * silent! 0r $VIM/vimfiles/skel/Template.%:e

Mac/Liunx/Unix:

autocmd! BufNewFile * silent! 0r ~/.vim/skel/Template.%:e

当你使用:new test.html命令新建一个HTML文档时,模板中的代码就会被自动添加到新建的页面中。这无疑,非常便于我们创建标准化的网页。

Technorati Tags: ,,

星期四, 八月 05, 2010

解构知识管理(中)

知识管理的流程

知识管理的核心流程

知识管理应采用一个循环往复的闭环流程,也就是说知识管理是一个没有终点的持续改进过程。这是由知识管理的特性决定的。企业身处的商业环境,服务的客户受众,面对的竞争对手都在不断变化,这就要求企业的知识管理不断进化,以提高自身竞争力;个人和组织的学习,可以通过方式、方法的改进,制度、流程的完善,不断得到提高;知识会在应用中得到不断更新,也会激发出更多的相关知识,这也要求持续维护现有知识和新生知识。

知识管理并不存在一个确定的起点。根据企业所处的不同行业类型、组织结构和生命周期,可以从不同起点开始知识管理。比如一个初创企业,必须从知识创建开始;而一个成熟企业,已经拥有了大量的知识积累,所以完全可以从知识识别开始;比如一个制造企业,希望利用现有知识来提高生产效率,所以应从组织知识开始;而一个咨询公司,必须依靠创新知识来赢得客户,所以会从创建知识开始。

知识管理的组织

CKO(Chief Knowledge Officer)是企业高层领导之一,他制定和推行知识管理策略,领导和组织知识管理活动,通过有效管理知识实现企业的整体经营战略。

CKO的主要责任:

  • 保证企业智力处于行业和市场的领先地位
  • 提高企业的创新能力和学习能力
  • 为企业决策提供信息支持
  • 推动沟通协作和知识共享
  • 识别局部的最佳实践并推行到整个组织中

CKO的主要特质:

  • 宽广的视野
  • 远大的愿景
  • 良好的声誉
  • 高度的热情
  • 谦虚的态度(Humility)
  • 坚韧的耐力
  • 勇于创新
  • 善于激励
知识管理系统的结构层次

知识管理系统的七个层次

知识管理系统的技术要素

    一个完善的知识管理系统应该具备以下七种技术要素:

  • 门户技术
  • 搜索引擎动技术
  • 协作技术
  • E-Learning技术
  • 商业智能技术
  • 内容管理技术
  • 集成技术
知识管理的主要技术

知识管理技术的层次分类

  • 知识历程图
    • 定义:
      知识历程图(Knowledge Storyboard),是指在企业的业务循环中,支持流程所需的知识以及参与其中的人的图表。
    • 优势:
      将人、流程和知识有机地结合在一起。
    • 实施步骤:
      1. 了解业务流程的运作
      2. 分解业务流程的关键事件点
      3. 找出每个事件点的相关人员
      4. 找出每个事件点的相关知识
  • 知识网络图
    • 定义:
      知识网络图(Knowledge Network),是将知识按照方便使用和管理的原则进行分类,建立中心知识和围绕中心知识的卫星知识。
    • 优势:
      将流程中的各个知识点联系在一起。
    • 实施步骤:
      1. 确认中心知识内容
      2. 分解卫星知识内容
      3. 为每个卫星知识配备负责
  • 导师制
    • 定义:
      导师制(Trainer-Trainee System, TTS),是指为每一位新员工有针对性地指定一位导师,导师通过正式与非正式的途径将自己的知识传授给新员工,使新员工能够在新的工作岗位上更好的适应和发展。
    • 优势:
      • 为企业提供人才保障
      • 增加同事亲和力和团队凝聚力
      • 有助于隐形知识转化为显性知识
    • 实施步骤:
      1. 确定导师和被培养对象的资格
      2. 确定培养方向、方法、内容和课题
      3. 考核和优化
  • 实践社团
    • 定义:
      实践社团(Community of Parctice, Cop),是指为分享知识和情感所组成的非正式团体。
    • 优势:
      • 有利于情感的交流
      • 有利发掘个人的隐性知识
      • 有利于知识的共享和创新
      • 有利于提升凝聚力
      • 有利于发现和吸引人才
    • 实施步骤:
      1. 明确社团关注的领域
      2. 明确社团的核心价值
      3. 选择社团促进者协调社团的活动
      4. 吸引成员加入社团
      5. 通过实践分享知识
  • 事后回顾
    • 定义:
      事后回顾(After Action Reviews, AAR),是指通过总结过去成功和失败的经验教训,改进未来的表现。
    • 优势:
      • 过程简单时间花费少
      • 有利于获取隐性知识并将其转化为显性知识
      • 有利于诊断和评估个人及团队的表现
      • 有利于提高发现和总结知识的能力
      • 有利于培养团队的学习精神
    • 实施步骤:
      1. 及时地召开总结会议
      2. 营造开诚布公的良好氛围
      3. 指定一个推动者
      4. 假定会出现什么情况
      5. 实际出现什么情况
      6. 比较实际和计划
      7. 确保所有成员都有同等权利发表了意见
      8. 记录事后回顾过程
    • 案例:
      美军建设学习型组织案例
  • 企业知识门户
    • 定义:
      企业知识门户(Enterprise Knowledge Portal, EKP),是员工日常工作所涉及相关主题内容的统一入口。员工可以通过它方便地了解今天的最新消息、当天的工作内容、完成这些工作所需的知识等。
    • 优势:
      • 提供统一的信息访问渠道
      • 提供不间断的服务
      • 提供强大的内容管理能力
      • 提供个性化的应用服务
      • 提供协作工作的平台
      • 提供多系统间的无缝集成
      • 提供可靠的安全性
    • 实施步骤:
      1. EKP的规划
      2. EKP产品和供应商的选择
      3. EKP的实施
      4. EKP的持续改进
    • 案例:
      知识管理从内部网站起步
  • 专家黄页
    • 定义:
      专家黄页(Experts Yellow Page),是将专家的详细资料和掌握的知识列示在黄页上,方便有需要的员工在适当的时间找到适当的人并获得适当的知识。
    • 优势:
      • 可以加强员工间的沟通与合作
      • 发现和充分利用员工的知识
      • 增强员工的成就感
    • 实施步骤:
      1. 收集员工的信息
      2. 按知识领域对员工分类并识别出专家
      3. 创建具有强大分类和搜索功能的黄页系统
      4. 提供利于合作的技术和流程
      5. 对专家进行认证和激励
  • 同行协助
    • 定义:
      同行协助,是要求得到帮助的小组邀请其它小组的人员共同召开一次研讨或座谈,共同分享他们的经验、观点和知识。
    • 优势:
      • 从别人身上学习已有经验
      • 针对特定问题展开讨论
      • 不存在等级观念有利于自由交流
      • 在员工间建立强大的联系网络
    • 实施步骤:
      1. 明确目的
      2. 查看是否有人已经解决了这个问题
      3. 任命一个联系人
      4. 考虑时间期限,安排日程进度
      5. 挑选不同人员参加会议
      6. 清楚定义你希望达到的目的以及你计划怎么达到
      7. 让大家彼此熟悉
      8. 营造良好的环境
      9. 从分享信息和背景条件开始
      10. 鼓励客人询问他们想知识的问题
      11. 分析你听到的
      12. 将反馈公布于众,看看每个人都学到了什么,还有谁能从中得到好处。大家对行动达成一致,并及时报告进度。
    • 案例:
      英国石油同行协助案例
  • Blog
    • 定义:
      Blog,是以网页为载体,以日志为形式,简易迅速地发布信息,及时有效地与人交流,并能完整展现个性的综合性网络服务。它既可以是面向内部的,也可以是面向外部的。由于操作简便,用户参与度高,可以用于知识分享和沟通交流。
    • 优势:
      • 使用方便
      • 可以快速的发布信息
      • 使用基于会话和主题的交流方式
      • 可以及时地获得反馈和建议
      • 能够提高客户满意度
    • 实施步骤:
      1. 创建公开和透明的企业文化
      2. 部署Blog系统
      3. 积极回应从Blog反馈的信息
      4. 创建鼓励Blog的激励制度
      5. 将Blog变成日常工作的组成部分
    • 案例:
      Blog在企业中的应用
  • MicroBlog
    • 定义:
      MicroBlog,是一种基于用户关系的信息分享、传播以及获取平台,用户可以通过WEB、WAP以及各种客户端工具,即时分享简短信息。
    • 优势:
      • 没有技术壁垒的极简操作
      • 通过限制内容和修饰加速信息分享
      • 利用Follow和Retweet强调社交化
    • 实施步骤:
      1. 选择和部署合适的MicroBlog系统
      2. 鼓励个性化和自由化的信息分享
      3. 将MicroBlog发展为重要的沟通协作和知识分享工具
  • Wiki
    • 定义:
      Wiki,是一种进行共同创作(collaborative)的网络服务,每个人都可以任意修改网站上的页面资料。wiki概念的发明人是Ward Cunningham。wiki一词来源于夏威夷语的“wee kee wee kee”,意思是“快点快点”。实际上wiki不但使用起来既简单又快速,而且由于很多人的贡献wiki的内容也得到快速的发展。
    • 优势:
      • 使用简单
      • 自由编辑
      • 协作创作
      • 集体贡献
    • 实施步骤:
      1. 创建公开和透明的企业文化
      2. 部署wiki系统
      3. 不断充实wiki的内容
    • 案例:
      Wiki在企业中的应用

扩展阅读:

|中|  本文结构用Freemind组织 图表用Dia绘制  Tag:  Author:yyq123  Version:1.3

星期一, 七月 26, 2010

VIM学习笔记 折行(Wrap)

折行显示

在默认情况下,Vim会自动折行––将超出屏幕范围的文本打断并显示在下一行。我们也可以通过以下命令,取消自动折行––超出屏幕范围的文本将不会被显示,你需要向句末移动光标,以使屏幕水平滚动,查看一行的完整内容。

:set nowrap

默认设置set sidescroll=0之下,当光标到达屏幕边缘时,将自动扩展显示1/2屏幕的文本。

sidescroll-off

通过使用set sidescroll=1设置,可以实现更加平滑的逐个字符扩展显示。

sidescroll-on

可以使用以下命令,恢复Vim的自动折行:

:set wrap

折行形式

我们可以告诉Vim在合适的地方折行:

:set linebreak

所谓合适的地方,是由breakat选项中的字符来确定的。在默认的情况下,这些字符是“^I!@*-+_;:,./?”。如果我们不希望在下划线处打断句子,只要用下面的命令将“_”从这个列表移除就可以了:

:set breakat-=_

如果一行被打断,Vim可能不会在句子连接处显示任何内容。我们可以通过设置showbreak选项,来显示所希望的指示信息:

:set showbreak=->

我们可以使用以下命令,取消自定义折行:

:set nolinebreak

在折行内移动

如果设置了wrap选项,那么很长的行将被折回并连续显示在屏幕上。但使用j命令,将移动屏幕上显示为多行的一行;而如果希望在折行内向下移动,则需要使用gjg<Down>命令。同理,gkg<Up>命令,用于向上移动。

j-gj

vimrc配置文件中,定义以下键盘映射,可以使jk命令自动判断是在折行内或是在折行间进行移动:

noremap j (v:count == 0 ? 'gj' : 'j')
noremap k (v:count == 0 ? 'gk' : 'k')

命令小结
:set wrap启用自动折行
:set nowrap取消自动折行
:set linebreak自定义折行

Ver: 1.1<上一篇 | 目录 下一篇>

星期六, 七月 17, 2010

虚伪的矛盾和矛盾的虚伪

不公正在增加,不平等在恶化,无知在成长,悲惨在扩大。这个能够把复杂工具送到另一个星球去研究那里的岩石结构的神经分裂的人类,却可以对数百万人因饥饿而死亡无动于衷。去火星仿佛比拜访自己的邻居更容易。

––若泽·萨拉马戈(葡萄牙语作家)

寻找世界和平就像寻找天空的蓝一样,表面上存在,其实只是幻象。

––安东尼.罗宾(世界潜能激励大师)

相比起能把人载上天空的飞行技术,人们却对飞机上的无线网络表现出了更多的惊讶和兴趣。

––弗里德曼(喜剧演员)

为什么看着动物被浸在石油里我会不住伤心,而看着动物在油锅被煎炸成快餐我却垂涎三尺?

––科拜尔(喜剧演员)

星期三, 七月 14, 2010

VIM学习笔记 换行 (Line Feed)

换行方式

在早期的打印机时代,开始新的一行要占用两个字符的时间。如果到了一行的结尾处,你要快速回到新的一行的开头,需要打印针头在纸面上飞快地掠过,常常会在纸面上留下污点。解决这个问题的办法就是,用两个字符:一个字符<Return>来移到第一列,另一个字符<Line feed>来新增一行。

计算机产生以后,存储较为昂贵,在如何解决回车换行这个老问题上,人们产生了不同的意见。UNIX人认为在到达一行的结尾时新增一行<Line feed> (LF),而Mac人则认同<Return> (CR)的解决办法,MS则坚持古老的<Return><Line feed> (CRLF)的方法。这就意味着,如果你将一个文件从一个系统转移到另一个系统,就面临着回车换行的问题。而Vim编辑器则会自动识别出出这种文件格式方面的区别,并做出相应处理。

fileformats选项,用于处理文件格式。以下命令告诉vim将UNIX文件格式做为第一选择,而将MS-DOS的文件格式做为第二选择:

:set fileformats=unix,dos

检测到的文件格式会被存放在fileformat选项中,我们可以用以下命令来查询:

:set fileformat?

我们还可以利用fileformat选项,来转换各种文件格式。例如,使用以下命令将名为readme.txt的MS-DOS格式的文件,转换为UNIX格式的文件。

:set fileformat=unix

在默认情况下,Vim认为文件是由行组成的,并且文件最后一行是以<EOL>为结束符的。如果你想设置文件以<EOL>结束符结尾,则可以用以下命令:

:set endofline

如果你想设置文件不以<EOL>结束符来结尾,则可以使用以下命令:

:set noendofline

显示换行

使用以下命令进入<list mode>,那么就可以清楚的看到以“$”表示的换行符和以“^I”表示的制表符。

:set list

line_feed

你可以使用以下命令退出<list mode>:

:set nolist

删除换行

line_feed_Ctrl_M

可以用以下命令删除换行符:

:%s/\n//g

可以用以下命令删除DOS文件中的回车符:

:%s/\r//g

可以用以下命令删除DOS回车文件中的“^M”:

:%s/ˆM//g

可以用以下命令删除行尾的空格以及DOS回车符。它没有使用“/”字符作为替换命令各个参数间的分隔符,而是使用了“#”字符。命令还使用了“\?”正则表达式,用来匹配它前面出现的字符0次或1次。

:%s#\s*\r\?$##

可以用以下命令删除三行空行:

:%s/^\n\{3}//

可以用以下命令将连续的两个空行替换成一个空行:

:%s/\n\n/\r/g

自动换行

在默认情况下,Vim是不会自动换行的,也就是说我们需要自己决定回车的位置。但是我们也可以通过指定textwidth选项,让Vim自动在指定位置换行。例如,使用以下命令指定在30列时自动换行。由于在遇到空格时才会自动换行,所以换行的精确位置可能会小于你指定的列宽。

:set textwidth=29

而以下命令告诉Vim从右面算起当达到10个字符的空格时要换行:

:set wrapmargin=10

注意:选项textwidth优先于wrapmargin。如果要使wrapmargin选项生效,必须将textwidth设置为0(这也是默认值)。

在指定了文本宽度的情况下,当我们将一行中的前几个文字删掉时,Vim并不会将后面行中的文本移动上来,而是形成了一些长短不一的段落。可以使用以下几种方法来处理这个问题:

一种方法是,在可视化模式下选中这些文本,然后用gq命令来格式化选中的段落。

line_feed_gq

另一种方法是,使用gqmotion命令来完成格式。例如:gq4j命令,告诉Vim要格式化本行,以及之后的4行,这样就达到了格式化5行的目的。如果要格式化整个段落,可以将光标放在段落的第一行上,然后执行命令gq}。而使用命令gqip可以格式化当前段落,而且并不必要将光标放在段落的第一行上。如果要想格式化一行,可以使用命令gqgq,也可以简记为gqq

合并行

命令J可以将本行和下一行合并为一行,同时用空格分隔这两行。我们也可以使用数字前缀来合并多行。例如3J会将当前行及之后的三行合并为一行。

通过设置joinspace选项,可以控制合并两行时的分隔符(如果一行是以标点符号来结尾)。如果设置:set nojoinspaces,用J命令合并两行时会用一个空格来分隔;如果设置:set joinspaces,用J命令合并两行时会用两个空格来分隔。如果不希望用空格来分隔合并的行,可以使用gJ命令。

不带参数的:join命令,可以将当前行及下一行合并为一行并使用空格来分隔各行。加入范围参数的:[range]join命令,可以合并多行。例如:1,3join命令,将合并第一到第三行。如果不希望加入空格分隔多行,那么可以使用:join!命令。

命令小结
:set fileformat设置文件格式
:set endofline设置文件结束符
:set noendofline取消文件结束符
:set list进入List Mode
:set nolist退出List Mode
:%s/\n//g删除换行符
:set textwidth设置行宽
:set textwidth设置行边距
:gq格式化文本
:join合并多行
J合并两行

Ver: 1.0<上一篇 | 目录 下一篇>

星期日, 七月 11, 2010

世界杯,不可能精彩的比赛

1990年,第一次看意甲,第一次看世界杯。也是从那时起,喜欢上这项运动。时间慢慢走过,也渐渐明白——为什么那些年龄越来越大的朋友,对足球也越来越没有兴趣。因为,终于懂事起来——那么丑陋、无聊的社戏实在不值得付出任何时间和热情。

明明享用的就是职业足球的排泄物,这是哪门子的盛宴?

每到世界杯,所有媒体都众口一词地宣称那里有最精彩的比赛。对于稍有鉴赏力的球迷来说,这样的宣传根本就是谎言。穆里尼奥就曾说过:“我不会去看世界杯,因为在我看来,世界杯的精彩程度根本比不上欧冠”。

32支球队,绝对是鱼龙混杂,滥竽充数者大有人在。每个洲为了名额争吵不断,技术性的足球变成了官僚的政治游戏,那些永远出不了线的垃圾球队也就有了机会占着位子。球队的质量,也就决定了比赛的质量。我不知道,有谁会有兴趣看德国对沙特,这样的比赛还不如切沃对乌迪内斯精彩。连中国队都能进入的决赛圈,也可以想像这种比赛已经烂到了何种程度。

已经参差不齐的球队,还是由散布在各个联赛甚至各个大洲的球员组成,他们一年也见不了几次面,一起训练的时间还没有和自家小狗玩耍的晨光长。还有很多球员因为各种原因是老死不相往来的,他们碰到一起擦出的不是灵感的火花,而是无休的内讧。顶尖球员,一年要参加近百场的职业比赛,即使没有伤病困扰,到了人困马乏的季末也是强弩之末了。如果奢望生理和心理都处在最差状态的球员能打出心领神会的精妙配合,简直就是痴人说梦。

曼联的长盛不衰,国米的脱胎换骨,每每证明:一支伟大的球队必须有一个伟大的教练。当你环顾世界杯赛场,没有穆里尼奥、弗格森、安切洛蒂、温格这样的顶级名帅,而有的只是些初出茅庐的新手和静待退休的老人,当然还有只会熊抱的前球王。打造一支稳定且强大的球队,需要主教练花费大量时间选择球员、悉心调教、磨合战术。这显然不是一朝一夕就能完成的任务,而世界杯只有两个礼拜,让球队准备一个月的比赛。不知道,这点时间能不能在马戏团训练一只狗熊穿过火圈?所以世界杯,也就没有什么战术可言,教练员不会也没有时间演练这些复杂高深的东西。他们主要的工作就是——看着球员不要和女朋友做爱,然后背熟离职宣言,随时准备做替罪羔羊。也有些积极进取的教练会忙些更重要的事——比如精心打扮或者奇装异服;比如任人唯亲或者拉帮结派。当然,那些工作的都不会技战术扯上关系,他们只是在争取做一个曝光率高的临时管家。

众所周知,世界杯是极尽功利的赛事,球员和教练都承受着极大的压力,他们不是为了快乐,不是为了球迷,甚至不是为了比赛而比赛,他们想的只是晋级夺冠。任何一个失误、一次失败,都可能使他们成为千古罪人,除了连篇累牍的指责,甚至还有子弹等着他们。世界杯简直就是一场残酷的审判和迫害。在这变态的紧张气氛中,球员又如何能有正常的发挥?赛会制的比赛,本来就存在极大的偶然性,再加上连续做战的疲劳,别说精彩的比赛,你连球星的真正风采都领略不到。

如果你想看精彩足球,每年都有无数场职业足球的巅峰对决——国际米兰对AC米兰、皇马对巴萨、河床对博卡......哪一场不是星光熠熠、激情四射!那才是“真球迷”的饕餮盛宴。而世界杯的主体看客是为数众多的“伪球迷”,他们不知道什么叫阵形,不知道什么叫越位,甚至连球场上的队员都认不出,他们只不过是被媒体绑架而来装点门面的人头。所以,世界杯不是以精彩的比赛为基础,而是以组织者、商家和媒体共同营造的营销为支撑的。

如果你还在看世界杯,那么请说清楚:“哥看的不是比赛,是热闹!”