VIM 是从VI发展出来的一个文本编辑器,在类Unix系统中成为了用户最喜欢的文本编辑器,VIM 是依靠于ASCII的纯文本文件。
在Windows当中我们接触最多的是字处理器,类似于word。
由于Vim在Linux中经常使用,且功能强大,想要详细了解VIM的详细用法,可以参照官网或者liunx内置的说明书来了解,我在这里只列出我们在日常使用vim中常用的一些用法,和一些相关的命令。
vim编辑器:vi improved 增强版vi
属于全屏编辑器,模式化的编辑器
有三种不同的模式:
编辑模式:可使用命令模式
输入模式:可输入内容
末行模式:属于很强大的功能
模式转换:
编辑——》输入:
i:在当前光标所有的字符的前面。转为输入模式
a: 在之前光标所有的字符的后面。转为输入模式
o:在当前光标所在行的下方,新建一行,并转为输入模式
I:在当前光标所有的字符的行首。转为输入模式
A: 在之前光标所有的字符的行尾。转为输入模式
O:在当前光标所在行的上方,新建一行,并转为输入模式
末行模式
输入——》esc -》shift+:
打开文件定位文档位置:
vim +# file :打开文件,并定位第#行
vim + file : 处在最后一行
vim +/PATTERN : 定位至第一次被PATTERN 匹配到的行首
关闭文件
1.在末行模式关闭文件
:q 退出
:wq 保存并退出
:q! 不保存并退出
:w 保存
:w!强行保存
:wq =====》:x
2.编辑模式下退出
ZZ 键 --保存退出
CTRL+Z
3.移动光标
1)逐字符移动:(编辑模式)
h:向左
l:向右
j:向下
k:向上
#h :移动多个字符
2)逐个单词移动
w:移植下一个单词的词首
e:跳至当前或下一个单词的词尾
b:跳至当前或前一个单词的词首
3)行内跳转:
0:绝对行首
^:行首的第一个非空白字符
$:绝对行尾
4)行间跳转
#G:跳转至第几行
G :最后一行
末行模式下,直接给出行号即可
4.翻屏操作:
ctrl+f :向下翻一屏
ctrl+b:向上翻一屏
ctrl+d 向下翻半屏
ctrl+u 向上翻半屏
5.删除单个字符:
x:删除光标所在处的单个字符
#x:删除光标所在处及向后的共#个字符
6.删除命令:d
d命令跟跳转命令组合
#dw #de #db
dd:删除当前光标所在行
#dd:删除包括当前光标所在行在内的#行
末行模式下:
startadd ,endaddd
. :表示当前行
$:最后一行
+#:向下的#行
删除的内容,不会被立即被清空
可以撤回操作
7.粘贴命令p
P:如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面
p:如果删除或复制为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面
8.复制命令 y
用法同 d 命令
yy 复制一行
9.先删除内容再转换为输入内容 --替换
c :用法同d命令
cc
10.替换 单个字符 r
R:直接进入替换模式
r:先删除再替换
11.撤销编辑操作
u:(undo )撤销前一次的编辑操作
连续u命令可撤销此前的n次操作
撤销最近一次的撤销:ctrl+r:
12.重复前一次的编辑操作
.
13.可视化模式
v:按字符选取
V:按矩形选取
14.查找
/PATTERN
?PATTERN
n:
N:
15.查找并替换
在末行模式下使用s命令
ADDR1,ADDR2s@PATTERN @string @gi
%表示全文并替换
16.如何使用vim打开编辑多个文件
vim file1 file2
默认打开第一个
:next 切换至下一个文件
:prev切换至前一个文件
:last 切换至最后一个文件
:first切换至第一个文件
17.如何分屏显示一个文件
窗口拆分:
退出:qa 全部退出
ctrl +w ,s:水平拆分窗口
ctrl +w,v:垂直拆分窗口
在窗口间切换光标
ctrl+w,ARROW
18 分窗口显示多个文件
vim -o:水平分隔显示
vim -O:垂直分隔显示
19.将当前文件中部分内容另存为另外一个文件
末行模式下使用w命令
20将另外一个文件的内容填充在当前文件中
:r /path/to/somefile
21.跟shell交互
:!COMMAND
22.高级话题
1.显示或取消显示行号
:set number
:set nu
:set noun
2.忽略大小写
3.设置自动缩进
:set autoindent
:set ai
4.查找到的文本高亮显示
:set hlsearch
:set nohlsearch
5.语法高亮
:syntax on
:syntax off
23.配置文件
全局
/etc/vimrc
当前 家目录
.vimrc --隐藏文件
注意:vim非法退出会产生一个子文件( 输入ls -la 查看目录详细文件目录 )删掉就可以