Chinaunix首页 | 论坛 | 博客
  • 博客访问: 21721
  • 博文数量: 16
  • 博客积分: 745
  • 博客等级: 军士长
  • 技术积分: 190
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-07 23:03
文章分类
文章存档

2010年(16)

我的朋友
最近访客

分类: LINUX

2010-02-26 01:20:16

Unit 9 vim: an advanced text editor

Keyword: vi, vim, function

    vi是一个强大的文本编辑器。vim是vi的增强版本,但主要功能相同。初次的用户包括我都会用office、记事簿、UltraEdit等其他文本编辑器作比较,很可能完全看不出其优胜之处。但当你运用其进行编辑Linux配置文件,编写程序等做类似操作的时候,其强大的查找、块操作、宏以及无需鼠标配合等优点能够大大加速编辑速度。其实各种文本编辑器各有千秋,最重要是用得顺手,用在合适的地方。尽管在Linux已经有大量的文本编辑器,但vi在UNIX体系已经有悠久的历史,导致我们无法忽略其存在。然而,对于初学者,vi的用户界面与使用方法非常不符合WYSIWYG(所见即所得)的原则,甚至认为它比较混乱,无所适从。事实上,vi编辑器是专门为经验丰富的用户设计的,它的界面和使用方法提供了更快的编辑速度(强调一下是编辑速度,不是输入速度)和更强的功能。对于熟知它的用户,vi的许多特性节省了时间和击键次数,并可以完成一些其他编辑器无法完成的功能。
    其实如果真的要完全了解vi的所有功能,大概需要一本挺厚的书才比较全面。你可以想象,几乎所有的按键都是一个以上的功能,而且还有组合键,不同模式的使用,宏等等,没有一两百页是说不清楚的。可RHCE的官方和非官方教材对vi的介绍就仅限于几个常用的命令,我在这儿会稍微多写一些,让大家领略vi的强大。

与其他编辑器最大的不同是vi有三种模式:
  1. 命令模式(command mode):系统默认就是此模式,主要有一些移动、块操作、查找等命令
  2. 插入模式(insert mode):输入、编辑字符
  3. 辅助模式(Ex mode):打开、保存、退出、设定宏等命令

9.1 vi command mode 命令模式

    启动vi后立刻会进入默认的命令模式,一般在其他模式下连按Esc两次就一定会退到命令模式下。以下是命令介绍,请注意大小写。

移动命令
  • w 光标往后一个单词
  • b 光标往前一个单词
  • o 光标移到行首,相当于Home
  • ^ 光标移到行尾,相当于End
  • g 光标移到文章头
  • G 光标移到文件尾,另一个用法是{number}G,如“10G”就跳到第10行
  • ) 光标移到句首
  • ( 光标移到句末
  • } 光标移到段首
  • { 光标移到段末
  • {number}j 如“3j”就向下3行

搜索
  • /string 正向搜索,n继续下一个,N上一个
  • ?string 反向搜索,n继续下一个,N上一个

书签功能
  • 命令(m)可以创建一个书签,如“ma”,会创建一个名字为a的书签
  • “`a”就会回到a的位置
  • “`.”就会回到最后一次修改的位置

复制粘贴删除
  • yy 复制当前行
  • dd 删除(其实是剪切)当前行,另一个用法{number}dd,如“10dd”即删除向下10行
  • yw 复制当前单词
  • dw 删除当前单词,如果光标停在单词的中间,其实只会删除光标到单词末尾的部分
  • x 剪切当前单词
  • y{motion} 复制光标y移动一次的范围,这个功能相当强大,可以大大加快编辑速度。你现在知道为何要这么多的移动方式啦
  • p 在当前光标后粘贴(如果复制的内容是行,就会在下一行粘贴)
  • P 在当前光标前粘贴(如果复制的内容是行,就会在上一行粘贴)

剪贴板功能
命令(")可以定义一个剪贴板,但在定义的同时要赋值。如“"k3x”,就是剪切当前3个字符,并赋值给剪切板k;另一个例子,“"myy”,就是复制当前行,并赋值给剪切板m。

undo,vi的undo功能非常强,其在编辑的时候会把编辑的步骤都记录在/tmp,所以只要不保存,所有的步骤都可以undo
  • u 撤销最后一次变更,可以撤销直至最原始的记录
  • U 撤销本行的所有变更
  • Ctrl+r redo
  • 如果由于系统崩溃导致死机,可以用vi –r file恢复

窗口命令
  • Ctrl+w,s 水平分割为两个窗口
  • Ctrl+w,v 垂直分割为两个窗口
  • Ctrl+w,w(或者方向键)切换窗口

9.2 vi insert mode 插入模式

    在命令模式下按“A,a,I,i,O,o”就会进入插入模式,屏幕右下角显示“ - -INSERT- -”。按Esc退出插入模式,返回命令模式。不解释了,反正我只用a。

9.3 vi Ex mode 辅助模式

    在命令模式下按“:”就会进入辅助模式,屏幕右下角显示“:”。按Esc退出辅助模式,返回命令模式。其命令相当多,我不逐一解释了,就选几个常用的说说
  • e “:e file”表示打开一个新文件
  • set “:set nu” 显示行号。set其实有很多功能,我只用这一个
  • 替换功能,语法上与sed相同 “:1,5s/cat/dog/.”,将一至五行的第一个(默认每行只替换一个,除非加参数g)cat替换成dog;“%s/cat/dog/gi”,全文,不分大小写,将cat替换为dog。

最后要说的是有时间可以执行vimtutor,是一个新手教程,不过全程E文。

阅读(404) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~