vi与vim

目录

  • 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)

vi与vim_第1张图片

1.1.0 简易执行范例

使用 vi 建立一个名为 welcome.txt 的文件

1.使用【vim filename】进入一般命令模式
(这里在终端界面)

[dmtsai@study ~] vim welcome.txt

(这里在vim环境)
vi与vim_第2张图片
vi与vim_第3张图片
2.按【i】进入编辑模式,开始编辑文字

vi与vim_第4张图片

vi与vim_第5张图片

3.按下【ESC】键回到一般命令模式
vi与vim_第6张图片
4.进入命令行模式(按[shift]+ : 或 / 或 ?)文件保存并退出vim环境
输入【:wq】即可保存退出【保存(write)并退出(quit)】

vi与vim_第7张图片
保存退出 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的简单入门

vi与vim_第8张图片
按【shift】+【:】后输入 help user-manual会出现VIM USER MANUAL
vi与vim_第9张图片

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 /tmp/vimtest] cp /etc/man_db.conf .

4.使用vim打开本目录下的 man_db.conf 这个文件
(进入vim环境)

[dmtsai@study /tmp/vimtest] vim man_db.conf

5.在vim中设置行号

按【shift】+【:】后输入set nu 则会显示行号
vi与vim_第10张图片


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就是通过缓存来恢复
vi与vim_第11张图片
以【/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:编辑缓存文件,并不会加载缓存的内容
  • ®ecover:加载缓存内容,用于恢复之前未保存的工作,保存退出vim后手动删除缓存
  • (D)elete it:确定缓存无用,打开文件前将其删除
  • (Q)uit:退出vim
  • (A)bort:忽略此次编辑操作

你可能感兴趣的:(学习鸟哥的Linux私房菜,linux)