模式,模式
有一件众所公认的事实:VIM的学习曲线是众多文本编辑器中最陡峭的!
陡峭的原因在于决定使用VIM之前,不得不了解模式的概念,否则连一个字母也别想输入!
VIM共有六种基本模式(Basic Mode) [1]
- 普通模式(Normal Mode)
- 插入模式(Insert Mode)
- 末行模式(Command-line Mode)
- 可视模式(Visual Mode)
- 选择模式(Select Mode)
- Ex模式(Ex Mode)
这六种模式可以精简为普通模式和插入模式两种,其他的四种模式可以看作普通模式的特例。普通模式操作指令,插入模式操作数据。而操作方式的表象是一致的:输入字符序列,甚至是相同的字符,以得到不同的结果。
这种高度的抽象仿佛Lisp语言的灵魂附体:
- 指令即数据,数据即指令。
- 字符和字符组合之于VIM就好像原子和列表之于Lisp。
- 而指令的互相组合,就好像高阶函数Lambda[2],是一种更高层次的过程抽象。
纸上得来终觉浅,绝知此事要躬行:
把整篇文章全部小写ggguG
去掉所有的行尾空格:s/\s\+$//
去掉所有的空白行::%s/\(\s*\n\)\+/\r/
a12345678b12345678c12345678d12345678e12345678f12345678g12345678h12345678i123456781、将上面内容中所有的45换成de:%s/45/de/g2、去掉每行开头第一个字母gg Ctrl+v Gd
是不是瞠目结舌,叹为观止?这些神秘的字符组合蕴藏着不为人知的能量。
统一之美
- 世界是一切实况之所是。
- 实况之所是,即事实,是由原子事实组成的。
- 原子事实是对象(物项、事物)的一种结合。
——维特根斯坦《逻辑哲学论》
字符在VIM里即是原子事实(Sachverhalt),而其本身是"命令模式指令意义"与"插入模式字面意义"的一种结合。字符原子组成了实况之所是(was der Fall ist),进而建立了整个表象的世界图像。
语言就是世界的逻辑形式。——维特根斯坦《逻辑哲学论》
这种近乎偏执的抽象传达了这样一种理想:完美的东西就应该是广泛适用的。不断地结构再重构认知的元素对象,统一各种命题,无疑是对完美的追求。
实际在UNIX系统中,以文件为原子事实的概念就根深蒂固,以至于各种硬件设备都被统一抽象成文件。
在Lisp中,明确提出了原子这个术语,其递归式的元编程(MetaProgramming)思想更是指出了描绘世界的逻辑形式的可能。
名称意谓对象。对象是它的意谓 。——维特根斯坦《逻辑哲学论》
因此,是简单对象的存在保证了意义的确定性。名称若无指称,则包含此名称的命题无意义。名称代表对象,而非描述对象,因此名称不是对象的图象,名称也无所谓真假。只有命题才是图象。同样的原子字符,不同模式下是不同的,如果混淆了,根据维特根斯坦的图像理论,就是没分清名称、命题、对象的关系。因为“只有命题具有意义,只有在命题的叙述关系中一个名称才有指谓”,而这种叙述关系在VIM里就是模式。这实际上表达了一种更深层次的本体论。
VIM是哲学,也是艺术。
高深...我的评价~
回复删除呵呵,我已经把你的blog加进我的链接了>>
嗯,老大还是勤奋的多,blog更新的那叫一个快。
回复删除blog是孤独者的玩具,twitter是怕孤独者的工具。呵呵。