Linux初学者学习笔记

20170727 vim编辑器

2017-07-29  本文已影响6人  哈喽别样

简介:
vi:visual interface,可视窗口,历史悠久的文本编辑器
vim:vi improved,vi编辑器增强版,增加了颜色显示,光标坐标位置显示等功能

一、vim 打开文件

+#  file1           <!--打开文件光标直接移动至第#行行首-->
+/pattern file1     <!--打开文件光标直接移动至匹配pattern行的行首-->
-b file1            <!--打开二进制文件-->
-d file1 file2      <!--比较两个文件-->
-m file1            <!--只读打开文件-->

二、vim 模式编辑器

i     <!--insert, 在光标所在处输入-->
I     <!--在当前光标所在行的行首输入-->
a     <!--在光标所在处后面输入-->
A     <!--在当前光标所在行的行尾输入-->
o     <!--在当前光标所在行的下方新建一个新行-->
O     <!--在当前光标所在行的上方新建一个新行-->
:q     <!--退出-->
:q!     <!--强制退出,放弃做出的修改-->
:w     <!--保存-->
:wq    <!--保存退出-->
:x     <!--保存退出-->
:w file1    <!--将当前内容保存至另一个文件,之后修改的还是之前编辑的文件-->
:r file2     <!--读文件内容至当前文件-->
:!command     <!--执行命令-->
:r!command    <!--读入命令执行结果-->

三、vim 命令模式详解

(一)光标跳转

