[转] Vim入门图解说明.

发表于

来源:http://blog.vgod.tw/2009/12/08/vim-cheat-sheet-for-programmers/

感谢作者(vgod)用心绘制的Vim入门图解说明

PDF版下载

这个图把vim中基本的移动方法都画上去了,为了方便programmer,特别列出了很多只有写程式才会用的按键。除了这些以外,其实还有一些好用的东西我还没想到怎么画上去比较好(像是tags、没有标准快速键的tab、man..),如果大家有idea欢迎提供。

这些图示依照移动的单位大小分为以下几个种类,分别用不同颜色标示:

(注意,这不是完整的vim快速键列表,只是我觉得比较常用的键而已。)























字元(character)

h


j


k


l
























单字(word)

w

下一个word

W

下一个word(跳过标点符号)

b

前一个word

e

跳到目前word的尾端



















行(line)

0

跳到目前行的开头

^

跳到目前行第一个非空白字元

$

跳到行尾



























段落(paragraph)、区块(block)

{

上一段(以空白行分隔)

}

下一段(以空白行分隔)

[{

跳到目前区块开头

]}

跳到目前区块结尾

%

跳到目前对应的括号上(适用各种括号,有设定好的话连HTML tag都能跳)























萤幕(screen)、绝对位置

H

萤幕顶端

M

萤幕中间

L

萤幕底部

:x

xG

跳到第x行(x是行号)



























搜寻(search)

/xxxx

搜寻xxxx

#

往前搜寻目前游标所在的字(word)


往后搜寻目前游标所在的字(word)

f*x

在目前行往后搜寻字元x

gd

跳到目前游标所在的字(word)的定义位置(写程式用, 跳到定义变数/函式的地方)



































分割视窗

:split

分割视窗(可加档名顺便开启另一档案)

:diffsplit xxx

以分割视窗和档案xxx做比较(diff)

Ctrl-W p

跳到前一个分割视窗(在两个分割窗来回切换)

Ctrl-W j

跳到下面的分割窗

Ctrl-W h

跳到左边的分割窗

Ctrl-W k

跳到上面的分割窗

Ctrl-W l

跳到右边的分割窗



















自动补齐(Auto-completion) (在Insert Mode中使用)

Ctrl-N

自动补齐档案内的下一个可能字(word)

Ctrl-P

自动补齐档案内的上一个可能字(word)

Ctrl-X Ctrl-F

自动补齐档名

[GRUB4DOS] 外部命令 calc 简单计算器

发表于

[程序说明]

GRUB4DOS 下运行的简单双目计算器.

注: 最新版GRUB4DOS已经内置本功能

[下载地址]

程序下载: http://grub4dos-chenall.googlecode.com/files/calc.zip
最新版grub4dos下载: http://grub4dos-chenall.googlecode.com/

[使用说明]

GRUB4DOS 简单双目计算器.
使用方式:

  1. calc 数值 [运算符] 数值
  2. calc 数值 = 数值 运算符 数值

    如果数值前面有前导*代表这是一个内存地址,
    计算时会从这个内存地址中读取32位整数进行计算.
    第一个参数如果有前导*,会将计算结果写入这个内存地址中.
    可使用运算符列表:
    递减 —
    递增 ++
    加法 +
    除法 /
    取余 %
    乘法 *
    减法 -
    按位与 &
    按位或 |
    按位异或 ^
    按位左移 <<
    按位右移 >>

注:本程序不考虑小数点还有负数等计算.

[使用截图]


[GRUB4DOS] 一个很简单的外部命令

发表于

[功能说明]

用于菜单中,可以直接跳到另一个菜单项执行.

注:因为是调用fallback命令的功能

所以如果有使用fallback则使用这个命令之后之前的fallback设置就失效。

注: 这个只是演示一下GRUB4DOS外部命令的编写,在新版GRUB4DOS中已经直接支持

[下载地址]

http://grub4dos-chenall.googlecode.com/files/goto.zip

GRUB4DOS最新版本下载

http://code.google.com/p/grub4dos-chenall/

[使用方法]

例子:

