定义:文本(纯文本信息,必须是不加任何修饰的文本信息)编辑器
文本编辑器种类:
行文本编辑器 :sed
全屏文本编辑器:nano 、vim
VI全称:visual interface ,vim为vi的增强版,为vi improve
vim(vi Improve)用法
vim 选项 文件:打开的文件不存在,自动创建新文件,存在直接打开文件
vim文本编辑器三种模式(千万弄清三种模式哦,不要混乱):
命令模式:
输入模式:
扩展编辑模式:
系统内置的命令行接口
三种模式之间的转换:
命令模式:默认模式
命令模式——>文输入模式
i:insert ,光标所在处向前输入
I:光标所在行的行首输入
a:append,光标所在处的后方转换为输入
A:光标所在行的行尾输入
o:在光标所在处下方直接打开一行,光标处于行首
O:光标坐在处的上方打开一个新行
从输入模式|扩展模式———>命令模式:按ESC模式
从命令模式———>扩展模式:按:建
小白们注意啦!:不能从插入模式直接到扩展命令模式
文件锁定和解锁:ctrl+s和ctrl+q
vim 打开文档
+ #:打开文件后,让光标处于第#行的行首
+/pattern模式(正则表达式):打开文件后,直接让光标处于第一个匹配字符的行首
+:将光标自动处于文件行尾
-m:打开的文件只有读权限,不能进行编辑保存
-b:二进制方式打开文件
-d:打开多个文件
六种模式举例:
一、让光标处于第五行:
二、 将光标处于匹配模式的行:
三、自动将光标处于行尾
四、打开的文件只有读权限,对其进行编辑将不能进行保存
五、以二进制方式打开文件
六、打开多个文件(会标注两个文件不同的地方)
vim关闭文档:
扩展模式下:
:q退出,文件未做过任何操作
:q!不保存退出
:wq保存退出
:x保存退出
:w/路径 将文件保存到另外文件中
命令模式下:
输入ZZ(两个大Z):保存退出
输入ZQ:不保存退出
vim扩展操作:
w:将范围内的文本保存到指定的文件中
r路径:将指定的文件中的文本读出并插入到指定位置
! 命令:跳出文件扩展模式,执行其他命令,命令结束按Enter回到编辑模式
r!命令:将执行命令的结果写入文件中
四种用法实例
一、编辑/etc/issue文件,添加主机名和时间,和当前登录终端提示,并将其另存到/testdir/issue.bak中.
注意:当用:w 将文件保存到另一个文件时,如果文件不存在会创建新文件,存在需要用w! 强制保存,并将原文件覆盖
二、将文件/etc/issue文件,添加到/testdir/fstab文件的第5行
三、当正在编辑文件时,突然需要查看ip地址怎么办:
四:将/root下所有的文件列表添加到/testdir/f1 文件中
打开f1在扩展模式下输入r!ls /root
命令模式下的光标跳转:
字符间跳转
h:左
l:右
j: 下
k:上
先输入数字n,在输入(h| l | j |k):实现光标向(左|右|下|上)跳转n个字符
单词间跳转
w:跳到下一个单词的词首
b:当前或前一个单词的词首(当光标位于当前单词的词尾时会跳到当前单词的词首)
e:当前或后一个单词的词尾
先输入数字n,在输入(w| b| e):实现光标向(后|前|后)跳转n个单词
命令模式下翻屏:
ctrl+f:向文件尾部翻一屏
ctrl+b:向文件首部翻一屏
ctrl+d:向文件尾部翻半屏
ctrl+u:向文件首部翻半屏
enter:一行一行的后翻
命令模式操作:
字符编辑:
x:删除光标所在处的字符
#x:删除光标所在处的启始#个字符
xp:交换光标坐在处的字符,以及后面的字符的位置
~:大小写转换
删除操作:
d:删除命令,可结合光标跳转字符实现范围删除;
d$:删除光标处到行尾的内容
d^:删除光标的内容一直到行首
dw:以单词为单位向后删除
de:以单词为单位向后删除
db:以单词为单位向前删除
输入数字n,在输入(dw|de|db),分别为(向后|向后|向前)删除n个单词
dd:删除整行
3dd:删除光标所在的行起始的共3行;删除的内容会保留到缓冲区中,刚刚删除的内容可以黏贴
黏贴命令:
p:缓冲区中的内容如果为整行或多个,则粘贴在当前光标所在行的下方,否则粘贴在当前光标的后方
P:缓冲区中的内容如果为整行或多个,则粘贴在当前光标所在行的上方,否则粘贴在当前光标的前方
复制命令(yank):
y:复制,工作行为相似与d命令
yy复制整行
改变命令(change ,c);
与d模式相同,但是删除完之后将编辑模式转换成输入模式
cc:删除光标所在处的行并转化成输入模式
命令模式操作文本:
编辑模式下输入数字n—>i |a|o|I|A|O—>输入内容—>enter:会将输入的内容重复n次添加到文件中
开始位置 —>命令(y[复制],d[删除],gU[大写],gu[变小写])—>结束位置
撤销操作(undo u)
u:撤销 此前操作
#u:
撤销此前的撤销:ctrl
重复执行 前一个编辑操作 .(n.重复前面操作n次)
扩展模式
vim扩展操作:
w:将范围内的文本保存到指定的文件中
r路径:将指定的文件中的文本读出并插入到指定位置
! 命令:跳出文件扩展模式,执行其他命令,命令结束按Enter回到编辑模式
r!命令:将执行命令的结果写入文件中
四种用法实例
一、编辑/etc/issue文件,添加主机名和时间,和当前登录终端提示,并将其另存到/testdir/issue.bak中.
注意:当用:w 将文件保存到另一个文件时,如果文件不存在会创建新文件,存在需要用w! 强制保存,并将原文件覆盖
二、将文件/etc/issue文件,添加到/testdir/fstab文件的第5行
三、当正在编辑文件时,突然需要查看ip地址怎么办:
四:将/root下所有的文件列表添加到/testdir/f1 文件中
打开f1在扩展模式下输入r!ls /root
地址界定:
:start_pos,end_pos
n:特定的第n行
n,+m:指定行范围,从n行,到n+m行
.:代表当前行
$:表示最后一行
.,$-1:当前行到倒数第二行
/pattern/从光标所在位置第一次被模式所匹配到的行
/pat1/,/pat2/
从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束
n,/pat/
/pat/,$
使用方式:后跟一个编辑命令d、y等
w file: 将范围内的行另存至指定文件中
r file:在指定位置插入指定文件中的所有内容
查找
/PATTERN:从当前光标所在处向文件尾部查找
?PATTERN:从当前光标所在处向文件首部查找
n:与命令同方向
N:与命令反方向
举例:查找/etc/fstab文件中含有UUID的行
扩展模式下查找替换:
三种格式:s/查找内容/替换内容/修饰符、s@@@、s###
查找内容:可以使用pattern模式
替换内容:不可以是用Pattern ,但是可以使用&和\1,&引用前面查找的所有内容,\1后向引用。
修饰符:i忽略大小写,g全局替换,默认情况下只替换行的第一个,c替换前出现提示信息
举例:
1、 复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符:
2、复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首添加一个#号
可视化模块
v:面向字符,选中可以以字符为单位
V:面向行,也就是选中以行为单位
多文件模式
vim file1 file2 file3 …..
:next 下一个
: prev 前一个
:first 第一个
:last 最后一个
:wall 保存所有
: qall 退出所有
: wqall
多窗口
多文件分割
vim – o| – O FILE1 FILE2 …
– o: 水平分割
– O: 垂直分割
在窗口间切换: Ctrl+w, 再按箭头键(arrow)进行窗口切换
单文件窗口分割:
Ctrl+w,s: split, 水平分割
Ctrl+w,v: vertical, 垂直分割
ctrl+w,q:取消相邻窗口
ctrl+w,o:取消全部窗口
: wqall 退出
定制vim
配置文件
全局: /etc/vimrc
个人: ~/. vimrc (家目录下无此文件需要自己填加)
扩展模式:当前vim进程有效
(1) 行号
显示: set number, 简写为set nu
取消显示: set nonumber, 简写为set nonu
(3) 自动缩进
启用: set ai
禁用: set noai
(4) 高亮搜索
启用: set hlsearch
禁用: set nohlsearch
(5) 语法高亮
启用: syntax on
禁用: syntax off
(6) 忽略字符的大小写
启用: set ic
不忽略: set noic
(7) 文件格式
启用: fileformat=unix
不忽略: fileformat=dos
(8) 设置文本宽度
:set textwidth=65 (vim only)
:set wrapmargin=15
vim帮助手册:
man help
输入:vimtutor命令
扩展模式下输入:help
:help option- list
:set or :set all
原创文章,作者:wangnannan,如若转载,请注明出处:http://www.178linux.com/30468