h     <!--光标左移-->
l     <!--光标右移-->
j     <!--光标下移-->
k     <!--光标上移-->
#COMMAND     <!--跳转由#指定个数的字符-->
w     <!--下一个单词的词首-->
e     <!--当前或下一单词的词尾-->
b     <!--当前或前一个单词的词首-->
#COMMAND     <!--由#指定一次跳转的单词数-->
H     <!--页首行首-->
M     <!--页中间行行首-->
L     <!--页底行首-->
^     <!--跳转至行首的第一个非空白字符-->
0     <!--跳转至行首-->
$     <!--跳转至行尾-->
#G         <!--跳转至由#指定行-->
G          <!--最后一行-->
1G, gg     <!--第一行-->
)     <!--下一句-->
(     <!--上一句-->
}     <!--下一段-->
{     <!--上一段-->

(二)翻屏操作

Ctrl+f     <!--向文件尾部翻一屏-->
Ctrl+b     <!--向文件首部翻一屏-->
Ctrl+d     <!--向文件尾部翻半屏-->
Ctrl+u     <!--向文件首部翻半屏-->

(三)编辑操作

x     <!--删除光标处的字符,实质是剪切-->
#x    <!--删除光标处起始的#个字符-->
xp    <!--交换光标所在处的字符及其后面字符的位置-->
~     <!--转换大小写-->
J     <!--删除当前行后的换行符-->
r     <!--替换光标所在处的字符-->
R     <!--切换成REPLACE模式-->
d      <!--删除命令,可结合光标跳转字符,实现范围删除-->
d$     <!--删除到行尾-->
d^     <!--删除到非空行首-->
d0     <!--删除到行首-->
dw     <!--删除到下个单词词首-->
de     <!--删除到本单词或下个单词词尾-->
db     <!--删除到本单词或上个单词的词首-->
dd     <!--删除光标所在的行-->
#dd    <!--多行删除-->
D      <!--从当前光标位置一直删除到行尾,留空行,等同于d$-->
y$     <!--复制到行尾-->
y^     <!--复制到非空行首-->
y0     <!--复制到行首-->
yw     <!--复制到下个单词词首-->
ye     <!--复制到本单词或下个单词词尾-->
yb     <!--复制到本单词或上个单词的词首-->
yy     <!--复制行-->
#yy    <!--复制多行-->
Y      <!--复制整行-->
p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面
c$     <!--删除到行尾,并切换成插入模式-->
c^     <!--删除到非空行首,并切换成插入模式-->
c0     <!--删除到行首,并切换成插入模式-->
cw     <!--删除到下个单词词首,并切换成插入模式-->
ce     <!--删除到本单词或下个单词词尾,并切换成插入模式-->
cb     <!--删除到本单词或上个单词的词首,并切换成插入模式-->
cc     <!--删除当前行,并切换成插入模式-->
#cc    <!--删除多行,并切换成插入模式-->
C    <!--删除当前光标到行尾,并切换成插入模式-->
u          <!--撤销最近的更改-->
#u         <!--撤销之前多次更改-->
U          <!--撤消光标落在这行后所有此行的更改-->
Ctrl-r     <!--重做最后的“撤消”更改-->
.          <!--重复前一个操作-->
n.         <!--重复前一个操作n次-->

四、vim 扩展命令模式详解

(一)地址定界

#                <!--具体第#行,例如`2`表示第2行-->
#1,#2            <!--从第#1行开始,到第#2行结束-->
#1,+#2           <!--从第#1行开始,到第#1+#2行结束,例如\2,+3表示2到5行-->
.                 <!--当前行-->
$                 <!--最后一行-->
.,$-1             <!--当前行到倒数第二行-->
%                 <!--全文,相当于`1,$`-->
/pat1/,/pat2/     <!--从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束-->
#,/pat/          <!--从第#行开始,到第一次被pat匹配的行结束-->
/pat/,$           <!--从第一次被pat匹配的行开始到最后一行-->

(二)查找

/PATTERN     <!--从当前光标所在处向文件尾部查找-->
?PATTERN     <!--从当前光标所在处向文件首部查找-->
n            <!--与命令同方向-->
N            <!--与命令反方向-->

(三)查找并替换 s

i     <!--忽略大小写-->
g     <!--全局替换;默认情况下,每一行只替换第一次出现-->
gc    <!--全局替换,每次替换前询问-->

五、vim 编辑二进制文件

六、vim 可视化模式 v

v          <!--面向字符-->
V          <!--面向行-->
ctrl-v     <!--面向块-->

七、vim 多文件模式

:next      <!--切换至下一个文件-->
:prev      <!--切换至前一个文件-->
:first     <!--切换至第一个文件-->
:last      <!--切换至最后一个文件-->
:wall      <!--保存所有文件-->
:qall      <!--退出所有文件-->
:wqall     <!--保存退出所有文件-->

八、vim 多窗口

vim -o|-O FILE1 FILE2 ...
-o: 水平分割
-O: 垂直分割
在窗口间切换:ctrl+w, Arrow
ctrl+w,s     <!--split,水平分割-->
Ctrl+w,v     <!--vertical,垂直分割-->
ctrl+w,q     <!--取消相邻窗口-->
ctrl+w,o     <!--取消全部窗口-->

九、vim 定制工作特性

在扩展命令模式下的修改仅对当前vim进程有效,永久有效需要修改配置文件,对系统全局有效的配置文件为/etc/vimrc,对当前用户有效的配置文件为~/.vimrc

:set number 或者 :set nu         <!--显示行号-->
:set nonumber 或者 :set nonu     <!--取消显示行号-->
:set showmatch 或者 :set sm         <!--匹配-->
:set noshowmatch 或者 :set nosm     <!--取消匹配-->
:set ai       <!--启用自动缩进-->
:set noai     <!--禁用自动缩进-->

前三行每行回车后光标自动跳至行首,没有与第一行对齐;启动自动缩进后,如最后三行每行回车后光标自动与上一行对齐

:set hlsearch       <!--启用高亮搜索-->
:set nohlsearch     <!--禁用高亮搜索-->
:syntax on      <!--启用语法高亮-->
:syntax off     <!--禁用语法高亮-->
:set ic       <!--忽略字符的大小写-->
:set noic     <!--不忽略字符的大小写-->
:set fileformat=dos      <!--启用windows格式-->
:set fileformat=unix     <!--启用unix格式-->
:set textwidth=65     <!--设置文本宽度-->
:set wrapmargin=15     <!--设置页边距-->

十、vim 帮助

:help option-list     <!--选项列表-->
:help topic           <!--按照关键词搜索帮助文档-->
vimtutor              <!--vim指导手册-->
上一篇 下一篇

猜你喜欢

热点阅读