第五章(vi编辑器的高级用法)
1.更多有关vi编辑器的知识
启动vi编辑器
方式1:vi [Return]
:w myfile [Return]
将缓冲区内容保存到myfile中
:wq myfile [Return]
将缓冲区内容保存到myfile中,离开vi
方式2:vi myfile [Return]
:w [Return]
将缓冲区内容保存到myfile中
:w yourfile [Return]
将缓冲区内容保存到yourfile中,当前文件仍然为myfile图
:wq [Return]
编辑多个文件
指定文件副本插入当前文件光标下一行
r 文件名
将文件的一部分写到另一一个文件
[a,b] w 文件名
重排文本
删除、复制、移动和修改操作命令键
按键 | 功能 |
---|---|
d | 删除指定位置的文本,并保存到缓冲区 |
y | 复制指定位置的文本到缓冲区 |
P | 将指定缓冲区的内容放到当前光标位置之上 |
p | 将指定缓冲区的内容放到当前光标位置之下 |
C | 删除文本并使vi进入文本输入模式 |
移动行:dd,p或P
删除当前行,将被删除行放置到光标之下
dd+p
被删除文本保存在临时缓冲区中,直到被下一一个复制或删除操作文本取代
复制行:yy,p或P
复制当前行,将被复制行放到光标之下
yy+ p
被复制文本保存在临时缓冲区中
vi操作符的域
使用删除操作符和域控制键
文本块 :一个字符个单词、一行、 一句或其他指定字符集
域: vi中文本的范围
基本vi命令局限:只在一个块上操作
组合使用vi命令和域控制键可以更好控制编辑任务
命令格式 命令=操作符+域控制键
部分vi域控制键
按键 | 功能 |
---|---|
$ | 光标位置开始到当前行尾 |
0 | 光标位置前到当前行首 |
e或w | 光标位置开始到当前字(词)尾 |
b | 光标位置前到当前字(词)首 |
使用删除操作符和域控制键
d $
前
后
d 0
d w
2 d w
d e
d b
使用复制操作符合域控制键
2.
使用修改操作符和域控制键
C+域:先将指定域文本清除, 然后进入文本编辑模式
光标定位键
屏幕一次显示行有限, 超过行数需要光标滚动文件
(1)使用翻页操作符翻页
向下翻半页
Ctrl d(down)
向上翻半页
Ctrl u(up)
向下翻一页
Ctrl f(forward)
向上翻一页
Ctrl b(backward)
大范围移动光标:使用G命令
n为行号,光标移动到第n行
命令格式 n+ G
10G
光标移动到第10行
G
G,光标移动到文件尾
定位到某行:n(n为行号,光标移动到第n行)
移动到首行:1或者1G或者gg
移动到尾行:G
获得当前行号:ctrl + g(在vi底部显示行信息)
定制vi编辑器
选项的格式
set命令 设置选项
布尔选项 类似开关,可打开关闭
设定: set X 取消: set noX
等号前后无空格
数字式选项:接受数字值,数字值范围因选项而异
赋值: set X=number
串选项:类似数字选择接受字符串值
赋值: set X=string
设置vi环境
number 布尔选项
nu 显示行号
默认值 nonu
行号不是文件内容的一部分
set nu
缩写和宏
ab(缩写) map(宏) 输入更加简单快捷
缩写
ab命令语法:
ab 缩写字符串 被缩写字符串
缩写字符串的使用:缩写字符串+空格
unab 取消缩写
unab 缩写字符串
缩写在命令模式下设定:在文本输入模式下使用
缩写设置是临时的,只在当前编辑会话中起作用
宏
宏操作符map:使用单个键代表命令键序列
map语法
map 单个键 命令键序列
map高级应用:将Enter与Esc放到宏命令序列
Ctrl V Enter 将Enter键放到宏命令序列 ^M
Ctrl V Esc 将Esc键放到宏命令序列 ^[
unmap 取消宏
语法
unmap 单个键
vi中创建宏是临时的,只在当前会话中使用
在命令模式下进行宏的指定和使用
.vimc文件
vi编辑器中使用命令设置的所有选项都是临时的
退出vi即失效
在用户主目录中创建vimrc配置文件,设置选项
在.vimrc中设置选项后,可使每次启动时选项保持不变,避免手动重复设置
其他的vi命令
运行shell命令
方法
:! command
将命令执行结果加入文本中
:r !command
行连接
连接两行
j
搜索与替换
g后再加c为确认后再替换