《Unix & Linux 大学教程》 - 第二十二章(一) 学习笔记

学习笔记,内容基础,适合初学者。

阅读之前,请务必花30秒查看前言说明(在第一、二章前面部分)

《Unix & Linux 大学教程》 - 第一、二章 学习笔记    Unix简介 & 什么是Linux?什么是Unix

《Unix & Linux 大学教程》 - 第三、四章 学习笔记    Unix连接 & 开始使用Unix

《Unix & Linux 大学教程》 - 第五、六章 学习笔记    GUI:图形用户界面 & Unix工作环境

《Unix & Linux 大学教程》 - 第七、八章 学习笔记    Unix键盘使用 & 能够立即使用的程序

《Unix & Linux 大学教程》 - 第九、十章 学习笔记    文档资料:Unix手册与Info & 命令语法

《Unix & Linux 大学教程》 - 第十一、十二章 学习笔记    shell & 使用shell:变量和选项

《Unix & Linux 大学教程》 - 第十三章 学习笔记    使用shell:命令和定制

《Unix & Linux 大学教程》 - 第十四、十五章 学习笔记     使用shell:初始化文件

《Unix & Linux 大学教程》 - 第十六、十七章 学习笔记    过滤器:简介和基本操作
《Unix & Linux 大学教程》 - 第十八章 学习笔记    过滤器:统计和格式化
《Unix & Linux 大学教程》 - 第十九章(一) 学习笔记    过滤器:选取、排序、组合及变换
《Unix & Linux 大学教程》 - 第十九章(二)、第二十章 学习笔记  过滤器:选取、排序、组合及变换 正则表达式

《Unix & Linux 大学教程》 - 第二十一章 学习笔记  显示文件

《Unix & Linux 大学教程》 - 第二十二章(一) 学习笔记  vi文本编辑器(一)

《Unix & Linux 大学教程》 - 第二十二章(二) 学习笔记  vi文本编辑器 (二)

《Unix & Linux 大学教程》 - 第二十二章(三) 学习笔记  vi文本编辑器 (三)

《Unix & Linux 大学教程》 - 第二十三章 学习笔记  Unix文件系统

《Unix & Linux 大学教程》 - 第二十四章 学习笔记  目录操作

《Unix & Linux 大学教程》 - 第二十五章 学习笔记  文件操作

《Unix & Linux 大学教程》 - 第二十六章(一) 学习笔记  进程和作业控制

《Unix & Linux 大学教程》 - 第二十六章(二) 学习笔记  进程和作业控制

《Unix & Linux 大学教程》 - 附录F 时区与24小时制时间

第二十二章:vi文本编辑器(一)

Vim:vi的改进版,许多Linux发行版将vi替换为Vim

区分vi和Vim

两种方法

1.查看vi说明书页:man vi

2.vi,或vi --version,就能查看到信息

启动

vim -C [file...]

-C:以兼容模式运行(compatibility mode)。使得vim尽可能的像vi一样运行

vim -C:以兼容模式运行,建立一个全新的文件

vim -C file:以兼容模式运行,打开一个名为“file”的文件

以只读方式启动vi

vi -R file...

view file...

-R(read-only,只读):以只读方式启动vi

命令模式(command mode)和输入模式(input mode)

模式切换:

命令模式->输入模式:

输入模式->命令模式:<Esc>

启动时,默认处于命令模式

处于命令模式时,按下<Esc>键会发出滴的声音。如果处于命令模式,按两下<Esc>则会发出两次滴滴声;如果处于输入模式,则结果会先切换到命令模式,然后发出一次滴滴声。按两次<Esc>键会保证你现在处于命令模式

使用vi时,存放数据的存储区域称为编辑缓冲区(editing buffer)

系统失败后数据的恢复

vi会时不时的将编辑缓冲区中的内容保存到一个临时文件中。(还好iteye和csdn支持这种自动保存草稿的功能)

通常vi在编辑完成时删除该临时文件,如果vi非正常终止,我们则可利用此文件恢复数据

vi -r file

注:

1.Vim通过将编辑缓冲区保存在一个交换文件(swap file)中,交换文件与正在编辑的文件存储在同一个目录中

2.每当键入200个字符或者4秒没有键入内容时,交换文件会自动更新

3.恢复文件必须使用rm命令删除文件,Vim不会自动完成此操作

4.交换文件的名称包含一个.(点号,隐藏文件),后面跟着原始文件的名称,再后面跟着.swp

5.如果没有删除交换文件,下一次会生成一个稍微有所不同的名称的文件,比如.swo(不知道什么规则,我测试了一次,swp之后会是swo,难道下一次是swn?)

比如执行下面命令

vi test

然后几秒钟后,在当前目录下执行

ls -a

则会看到一个名字为.test.swp的文件

恢复此文件,执行vi -r test即可

停止vi

先切换到命令模式,然后选择下面其中一种方法:

ZZ(保存并退出,vi命令)

:q!<Return>(不保存而退出,ex命令)

vi使用屏幕方式

最下面一行是命令行,其余行用来显示数据

每一个空行用“~”开头,添加新行后,此符号消失

控制字符的输入

^V+控制字符

比如输入^C,则需要按下^V^C;输入^V,则按下^V^V即可

当输入制表符时,vi显示的不是^I而是多个空格(我的系统显示是一块空白)

使用vi和ex命令

vi命令

1.大多数vi命令都是单字母或双字母形式,所以键入命令后,vi不回显命令

2.大多数vi命令都不需要键入return

3.输入了错误的vi命令不会显示错误消息,只会听到滴滴声!

ex命令

1.命令比vi命令长且复杂,在命令行中回显

2.都以:(冒号)开头,并且需要键入return。如果键错命令,可使用下面方法修正

作用
<Backspace>/<Delete>删除键入的最后一个字符
^W删除键入的最后一个单词
^X/^U删除整行
<Esc>取消命令

ps:在一些系统上,当进行纠正时,光标虽然回移,但是字符不消失!

转贴请保留以下链接

本人blog地址

http://blog.csdn.net/su1216/