文本编辑工具
语法:vim 参数 文件
文本编辑种类:
行编辑器:sed
全屏编辑器:nano,vi,vim – Vi Improved
vim编辑器三大模式
- 编辑模式,
- 输入模式:
- 末行模式: 内置的命令行接口;
模式转换:
编辑模式 — > 输入模式 :
i : 在光标所在处输入
a : 在光标所在处的后方输入
o : 在光标所在处下方打开的一个新行;
I :在光标所在行的行首输入;
A : 在光标所在行的行尾输入;
O : 在光标所在处的上方打开一个新行;
输入模式 –> 编辑模式
ESC
编辑模式–> 末行模式
:
末行模式 –> 编辑模式
ESC
—————————————————————————————————————————–
打开文件 :
+# : 打开文件后,直接让光标处于第#行的行首;
+ : 打开文件后,直接让光标处于最后一行
+/PATTERN :打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首;
关闭文件:
编辑模式
ZZ : 保存并退出:
ZQ:不保存退出;
末行模式
:q 退出
:q! 强制退出,不保存
:wq 保存并退出
: x 保存并退出
: w /PATH/TO/SOMEFILE
移动光标操作
光标跳转
k : 上
h : 左
l :右
j : 下
还可以加数字 #hjkl 可以指定跳多少个字符
单词间调换
w : 跳向下一个单词的词首
e : 当前或后一个单词的词尾
b : 当前或前一个单词的词首
同上可以加数字 #web
行内跳转
^ : 跳转至行首的第一个非空白字符;
0 : 跳转至行首; (绝对行首)
$ : 跳转到行尾 ;
行间跳转
#G :跳转至指定的行;
gg : 跳转至第一行
G: 跳转至最后一行
句间跳转
) : 上一句
( : 下一句
段间跳转
} : 上一段
{ : 下一段
翻屏操作
Ctrl+f : 向文件尾部翻一屏
Ctrl+b : 向文件首部翻一屏
Ctrl+d :向文件尾部翻半屏
Ctrl+u : 向文件首部翻半屏
Enter : 按行向后翻
vim 的编辑命令
删除单个字符
x : 删除光标所在处的字符;
#x: 删除光标所在处起始地向后的#个字符;
xp :交换光标所在处的字符以及后面的字符的位置;
替换命令
r : 替换光标所在处的字符;
R:转换为替换模式,替换当前所有字符
删除命令
d : 删除命令 , 可结合光标跳转字符 , 实现范围删除 ;
d$ , d^ , dw , de , db 前面可加数字
dd : 删除光标所在行的一整行 ; 前面可以加数字
末行模式下删除第几到第几行
.: 表示当前行
$: 表示最后一行
+#: 向下的#行
粘贴命令
小 p : 缓冲区中的内容如果为整行, 则粘贴在当前光标所在行的下方,
否则,粘贴至当前光标所在处的后方‘
大P :粘贴在光标上方
复制命令
y : 复制 , 工作行为类似于d 命令;
y^ y$ y0 ye yw yb
yy : 复制一整行
#yy : 复制#行
撤销操作 :( 最多保存50次撤销操作)
u : 撤销此前的操作
可以支持前面加数字#u
Ctrl+r : 撤销此前的撤销操作
改变命令
编辑模式 –> 输入模式 ; 实现删除操作且切换至输入模式
c# c$ c^ c0 cb ce cw
cc : 删除光标所在的行,并转换为输入模式;
#cc :
可视化模式
v :按字符选定;
V :按行选定 ;
结合编辑命令 : d , c, y
重复执行前一个编辑操作
. :可重复此前的操作
vim 末行模式
内建的命令行接口;
(1) 地址定界
语法:start_pos[,end_pos]
参数
#: 特定的第#行,例如5即第5行;
. : 表示当前行
$ : 最后一行
#,#: 指定行范围,左侧为起始行,右侧为结束行;
#,+# : 指定行范围,左侧为起始绝对编号,右侧为相对左侧行号的偏移量;
例如;3,+7 表示从3行开始向后加7行
% : 表示全文
/pattern/ : 从光标所在处起始,第一次被模式所匹配到的行;
可同编辑命令一同食用,实现编辑操作: d ,y , c
语法
w/PATH/TO/SOMEFILE : 将范围内的文本保存至指定的文件中;
r /PATH/TO/SOMEFILE : 将指定的文件中的文本读取并插入指定位置;
(2) 查找
/PATTERN : 从当前光标所在处向文件尾部查找能够被当前模式匹配到的所有字符串;
?PATTREN : 从当前光标所在处想文件首部查找能够被当前模式匹配到的所有字符串;
支持 : n : 下一个,与命令方向相同;
N : 上一个,与命令方向相反;
(3) 查找替换
s : 末行模式的命令;
语法: s/要查找的内容/替换为的内容/修饰符
要查找的内容:只可用正则表达式;
替换为的内容:不能使用正则表达式,但可引用;
如果要查找的内容部分在模式之中使用了分组符号:在替换为的内容中使用后向引用
直接引用查找模式匹配到的全部文本;要使用&符号;
修饰符
i : 查找时忽略大小写
g : 全局替换 , 意为着一行中如果匹配到多次,则均替换;
可把分隔符 替换为非常用字符:
例如 : s@
s#
vim 的多文件功能
多文件
vim FILE1 FILE2 FILE3
在文件间切换
:next 下一个
:prev 上一个
退出所有文件
:wqall 保存所有文件并退出 ;
:wall 全部保存;
:qall 全部退出;
多窗口
打开文件时候参数
vim -o : 水平分割窗口
vim -O: 垂直分割窗口
在窗口间切换 : Ctrl+w , 上下左右
注意 :单个文件也可以分割为多个窗口进查看:
Ctrl+w , s :水平分割窗口
Ctrl+w , v : 垂直分割窗口
定制vim的工作特性
注意:在末行模式下的设定,仅对当前vim进程有效;
永久有效:
全局 : /etc/vimrc
当前用户; 在自己的家目录下建一个 vimrc文件
1、行号
显示 : set number , 简写为 : set nu
取消显示:set nonumber 简写为 : set nonu
2、括号匹配高亮
匹配: set showmatch , set sm
取消: set nosm
3、自动缩进
启用 : set ai
禁用 : set noai
4、高亮搜索
启用: set hlsearch
禁用: set nohlsearch
5、语法高亮
启用: syntax on
禁用: syntax off
6、忽略字符大小写
启用: set ic
禁用: set noic
获取帮助
:help
: help subject
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95396