星期日, 四月 30, 2006

VIM 简易参考

整理自 vimtutor
  • h 光标左移,j 光标下移,k 光标上移,l 光标右移
  • :q! 不保存退出
    :wq 保存并退出
  • x 删除光标处字符
    i 在光标处插入字符
  • dw 从光标处向后删除单词 (de 不包括后继的空格)
    d$ 从光标处向后删除整行
    dd 删除光标所在行
    Usage: [num] d object / d [num] object
  • u 取消上一条命令
    U 恢复当前行至最初状态
    CTRL-R 重做取消的命令
  • p 将上次删除的内容放在光标后
  • r 修改光标处的字符
    R 从光标处向后修改多个字符
  • cw 从光标处往后修改当前单词
    Usage: [num] c object / c [num] object
  • CTRL-G 显示当前行状态
    G 至最后一行 (<行号>G 至某一行)
  • /<字符串> ENTER 搜索
    ?<字符串> ENTER 反向搜索
    n 搜索下一个
    N 搜索上一个
  • % 寻找与光标处括号 ( [ { 相匹配的括号
  • :s/<旧>/<新> 将当前行第一处 old 改为 new
    :s/<旧>/<新>/g 将当前行所有 old 改为 new
    :#,#s/<旧>/<新>/g 将行##之间的 old 改为 new
    :%s/<旧>/<新>/g 将全文的 old 改为 new
  • :!<命令> 执行外部命令
  • :w <文件名> 将当前文件保存在指定的文件中
    :#,# w <文件名> 将行##之间的内容保存在指定的文件中
  • :r <文件名> 把另一文件添加至光标处
  • o 在当前行以下插入一行
    O 在当前行以上插入一行
  • a 在当前光标后插入字符
    A 在当前行后插入字符
  • :set <选项> 设置选项
  • :help [item] 帮助

星期四, 四月 13, 2006

Mission-oriented

最早看介绍 Linux 的文章时,有一句话印象很深刻:学习 Linux,你必须知道自己打算用 Linux 做哪些事,如果目的不是很明确,最好还是放弃尝试 Linux。

后来,我花了好大力气往自己的机子里装 Linux,是那时还算比较新的 Red Hat Linux 9。虽说为安装作了大量的准备,安装过程非常顺利,但是,自己还是不可避免地犯了上面提到的错误。捣鼓得能上网了,会更换壁纸了,我就不知道接下来该做什么了,还是回到熟悉的 Windows 世界吧,“火星”上不好玩的……至于什么是 X Window,GNOME 和 KDE 有什么区别,Shell 怎么用,多用户是什么概念……对不起,你在说什么?

现在,我又开始接触 Linux 了,不论是被逼的还是主观的,我又回来了。有了上一次完完全全彻彻底底的失败,我想,这次至少有两点必须注意。

一是不断的使用,很多操作和概念,只有深入接触后才能加深记忆和理解,没有一定量的实践,什么都别谈。至于 Windows 和 Linux 环境如何调和,这一直是一个十分头疼的问题,也是我上一次尝试失败的一个关键因素,不过现在,这个问题已经用两台电脑很好地解决了,一台电脑上面运行 Linux,我的日常操作环境还是 Windows,需要时,远程登录运行 Linux 的电脑。

第二就是要有明确的目的,我把现在学习 Linux 的方式称作“Mission-oriented”——给自己定一些任务,围绕如何完成一个个任务寻找解决方法、学习与任务有关的知识。到目前为止,我认为这个方法有效而有趣,至少,不会觉得茫然无措了。

已经完成的任务有:
  • SSH 远程登录
  • 动态 IP 与动态域名的自动绑定
  • Tor Router 的配置
  • Apache HTTP Server 的配置
还需要完成的任务有:
  • 网络流量监视
  • 编程环境
  • Subversion Server 的配置
以下任务,完成度与时间成正比:
  • Bash 的操作
  • Vim 的操作
  • Linux Concepts