default 1
 timeout 5

title 0.title 0
 pause title 0
#跳到菜单1.
 goto 1

title 1.title 1
 pause title 1
 #如果xxx.xxx文件存在跳到菜单2.
 ls /xxx.xxx &amp;&amp; goto 2

title 2.title 2
 pause title 2

[其它说明]
必须配合grub4dos 0.4.5a 2010-01-21以后的版本使用.
很简单的一个功能。

源码只有两行^_^够简单吧。

  builtin_cmd("fallback",arg,flags);
  return !(errnum = MAX_ERR_NUM);

这里顺便解释一下GRUB4DOS中fallback命令的用法

fallback
fallback NUM 进入无人干预启动模式:如果默认启动入口项出错失败,立即用入口项 NUM 来启动(这里的“入口项”与 default 命令中的“入口项”意义相同)。

可以指定多个入口项比如
fallback 1 2 3 4
这样当启动出错失败就跳到第1个菜单处执行,第一个菜单执行过程中出错失败就继续进入第2个菜单….
如果到第4个菜单还是执行失败则,提示出错信息。

不加任何参数的fallback命令代表取消fallback的设置。

fallback可以用于智能控制GRUB4DOS的菜单的执行过程。

goto命令就是利用了fallback的原理。先指定一个入口,然后再返回一个失败信息。这样菜单指行时就会跳过去了。

[GRUB4DOS] 外部命令FAT(在FAT分区上复制创建文件)

发表于

[使用方法]

下载后解压得到FAT文件复制到GRUB4DOS启动盘的/BOOT/GRUB目录下。

或直接使用全路径比如这个文件放在(hd0,1)/boot目录下。

则(hd0,1)/boot/fat xxxx

[命令参数]

FAT命令的目标对象必须是FAT12/16/32分区的目录和文件,目前只支持8.3格式

  1. FAT mkdir

    创建一个目录,只能一级一级建立目录,不可以同时建立多级目录;

    例子:FAT mkdir (hd1,0)/SRS

  2. FAT copy [/o]

    从源文件拷贝到目标文件,/o 参数用于覆盖操作。

    来源文件可以是任意GRUB4DOS可以访问的路径;

    目标文件必须是FAT分区;并且目标目录必须存在否则会提示错误;

    如果不指定目标文件名,自动使用源文件名;

    例子: fat copy (hd0,0)/file.ext (hd1,0)/file.ext

  3. FAT ren

    文件或目录更名/移动

    例子:

    1、修改当前ROOT分区下的abc.txt文件为abc.ini

    fat ren /abc.txt abc.ini

    2、移动文件,把abc.txt移到test目录下(test目录必须已经存在)

    fat ren /abc.txt /test/abc.txt

  4. FAT del

    删除文件或目录(只能删除空目录同DOS)

    例子:
    删除一个文件
    fat del /abc.txt

    删除一个目录同删除文件一样,但要求这个目录是空目录,你必须先删除这个目录下的文件才能删除这个目录

    注意:不要删除根目录

  5. FAT mkfile size=SIZE|* file

    创建新文件

    SIZE是文件大小,可以直接用*代替,大小等于上一个cat —length=0命令的结果。

    注:cat --length=0 file命令在GRUB4DOS中用于获取指定文件的大小。

  6. FAT mkfs [/A:unit-size]

    格式化磁盘

  7. FAT dir [/a*]

    列出路径下所有文件及目录。

    dir加了按属性显示的参数(同DOS的dir)

    d 目录

    s 系统属性

    r 只性属性

    h 隐藏属性

    - 表示的前辍

    例子:

    dir /ad #只显示目录

    dir /as #只显示有带系统属性的文件或目录

    dir /ads #只显示带系统属性的目录

    dir /a-d #不显示目录。

  • 2012-03-15

    新的版本介绍。

  • 2010-02-09

    1. BUG修正,修改文件复制方式,加快复制的速度.

    2. 修正当内存低于128MB时不能正常使用的问题.

  • 2010-02-05

    1. 修正写文件分配表的BUG(会导致文件读取失败).
  • 2010-01-30

    1. 修正FAT dir命令显示的问题。

    2. 添加了一些帮助信息。fat 或 fat help都可以显示帮助信息。

    3. 优化的创建文件分配表的代码。

  • 2010-01-29

    1. 支持FAT32。
  • 2010-01-13

    修正一个可用簇数计算方法的错误,导致写FAT表错误。

  • 2010-01-12

    预览版。

