我们常用的文本编辑软件有MS WORD,国人的WPS也不逊色,最近也推出了linux版的WPS,而与之相对应的是处理ASCII编码的文本处理工具,最常用的当属vi /vim了,今天我们介绍vim(Visual Interface inproved,可视界面增强版)。
为了练手,我们将一些复杂的文本文件保存到用户家目录下
例如我把cp /etc/httpd/conf/httpd.conf ~cyb/ 我们把httpd的配置文件复制到家目录下练手。
A:vim的命令格式.
vim [options][/path/to/somefile]
例如我们要在当下路径创建一个a.txt的文本,我们使用如下命令
# vim a.txt
B.vim的具体使用
Vim 有三种模式:1,编辑模式(命令行模式)2,输入模式 3,末行模式
首先,我们说明,3者之间是如何转换的
编辑模式---------à输入模式
1, iinstert:在当前光标所在处前面插入
2, aappend:z在当前光标所在行后面插入
3, o,在当前光标所在行的的下方新建一个空白行,并且转为输入模式
4, I 光标跳转至光标所在行首并改为输入模式
5,A 光标跳转至光标所在的行尾处并改为输入模式
6, O光标跳转至光标所在行的上一行,并改为输入模式
输入模式转为编辑模式
按ESC键即可
编辑模式转为末行模式
键入:
末行模式转为编辑模式:
按两次ESC键
光标跳转
字符间的跳转:
K(上)
H(左) L(右)
J(下)
还有 #h 可以调准#个字符,先按住#(例如3)向左跳转3个字符
This is the main Apacheserver configuration file.It containsthe
光标在’s’处,然后按住3,再按h,光标到’T’处
我们来看但此间跳转,
我们以此段话为例
我们来看句间跳转
):下一句,
(:前一句按(
默认以 . 作为分隔符
段落间跳转
{ 上一段
} 下一段
行间跳转
gg 或者 1G 跳转至行首
G,跳转至行尾
#G,跳转至第#行的行首
行内跳转
^ :行首的第一个非空白字符
$ :绝对行尾
0 :绝对行首
我们来看怎么关闭文件
在末行模式下:
:q 退出
:w 保存
:!强制
:wq 保存并退出
:q!强制退出
:x 等价于wq 保存并退出
在编辑模式下
ZZ 保存并退出
qall 退出全部(因为有时候可能会一次打开多个文件去编写)
打开文件
vim –[options][file]
-o 打开多个文件时,上下屏显示
-O 打开多个文件时,左右屏幕显示
左屏幕到右屏幕 ctrl+w
如果不加
我们同时打开多个文件时,需要文本间跳转,在末行模式下,输入以下命令
:next 下一个
:last最后一个
:first 头一个
:prev 前一个
编辑命令
x 删除单个字符
#x:删除#个字符
dw 删除光标所在处的单词
db: 删除光标所在处的前一个单词
de: 删除光标所在处及下个单词
d^: 从行首删除到当前光标所在处
dd 删除所在行
d$ 当前位置删除到光标所在行尾
在末行模式下可以地址定界,使用d命令可以更加灵活
起始地址,结束地址
$:最后一行
.当前光标所在行
%,全文
1,7d ,第一行到第七行全部删除
%d 删除全文
1,$d 从第一行到最后一行全部删除
1,+6d 从第一行,到1+6行全部删除
1, $-2d 从第一行到当前光标所在行数-2所在的行删除
.,+3 d从当前行到以后+3行所有的行全部删除
撤销此前的操作
U, vim会保存最近50次的操作,U命令可逐一撤销此前编辑的操作
我们还可以撤销此前的撤销 ctrl+r
--à(此前一步操作)----à(现在操作)
(撤销u)<--------
-------à(撤销撤销ctrl+r)
复制
yy 复制当前行
#yy 复制当前行所在的向下3行,
y$ 复制光标所在处至行尾
y^ 复制当前行到行首(光标自动跳转到行首)
yw ,复制当前单词
粘贴
p在光标所在处的后方粘贴
P在光标所在出的前方粘贴
vim的options
-# 默认打开后光标所在处为#行的行首
我们介绍翻屏
Ctrl+f 向文件尾部翻一屏
Ctrl+d 向文件首部翻一屏
Ctrl+d 向文件尾部翻半屏
Ctrl+u 向文件首部翻半屏
Vim支持文本搜索
/keyword:从当前光标所在处向文件尾部查找
?keyword:从当前光标所在处向文件首部查找
n:下一个,跟命令查找方向相同
N:前一个,跟命令查找方向相反;
当然可以支持模式搜索,支持正则表达式
窗口属性的定义
Set number,set nu显示行号
查找和替换
:地址定界s/查找模式/替换成的内容/gi
: 地址定界s@查找模式@替换成的内容@gi
1、删除/etc/grub.conf文件中行首的空
%s@^[[:space:]]\{1,\}@@
2、替换/etc/inittab文件中"id:3:initdefault:"一行中的数字为5;
%s@id:3:@id:5:@g
3、删除某文件中开头的#号及后面的空白字符,但要求#号后面必须有空白字符;
%s@^#[[:space:]]\{1,\}@@
4、为指定范围内的行的行首添加#;
1,10s@^@#@g
转载于:https://blog.51cto.com/sysbo/1251588