一、文本编辑器
1、文本编辑器类别
全屏文本编辑器:
nano
vi,vim
emacs
行文本编辑器:
sed
2、vim介绍
vim是功能增强版的vi
模式化的编辑器: #有多种不同模式
编辑模式 也叫命令模式
输入模式 也叫插入模式
末行模式
vim有许多内置命令,此模式即为其命令的接口
二、vim的使用
1、打开文件
vim [OPTIONS] [FILE]...
+N 快速定位至第N行
+ 快速定位至最后一行
+/PATTERN 快速定位至被模式第一次匹配的行
2、模式间转换
默认为编辑模式--->输入模式:
i:insert,在当前光标处,转换为输入模式
I:在当前光标所在行行首,转换为输入模式
a:append,在当前光标所在处字符后方,转为为输入模式
A:在当前光标所在行行尾,转换为输入模式
o:在当前光标所在行的下方新建一个空白行,并转换为输入模式
O:在当前光标所在行的上方新建一个空白行,并转换为输入模式
输入模式--->编辑模式:按ESC键
编辑模式--->末行模式: :
末行模式--->编辑模式:按ESC键
3、退出vim
末行模式:
q 退出
w 另存为 w /tmp/test
q! 强制退出,不保存编辑的内容直接退出
wq 保存退出
x 保存退出
wq!或x! 强制保存退出
编辑模式:
ZZ 保存退出
三、编辑模式
1、光标移动
字符间移动:
k
h l
j
hjkl:左下上右
N[h,j,k,l]:一次移动N个字符间距
单词间移动:
w 下一个单词的词首
e 当前或下一个单词的词尾
b 当前或前一个单词的词首
N[w,e,b]:一次跳N个单词
行首行尾间跳转:
0:跳转至绝对行首
^:行首的第一个非空白字符
$:跳转绝对行尾
行间快速跳转:
#G 第#行 末行模式:# 跳转至第#行
G 文尾
gg 文首
末行模式下直接输入行号就可以直接跳到该行
句间移动:
) 下一个句子的句首
( 前一个句子的句首
段落间移动:
} 下一段段首
{ 上一段段首
2、编辑操作
x:删除光标所在出字符
Nx:删除光标所在处及向后的N个字符
d:删除 在末行模式中也可以用来删除指定的行
dd:删除光标所在行
Ndd:删除光标所在行及下的共N行,
与跳转命令一同使用:
d$:删除光标所在处至行尾的内容, 相当于D,ND删除光标所在处的行及下的共N行,但不包括当前光标所在处至行首的内容
d0,d^
[N]dw,[N]db,[N]de,
r:替换命令
R:开始替换光标之后的字符,知道退出按ESC推出该模式
p:粘贴,
行级别:
p:粘贴在光标所在行下方
P(大写):粘贴在光标所在行上方
小于行级别:
p:粘贴在光标所在出的后方
P(大写):粘贴在光标所在出的前方
y:复制命令 在末行模式中也可以用来复制指定的行
yy:删除光标所在行 相当于Y
Nyy:删除光标所在行及下的共N行
与跳转命令一同使用:
y$:删除光标所在处至行尾的内容
y0,y^
yw,yb,ye
c:修改 删除后进入输入模式,和d的用法一样
C,cc,c$,c^,c0,[N]cw,[N]cb,[N]ce
u:撤销
Nu:一次撤销最近的N次操作 #vim最多保存前50次的操作
ctrl+r:撤销此前的撤销
. 重复前一条命令
3、可试化模式
v:选择光标所在行的光标左侧的内容
V:光标所在行整行都被选定
4、编辑模式下的翻屏命令
Ctrl+f:向文件尾部翻一屏
Ctrl+b:向文件首部翻一屏
Ctrl+d:向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏
四、末行模式
1、文本查找
支持正则表达式
/PATTERN 向尾部进行 n,N
?PATTERN 向首部进行 n,N
2、地址定界
有部分内置命令用于编辑操作,此时可使用地址定界法进行
startline[,endline]
#:第#行
.:当前行
$:最后一行
%:全文
相对定界:
+#:从指定位置向下#个行 10,+5
-#:从指定位置向上#个行 10,-5
3、文本替换
s
s/要查找的内容/替换为的内容[/修饰符] #默认区分大小写,不全局匹配
/:用作分隔符,用于分割“要查找的内容”和“替换为的内容”,
此分隔符可使用其他符号如:@,#。
要查找的内容,可使用正则表达式,可以在后面“替换为的内容”部分使用“&”全部引用
替换为的内容,不可使用正则表达式,一般为正常文本但可以使用正则表达式中\1,\2...保存的内容
修饰符:
i:查找时不区分字符大小写
g:全局替换,vim默认只替换某行第一次匹配到的内容
注意:使用s替换如果不定界那没只在当前行查找,所以先定界再替换,
4、在vi中执行命令和导入文件
在末行模式下:
导入文件: r FILENAME
执行命令: !COMMAND
导入执行命令的结果: r!COMMAND
5、定义快捷键和替换
在末行模式下:
替换:ab mymail magedu@qq.com #文中后面所写的所有mymail将被替换为mageedu@qq.com
快捷键: map CRTL+p I#
五、多文件模式
vim [OPTIN]... [FILE]...
多文件:
末行模式:
next(下1个文件),prev(上1个),first,last
保存并退出所有文件:
wqall,wall,qall
多窗口:
-o:上下分割窗口
-O:左右分割窗口
Ctrl+w再ARROW(上下左右的箭头)
注意:单个文件也可以分割为多个窗口进行查看
Ctrl+w再按s 上下分割
Ctrl+w再按v 左右分割
六、界面显示特性
1、末行模式
显示行号: #默认关闭
set number #简写set nu
set nonumber #简写set nonu
语法高亮: #默认开启
syntax on
syntax off
搜索高亮: #默认开启
set hlsearch
set nohlsearch
自动缩进: #默认关闭
set autoindent #set ai
set noauntoindent #set noai
区分字符大小写: #默认区分
set ignorecase #set ic 忽略大小写
set noignorecase #set noic 不忽略大小写
高亮显示匹配的符号对儿 #默认开启
set showmatch #set sm
set noshowmatch #set nosm
2、vim的配置文件
全局:/etc/vimrc
个人:~/.vimrc
附:
VimTutor中文版