[下载地址]

源码和程序下载:

http://code.google.com/p/grubutils/

[转] 谈谈草根站长被中国垃圾主机商害惨的经历

发表于

注:现在许多人都有自己的域名,空间了。选择一个好的服务提供商,会为你以后的操作带来更大的方便。请各位站长们注意了,千万别被被那些垃圾服务商们的广告(实际上都是说一套做一套)给骗了。

如果你非要选择以下列到了服务提供商,我只能祝你好运了。

我向来不喜欢太啰嗦,今天可能算是个特别的日子,不知怎么的竟然写起软文来了,就算是发发牢骚,说说自己做站两年来被垃圾主机商害惨了的经历。

06年毕业后,所有的同学都已经找好工作了。我不知怎么想的,或许是不太喜欢受到太多的约束,不太喜欢那种自己想象起来是很枯燥乏味的上班下班的工作,东闯西闯基本上跑遍整过中国之后最后回到了上海,依然很迷茫困惑。

一晃时间又过去一个多月,这段时间基本上就是天天晚上网吧通宵,不是因为沉迷网络,而是想办法,找资料,还有就是晚上网吧通宵便宜,一个通宵10个钟头8块钱,白天一个小时是3块钱,对于快走头无路的我是迫不得已的,最后自然而然的就沉沦到了个人站长的大军中来。

原来域名只要一块钱就可以注册一个了,于是就注册了一大堆,真正做站的就只有一个8cin.cn,因为垃圾主机商的缘故,昨天基本上已经被K的精光了,下面会说到。

这两年来一步一个脚印的走过了,可谓是惨痛经历,这是题外话,个人的事情就不多说了。回正题,谈谈草根站长被中国垃圾主机商害惨的经历。

上面提到的站是自己做的第一个站,导航,不是因为定位的问题,而是个人的技术有限,一个导航站,就html,简单,方便。拼了几天之后出来了几百个html页面,于是就到了找主机的问题。开始做站之前就听说了网上到处是骗子,于是慎之又慎,终于选择了一个可以承受被骗的损失的主机,试用了一段时间,于是拼命的去宣传搞流量,最高的ip也不过几十几百。

没办法了,只能从网站的内容着手,于是日以继夜的学SEO,泡站长论坛。

天天对着电脑,每天的工作不下于16个小时,我曾经有过最高记录是对着电脑整整工作了28个小时,我的一切似乎都在跟生命赛跑。

时间对于每个人来说都是公平的,对我来说却很不公平,转眼间两年多过去了,我依然还是那样过着,没有任何的成绩,更谈不上成功了,更多的是个人淡淡的伤痛的回忆,因为路是自己选的,所以我们不应该去后悔,但是对于身边的人,家里的人的无知的伤害是无法弥补的。

关于做站,我想我还会坚持下去,关于垃圾主机商,真想说几句最恶意的脏话,出于文明的缘故,因此发发牢骚,说说自己的经历便罢!

8cin.cn这是我的第一个站百度最高收录15000左右,最高ip8000左右。

垃圾主机商金豹网络kingbao.net,总会找很多借口很多理由去停你的空间,截止本文发布的时候,基本上已经被百度K光了。

4hei.cn这个站是我从我的一大堆的一元域名里面选出来专门做一个披露垃圾主机商的网站的,后来想想,觉得正义是对的,但太过于正义,对别人就不太好了,毕竟人家也还要混饭吃,后来就转型了,就做一个信息站,对应的垃圾主机商以勒科技 yileidc。com,只要你的站上了300IP,基本上就打不开了,那能做站吗?现在想想,终于理解做好人原来也是那么的难的。

