目录
- 1. vi与vim
- 1.2 vi 的使用
- 1.1.0 简易执行范例
- 1.1.1 终端查看vim的简单手册
- 1.1.2 案例练习
- 1.1.3 vim的缓存、恢复与打开时的警告信息
1. vi与vim
vim是高级版的vi,vim不但可用不同颜色显示文字内容,还能进行诸如shell脚本、C语言等程序编辑
在Linux系统中使用文本编辑器来编辑Linux参数配置文件是很重要的事情,绝大多数配置文件都以ASCII的纯文本形式(文件记录的是0和1)存在
学习 vim 的原因:
- 所有的UNIX-like系统都会内置vi文本编辑器
- 许多软件的编辑接口都会主动调用vi
- vim具有程序编辑能力,可主动地以字体颜色辨别语法地正确性,方便程序设计
- 程序简单,编辑速度相当快速
vim官网:http://www.vim.org
1.2 vi 的使用
vi 共分为3种模式:
- 一般命令模式(Command mode)
- 编辑模式(Insert mode)
- 命令行模式(Command-line mode)
1.1.0 简易执行范例
使用 vi 建立一个名为 welcome.txt 的文件
1.使用【vim filename】进入一般命令模式
(这里在终端界面)
[dmtsai@study ~] vim welcome.txt
(这里在vim环境)
2.按【i】进入编辑模式,开始编辑文字
3.按下【ESC】键回到一般命令模式
4.进入命令行模式(按[shift]+ : 或 / 或 ?)文件保存并退出vim环境
输入【:wq】即可保存退出【保存(write)并退出(quit)】
保存退出 vim 环境后,回到终端界面
[dmtsai@study ~] ls -l welcome.txt
-rw-r--r-- 1 dmtsai dmtsai 10 Feb 11 11:42 welcome.txt
1.1.1 终端查看vim的简单手册
vim学习书籍推荐:http://iccf-holland.org/click5.html
[dmtsai@study ~] vimtutor #查看vim的简单入门
按【shift】+【:】后输入 help user-manual会出现VIM USER MANUAL
1.1.2 案例练习
使用 man_db.conf 来做练习
1.请在【/tmp】这个目录下建立一个名为 vimtest 的目录
[dmtsai@study ~] mkdir /tmp/vimtest
2.进入 vimtest 目录中
[dmtsai@study ~] cd /tmp/vimtest
3.将【/etc/man_db.conf】复制到本目录( . )下
[dmtsai@study vimtest] cp /etc/man_db.conf .
4.使用vim打开本目录下的 man_db.conf 这个文件
(进入vim环境)
[dmtsai@study vimtest] vim man_db.conf
5.在vim中设置行号
按【shift】+【:】后输入set nu 则会显示行号
6.移动到第43行,向右移动59个字符
直接按【43G】,再按下【59→】
7.移动到第1行,并向下查找一下 “gzip” 字符串
直接按【1G】或【gg】后,直接输入【/gzip】
8.将第29到第41行之间的【小写man字符】改为【大写MAN字符】,并一个一个确定是否需要修改?如果在确定过程中一直按【y】结果会在最后一行出现改变了几个man?
【shift】+【:】后直接输入【29,41s/man/MAN/gc】即可,若一直按【y】最终会出现【13次替换,共13行】的说明
9.修改完后,需要全部恢复为原内容,有哪些方法?
- 一直按【u】恢复到原始状态
- 【shift】+【:】后输入【q!】(q!为强制退出)之后,再重新读取一次该文件
10.复制第66行到第71行这6行内容,并且粘贴到最后一行
直接输入【66G】然后再【6yy】之后,最后一行会出现【复制了6行】的说明字样,按下【G】到最后一行,再按【p】粘贴6行
11.删除第113行到128行之间的数据
因为第113行到128行之间共16行,因此【113G】→【16dd】就能删除16行
12.将此文件man_db.conf 另存为一个 文件名为 man.test.config 的文件
【shift】+【:】后直接输入【w man.test.config】
13.去到第25行,并且删除15个字符
直接输入【25G】后,再输入【15x】即可删除15个字符
14.在第1行新增1行,该内容输入内容【I’m an idiot】
直接输入【1G】去到第一行,然后按下大写【O】新增一行且在插入模式;输入内容【I’m an idiot】后,按下【ESC】回到一般命令模式
15.保存退出
【shift】+【:】后直接输入【wq】
1.1.3 vim的缓存、恢复与打开时的警告信息
当你的系统因某些原因而导致类似宕机的情况,可以通过某些机制来恢复未被保存的数据
vim就是通过缓存来恢复
以【/tmp/vitest/man_db.conf】这个配置文件为例:
[root@study ~] cd /tmp/vitest
[root@study vitest] vim man_db.conf
#进入vim界面,然后按下【ctrl】+z 使得vim进入后台运行
[root@study vitest] ls -al #列出目录vitest中的文件
...
# 含有文件man_db.conf和缓存文件man_db.conf.swp
...
[root@study vitest] kill -9 %1 # 杀死进程,模拟vim停止工作 %1表示目前这个界面占整体文件的1%
[root@study vitest] ls -al .man_db.conf.swp
-rw-r--r-- 1 dmtsai dmtsai 16384 Jul 6 23:54 .man_db.conf.swp #缓存文件依然存在
[root@study vitest] vim man_db.conf
E352: ATTENTION #错误代码
...
...
Swap file ".man_db.conf.swp" already exists!
(O)pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort
- ( O )pen Read-Only:打开缓存文件为只读文件
- ( E )dit anyway:编辑缓存文件,并不会加载缓存的内容
- ( R )ecover:加载缓存内容,用于恢复之前未保存的工作,保存退出vim后手动删除缓存
- ( D )elete it:确定缓存无用,打开文件前将其删除
- ( Q )uit:退出vim
- ( A )bort:忽略此次编辑操作