第三部分 第10章 vi 文字处理器
1.vi与vim
vi是通用文字处理器,vim是vi的高级版本,一般用于程序开发
2.vi的使用
vi 分为三种模式
一般模式:可以“上下左右,删除字符,删除整行,复制,粘贴”
但是不能编辑
编辑模式:按下“i,I,o,O,a,A,r,R”等字母之后才会进入编辑模式
按下“Esc”才会返回一般模式
命令行命令模式:在一般模式下输入“:或/或?”就可以将光标移动到最下面
,在这里可以搜索数据,而且读取,存盘,大量删除字符,离开vi,显示行号
等操作都是在此模式中实现的。
:wq 保存并退出
:wq!强制写入,但是需要“你的权限可以改变”
/word :从光标开始,向下搜索一个“word”
?word :从光标开始,向上搜索名为word的字符串
n(数字):向下移动n行
n :向下重复搜索这一动作
N :向上重复搜索这一动作
:nl 搜索替换
:l
:x X向前向后删除一个字符
:dd 删除一整行
:ndd
yy复制光标所在的那一行
nyy复制光标所在的向下n行
:w 存盘
:W! 强制写入该文件
:q
:q!
:wq 存储后离开
:e! 还原到最原始的状态
ZZ 更改了,不存储离开,若更改了,则存储了离开
:w [filename] 将编辑的数据存储成另一个文件
:r [filename] 读取另一个文件的哦数据
练习题:
1.在/tmp目录下建立一个名为vitest的目录
mkdir /tmp/vitest
2.进入vitest目录
cd /tmp/vitest
3.将/etc/man.config复制到本目录(或下载http://...../man.config)
cp /etc/man.config .
或 wget -c http://.../man.config -O man1.config
4.使用vi 打开本目录下的man.config
vi man.config
5.在vi中设置行号
:set nu
6.移动到58行,向右移动40个字符
58G,40-
7.移动到第一行,并向下搜索“bzip2”
1G,/bzip2
8.将50-100行之间man改为MAN,并一个一个确认
:50,100s/man/MAN/gc (confirm)
9.修改完后反悔
一直按u,或::e! :q!
10.要复制51-60的内容,并粘贴到最后一行
51G 10yy, G, p
11.删除11-30行之间的20行
11G,20dd
12.将这个文件另存为man.test.config
:w man.test.config
13.到29行,并且删除15个字符
29G,15x
14.存储后离开
:wq!
3.文件的恢复与暂存盘
vi会存一个临时文件,是一个隐藏文件,如/tmp/passwd 会有一个临时文件
/tmp/.passwd.swp ,未正常关闭时,打开文件时会提示是否恢复,选择恢复
可以更新文件。
4.vim的附加功能
vim具有颜色显示功能,并且可以支持许多程序语法,在使用vim的时候,
vim可以帮你直接进行“程序调试(debug)”
vim具有几个特点:
1)最下面一行说明这个文件的特点,
2)1,1表示当前贯标在第一行第一个字符上
3) Top表示,这个画面是整个文件的最上方
5.块选择(Visual Block)
Ctrl+v[V]开始块选择,y进行复制,p进行粘贴
多窗口功能,文件对照功能,:sp{filename}
Ctrl+w+j/k/q 分别移动到下个窗口,上个窗口,离开当前窗口
5.vim 环境设置
1)vim会将曾经做过的行为记录下来,~/.viminfo 每个人的home目录都有
这个文件,自动产生
2)环境设置,太多了,常见的如下
:set nu 行号
: set hlsearch 搜索反白
: set autoindent 自动缩进
: set ruler 右下角说明
:set backup 是否自动备份
:set showmode 是否有下贱显示“INSERT”
:set backspace(01(刚输入的)2(任意字符))
:set all显示所有环境参数
:syntax (on/off)
6.使用vi进行练习
1) 设置man page搜索路径
vi /etc/man.config
在74行的地方加上 :MANPATH /opt/。。。
2)让系统每天更新数据库,但是不要更新/var/cache
vi /etc/updatedb.conf
DAILY_UPDATE=yes
PRUNEPATHS="...... /var/cache"
3)开机默认载入 /dev/hdb5
vi /etc/fstab
加入
/dev/hdb5 /disk2 ext3 default 2 2
7.DOS 与 Linux的换行符
Dos脚本转化到Linux,dos2unix [-kn] file [newfile]
8.习题
1)我要在某个文件第34行向右移动15个字符,一般怎么使用
答:在一般模式下,34G,15-
2) 在vi中,pagedown 见可以用什么组合键来替换
答:Ctrl + f, ctrl + b
3)如何进入vi文件的页首和页尾
答:gg和G
4)如何在一行中,移动到行首及行尾
答:0和$
5)vi中,r有什么功能
答:替换当前光标所在的那个字符
6)如何将当前页面另存为新文件
答:w filename
7)在linux中最常用的文字编辑器为vi,如何进入编辑模式
答:vi filename
8) 如何由编辑模式跳回一般模式
答:esc
9)如果上下左右键无法使用时,如何在一般模式移动光标
答:hjkl 左上下右
10) 如果[pageup][Pagedown]在一般模式无法使用时,如何向前或向后
翻一页
答:[Ctrl]+f, [Ctrl]+b
11) 如何移到本文件的最后一行,第一行,本行的第一个字符,
最后一个字符
答:
1G,gg本文件第一行,G最后一行
H,M,L :本屏幕第一行,中间行,最后一行
0 : 本行第一个字符
$ :本行最后一个字符
12) 如何删除一行 n行,及一个字符
答:dd删除当前行,ndd删除n行,x删除后一个字符,X删除前一个字符
nx删除后面连续n个字符
13) 如何复制一行,n行并粘贴
答:yy复制当前行,nyy复制n行,p粘贴
14) 如何搜索string字符串
答:/string
15) 如何将word1换成word2,当需要用户确认机制时,又该如何做
答:: 1,$s/word1/word2/gc
16) 如何读取一个文件filename进入当前文件
答::r filename
17) 如何另存新文件为newfilename
答::w newfilename
18) 如何存档,离开,存档后离开,强制存档后离开
答::w, :q, :wq, :wq!
19) 在vi中做了很多的编辑操作后,想还原成原来的文件内容,
应该怎么进行
答:一直按u,或者e!,不存盘后再次打开
20) 在vi程序中,不想离开vi,但想执行ls/home命令,vi有什么
附加的功能可以实现这个目的
答::!ls /home
21) 如何设置与取消行号
答::set nu :set nonu
第三部分 第10章 vi 文字处理器
最新推荐文章于 2022-09-17 15:54:13 发布