cim8.com创梦吧,终于搞了个.com的米来做站了,本来想做代理域名主机的,但是垃圾主机商太黑了,我怎么可以昧着良心去做骗人的勾当呢?一年来就搁着,对应的主机同8cin.cn。

aliggz.cn阿里哥哥,这是开始做阿里妈妈的时候做的站,最高ip1000左右,百度收录最高1w上下。对应的主机商西部数据xibusoft.com,听说这个主机商是四川人,估计现在已经不在人世了。这应该谅解的,祝你走好。网站数据转移到过很多的空间,现在站还开着的。

w1lw.cn环保网,对应的主机商5944.net,这个怎么垃圾就不多说了,站长都知道。可恨的是日以继夜奋斗了一个星期做出来的数据第二天醒来就被清光了。

ws帮公司做的一个网站,对应的垃圾主机商重庆炫网科技有限公司seawww.com,连数据都要不回来,被公司骂的狗血淋头,谁能知道心里是什么滋味?也害的公司不知道受了多少损失。

92qiche.cn就爱汽车网对应的垃圾主机商唯沃数据vwhost.cn。

92qiche.com.cn就爱汽车网对应的垃圾主机商007boy.com.cn,估计这个是一个小代理,骗点小钱混混。

w2wl.cn对应的垃圾主机商八万互联80000web.com,专门在淘宝上忽悠人的,一年的空间,付钱之后逼着你给他好评,等你好评之后,以后就任由他了,想关你站就关你站。

不是我刻意针对某某垃圾主机商,我只是说我用过的垃圾主机而己,当然这只是占中国垃圾主机商中的冰山一角。真希望正义的站长都站出来还这样行业的一片净土。也希望垃圾主机商不要再昧着良心做人了。

最近做了一个新站,花了几百块买来的域名13288.com.cn,后来听说是以一元拍来的,没话说。但我相信不久之后它的价值绝对会超出这个价值的。

作者原话: 本文完全原创,如果某某LJ主机商觉得我说错,可以随时找我对质,网站上有QQ,当然现在已经不再用你们的主机了。

http://www.xkzzz.com/zz/idc/idcgs/200904/18-13932.html

后注:本人之前在海信科技(炫网)买了域名和空间,看起来是很好,又便宜,实际上用过才后悔。现在只能把空间转出来,不用它们的空间.域名不让转,竟然说要什么手续费XXX大洋(我是穷人花费不起,所以暂时继续被压榨).

忘了他们的网站:.seawww.com .cm.cm

还有哪些不良服务提供商,欢迎大家把你知道的都提出来,免得又上当受骗。

[GRUB4DOS] root 命令介绍

发表于

一、基本概念。

root中文解释就是“根”的意思。
例子:
一个磁盘文件列表如下

    X:\
    x:\test1\file1
    x:\test2\file1
    x:\boot\
    x:\boot\file1
    x:\boot\file2
    x:\boot\file3
    X:\boot\test\file1
    X:\boot\test\file2
    X:\boot\test\file3

其中一开始X:\就是默认root
现在要访问boot\file3 就可以使用 /boot/file3 来访问
默认root是可以改变的比如我需要连续访问x:\boot\test\file1,file2,file3。
这样每次访问都要使用/boot/test/file1这样的路径会比较麻烦,
这时可以设置x:\boot\test为root 这样要访问上面的文件就只要 /file1就可以了

root (hd0,0)/ 设置(hd0,0)/为当前根
root () 在GRUB4DOS中()代表当前根磁盘(root drive)相当于上面的X:
root (hd0,0)/boot/test 设置/boot/为当前根,以后要访问/boot/里面的文件就不要再写/boot/了,
例子访问/boot/test/file1, 使用/test/file1
如果这时要访问非boot目录下的就要使用()/了,例子访问/test1/file1 使用,()/test1/file1

