vi文本编辑器(一)
来源:互联网 发布:网络兼职被骗如何解决 编辑:程序博客网 时间:2024/06/05 16:42
第二十二章: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://su1216.iteye.com/
http://blog.csdn.net/su1216/
- vi文本编辑器(一)
- 文本编辑器vi的使用(一)
- vi&&vim(一) vi文本编辑器
- Linux学习笔记(一)——文本编辑器vi
- 嵌入式文本编辑器(vi)
- vi文本编辑器(二)
- vi文本编辑器(三)
- 一日一命令-屏幕文本编辑器Vi
- vi编辑器(一)
- 学习vi和vim编辑器(1):vi文本编辑器
- 文本编辑器vi的使用(二)
- 文本编辑器Vi和Vim(1)
- 第五讲、文本编辑器(vim/vi)
- 屏幕文本编辑器Vi
- 屏幕文本编辑器Vi
- 全屏幕文本编辑器vi
- Vim/Vi文本编辑器
- VI文本编辑器
- String.intern()内存分析
- C++开源库 整理 中
- vi文本编辑器(三)
- static
- Javascript实践之时间显示效果
- vi文本编辑器(一)
- SpringBoot—动态修改定时任务cron参数
- HashMap源码解析
- spark 从1.x 转到2.x,编写程序的的一些区别
- (17)内容你浏览器之源面板
- Leetcode 520
- Horde3D——基于C++编写的3D渲染引擎
- android技术篇(二)解锁System分区
- 比较运算符compareTo()、equals()、==之间的区别