1.vi (virtual interface)文本编辑器
文本编辑种类:
行编辑器:sed
全屏编辑器:nano vi
vim vi-improved
其他编辑器:
gedit:简单的图形编辑器
gvim:vim编辑器的图形版本
2.vim用法详解
(1)vim [option]..[file]..
vim +# file 打开文件时光标在第#行行首
vim +/pattern 打开文件后,光标在第一次匹配pattern行的行首
vim + file 打开文件后,光标在最后一行行首
vim -b file 二进制格式打开文件
vim -m file 只读方式打开文件
vim -d file1 file2…比较不同文件
vim -e 直接进入ex模式
文件存在,打开并显示其内容
文件不存在,第一次编辑存盘后创建
实例:以root身份以只读方式打开/etc/shadow文件,且进入后,光标在第一行行首
3.vim的三种模式:
命令模式(默认):移动光标,剪切粘贴文本
插入模式:修改文本
拓展命令模式:保存,退出等
esc退出当前模式
esc esc返回命令模式
4.模式的转换
命令模式——>插入模式
i:在光标所在处输入
I:在光标所在行行首输入
a:在光标所在处后边输入
A:在光标所在行行尾输入
o:在光标所在行的下方打开一个新行
O:在光标所在行上方打开一个新行
插入模式——>命令模式
esc
命令模式——>拓展命令行模式
:
拓展命令行模式——>命令行模式
esc
锁定和解锁 ctrl+s ctrl+q
5.关闭文件的方法
命令行模式下:
ZZ:保存退出
ZQ:不保存退出
末行模式下:
:q不保存,直接退出
:q!强制退出,丢掉做出的修改
:wq保存退出
:x 保存退出
6.拓展模式下可做操作
:q不保存,直接退出
:q!强制退出,丢掉做出的修改
:wq保存退出
:x 保存退出
:w写入磁盘
:r file读取指定文件到当前文件中
:w file把当前文件内容保存到指定文件中
:!command在该模式下执行命令
:r!command 把命令执行结果读入当前文件
实例:在末行模式下执行w命令,并把执行结果读进光标所在行下一行
7.命令行模式下操作说明
(1)光标移动
字符间跳转:
h:左 j:下 k:上 l:上
#command 指定一次跳转的字符数
单词间跳转
w:移动到下一个单词词首
e:移动到当前词尾或下一个单词词尾
b:移动到当前词首或上一个单词词首
#command一次跳转单词数
行首行尾跳转
^:跳转到非空行首
0:跳转到行首
$:跳转到行尾
行间移动
#G:移动到第#行 末行模式下:# 移动到#行
G:移动到最后一行
gg、G:移动到第一行
句间移动
):下一句
(:上一句
段间移动
}:下一段
{:上一段
当前页跳转
H:当前页页首
M:当前页中部
L:当前页尾部
翻屏操作
ctrl+b :向上翻一页
ctrl+f :向下翻一页
ctrl+d:向下翻半页
ctrl+u:向上翻半页
(2)文件内容编辑
字符编辑
x:删除光标处字符
#x:删除光标处开始的第#个字符
xp:交换光标所在字符与其后边字符的位置
~:转换大小写
替换命令
r:替换光标所在字符
R:切换成REPLACE模式
删除命令
d:删除命令,可结合光标跳转字符,实现范围删除
d$:删除到行尾
d^:删除到非空行首
d0:删除到行首
dw:删除到下一个单词词首
de:删除到本单词或下一个单词词尾
db:删除到本单词或上一个单词词首
dd:删除光标所在行
#dd:从光标所在行开始连续删除#行
复制命令(用法类似于d)
y
粘贴命令
p:如果粘贴内容为一整行,粘贴到光标所在行的下一行,否则在光标后边(和复制内容容量没关系)
P(大写):如果粘贴内容为一整行,粘贴到光标所在行的上一行,否则在光标前边
改变命令
c:修改后切换成插入模式
c$:光标所在到行尾删除重新编辑
c^:光标所在到非空行首删除重新编辑
c0:光标到行首删除重新编辑
cw:光标所在到下一个单词词首删除重新编辑
ce:光标所在到本单词词尾或下一个单词词尾删除重新编辑
cb:光标所在到本单词词首或上一个单词词首内容删除重新编辑
#command
cc:删除当前行,并输入新内容
#cc实现多行删除添加新内容(多行删除为一个空行,但可以添加多行内容)
(3) 100iwang[esc] 粘贴wang100次
<start position><command><end position>
command:
d 删除 ;y 复制; gU变大写; gu变小写
例如
0y$:从行头拷贝到行尾
实例:一文件内容如下所示,把第八行小写字母变为大写
发现黄色区域变为大写
(4)撤销更改
u:撤销最近的更改
#u:撤销之前的#次修改
U:撤销光标落在这一行后所作的全部更改
ctrl+r:取消最近的撤销更改
.:重复前边的操作
#.:重复上一个操作#次
8.末行模式下操作说明 (地址界定编辑命令)
(1)地址界定:start-position,end-position
#:第#行
#1,#2:从#1行到#2行
#1,+#2:从#1行开始,再往后数#2个行
如:2,+3表示2到5行
.:当前行
$:最后一行
$-1:倒数第二行
%:全文,相当于“1,$”
/pat1/,/pat2/:从pat1第一次被匹配的行开始,到pat2第一次被匹配的行结束
#,/pat/:从#行开始,到pat第一次被匹配的行结束
/pat/,$:从pat第一次被匹配的行开始,到最后一行
(2)编辑命令
d:删除选定内容
y:复制
w file:保存到指定文件
r file:读入指定文件
(3)查找
/pattern 向文件末尾查找
?pattern 向文件首部查找
n:与命令同方向查找
N:与命令反方向查找
实例:查找文件中的关键字“root”
(4)查找并替换
格式:s/要查找的内容/替换位的内容/修饰符
要查找的内容:可使用模式
替换位的内容:不可使用模式,但可以使用后向引用符\1,\2…;还可以使 用‘&’引用前边查到的整个内容
修饰符:
i:忽略大小写
g:全局替换,默认情况下,仅仅替换第一次出现内容
gc:每次替换前询问
查找替换分隔符可用@、#替换
9.vim的寄存器
有26个有名寄存器和一个无名寄存器,不同会话间共享
用a…z表示有名寄存器,用”“寄存器“表示使用哪个寄存器,放在数字和命令之间
如3"tyy表示复制三行到t寄存器中
未指定,使用无名寄存器
10.以二进制方式打开文件
vim -b binaryfile
末行模式下,利用xxd转换为可读的16进制
:%!xxd
末行模式下,:%!xxd -r转换为2进制
实例:把/bin/cat换为16进制的
11.可视化模块
v :面向字符
V:面向行
ctrl+v面向块
可视化可以与移动键结合使用
突出显示的内容可以被删除,复制,变更,过滤,搜索,替换。。。
12.多文件模式
vim file1 file2 file3…
:next
:prev
:first
:last
:wall
:qall
:wqall
13.使用多窗口
(1)多文件分割
vim -o|-O file1 file2…
-o 水平分割
-O垂直分割
窗口切换:ctrl+w
(2)单文件分割
ctrl+w+s 水平分割
ctrl+w+v 垂直分割
ctrl+w+q 取消相邻窗口
ctrl+w+o 取消去不窗口
:wqall 全部退出
14.(1)配置文件:
/etc/vimrc 全局配置文件
~.vimrc 用户个人配置文件
(2)在vim末行模式下
行号:
set number(显示行号)
set nonumeber(不显示行号)
括号成对匹配
set showmatch 简写set sm
set nosm
高亮搜索
set hlsearch
set nohlsearch
语法高亮
syntax on
syntax off
自动缩进
set ai
set noai
忽略大小写
set ic
set noic
文件格式
fileformat=unix
fileformat=dos
:set 显示当前vim设置参数
:set all: 显示全部配置参数
15.课后作业
(1).复制/etc/profile文件到/tmp下,用查找替换方式删掉/tmp/profile行首的空白字符
图中黄色部分即为删掉部分
(2)复制/etc/rc.d/init.d/functions到/tmp下,用查找替换方式在/tmp/functons文件中以空格为行首的行添加#号
(3)如何设置tab缩进4个字符
修改配置文件.vimrc如下
原创文章,作者:mengzhiqian,如若转载,请注明出处:http://www.178linux.com/32846