二、命令介绍

  1. 查找定位并设定root

    find --set-root /boot/bcd # 在所有磁盘中查找/BOOT/BCD文件,有找到就把这个磁盘设为root
    find --set-root --ignore-floppies /boot/bcd # 查找时不找软盘设备
    find --set-root --ignore-cd /boot/bcd # 不找光盘设备。
    find --set-root --ignore-floppies --ignore-cd /boot/bcd # 不找光盘和软盘设备
    
  2. 设置默认root
    root (hd0,0)/windows 设置(hd0,0)/windows为root,以后要访问(hd0,0)/windows里面的文件直接使用 /xxx就可以了

  3. 把启动设备设为root
    root bootdev 把当前启动设备设置为ROOT,在某些情况下可用。
    应用:
    从U盘启动,
    find —set-root /boot/bcd 查找文件并设置为root,如果找到了这时的root 就是上面找到的磁盘分区
    root bootdev 返回U盘启动root

  4. 设置当前磁盘的最后一个分区为ROOT
    root endpart 设置当前硬盘的最后一个分区为root,同样应用在特殊场合。用于定位最后分区,如果当前root设备不是硬盘则会出错。
    这个命令在作一键还原的时候可能会比较有用,一般一键还原会装在最后一个分区。使用这个来定位就好了

  5. root 和 rootnoverify的区别
    rootnoverify 不会尝试mount 它所指向的分区,像一些特殊的软盘镜像启动,它里面的文件系统GRUB4DOS不认,这时如果使用root (fd0)就会出错

[Grub4DOS] 系统维护简单应用举例

发表于

以下需要先设置好GRUB4DOS作为引导。

  1. 启动硬盘上的系统(不管硬盘上有没有NTLDR/BOOTMGR文件,只要启动配置文件BOOT.INI/BCD存在即可).
    有时候系统的启动文件被删了就会出现如下提示
    BOOTMGR is missing或者NTLDR is missing
    这时下面的菜单就可以派上用场了,启动进入系统后再把文件复制过去就OK了,当然了也可以不复制这样你的U盘就是启动KEY了,不懂得的人就进不了你的系统了.

    先复制NTLDR(从XP系统中找)还有bootmgr(VISTA以上系统启动文件),到U盘上。

     title 1.启动硬盘上的xp/2k3系统(NTLDR)
     chainloader /NTLDR
     find --set-root --ignore-floppies --ignore-cd /boot.ini
     dd if=()+1 of=(md)0x3E+1
    
     title 2.启动硬盘上的VISTA/WIN7系列系统(BOOTMGR)
     chainloader /BOOTMGR
     find --set-root --ignore-floppies --ignore-cd /boot/bcd
     dd if=()+1 of=(md)0x3e+1
    
  2. 备份恢复硬盘MBR(此功能不熟悉的最好不要用,否则后果自负)
    首先U盘上需要放一个文件比如MBR_BAK,(大小在512字节以上,内容可以随意)作为备份恢复的载体

     title 1.备份硬盘MBR
     checkrange 0x80 read 0x8280 && dd if=(hd1)+1 of=()/MBR_BAK
     checkrange 0x80 read 0x8280 || dd if=(hd0)+1 of=()/MBR_BAK
    
     title 2.恢复硬盘MBR
     checkrange 0x80 read 0x8280 || dd if=()/mbr_bak of=(hd0)+1 count=1
     checkrange 0x80 read 0x8280 && dd if=()/mbr_bak of=(hd1)+1 count=1
    
  3. 加载启动一个IMG镜像,比如MAXDOS.IMG
    把MAXDOS.IMG放在U盘boot目录下

     title MaxDos
     map --mem /boot/maxdos.img (fd0)
     map --hook
     chainloader (fd0)+1
     rootnoverify
    
  4. 从网络启动(PXE),代替网卡的PXE模块。
    首先从http://rom-o-matic.net/下载GPXE或Etherboot的启动镜像
    选择对应的网卡,如果不清楚,可以找一下看有没有all的(所有网卡),或UNDI的
    到Choose ROM output format时选择GRUB KERNEL FORMAT (.zlilo)
    比如文件名为gpxe.zlilo或etherboot.zlilo把它们放到BOOT目录下

     title Gpxe 从网络启动
     kernel /boot/gpxe.zlilo
    
     title Etherboot 从网络启动
     kernel /boot/etherboot.zlilo