vim使用手册

前端之家收集整理的这篇文章主要介绍了vim使用手册前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

vim使用手册

[toc]


一. vim简介

> Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。 Vim的第一个版本由布莱姆·米勒在1991年发布。最初的简称是Vi IMitation,随着功能的不断增加,正式名称改成了Vi IMproved。现在是在开放源代码方式下发行的自由软件。 布莱姆·米勒在80年代末购入他的Amiga计算机时,Amiga上还没有他最常用的编辑器vi。Bram从一个开源的vi复制Stevie开始,开发了Vim的1.0版本。最初的目标只是完全复制vi的功能,那个时候的Vim是Vi IMitation(模拟)的简称。1991年Vim 1.14版被"Fred Fish Disk #591"这个Amiga用的免费软体集所收录了。1992年1.22版本的Vim被移植到了UNIX和MS-DOS上。从那个时候开始,Vim的全名就变成Vi IMproved(改良)了。 在这之后,Vim加入了不计其数的新功能。做为第一个里程碑的是1994年的3.0版本加入了多视窗编辑模式(分区视窗)。从那之后,同一萤幕可以显示的Vim编辑文件数可以不止一个了。1996年发布的Vim 4.0是第一个利用GUI(图形用户界面)的版本。1998年5.0版本的Vim加入了highlight(语法高亮)功能。2001年的Vim 6.0版本加入了代码折叠、插件、多国语言支持、垂直分区视窗等功能。2006 年5月发布的Vim 7.0版更加入了拼字检查、上下文相关补全,标签页编辑等新功能。2008年8月发布的Vim 7.2,合并了Vim 7.1以来的所有修正补丁,并且加入了脚本的浮点数支持。现在最新的版本是2013年8月发布的Vim 7.4,这个版本除了包含最新修正的补丁之外,还加入了“永久撤销”、“Blowfish算法加密”、“文本隐藏”和“Lua以及Python3的接口”等新功能


二. vim的使用方法

1. 打开文件

>vim是以vim命令后加文件名的方式来打开文件的,但vim功能强大,在打开文件时还可以加入参数实现更多的功能用法:vim [OPTION]... FILE...

vim命令的选项及作用:

选项 含义
+ 打开文件后光标默认在尾行行首。
+# 打开文件后光标处于第#行的行首。
+/PATTERN 打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首
-b file 以二进制方式打开文件
-d file1 file2… 比较多个文件
-m file 以只读方式打开文件,打开后对文件修改无法保存。
ex file或vim –e 直接进入扩展命令模式

补充:

2. vim的三种模式

> vim是一款模式编辑器,对vim的操作进行在vim的三种模式之上。所谓三种模式分别是:1.命令(Normal)模式 ,默认模式,主要作用是移动光标,剪切/粘贴文本。2.插入(Insert)或编辑模式 ,主要作用是修改文本。3.扩展命令(extended command )模式 ,主要作用是保存,退出等。所以想要娴熟操作vim,在三种模式之间的切换是必不可少的。vim的模式切换是以命令模式为基础的,也就是打开文件时的第一个界面,vim打开文件默认是在命令模式界面。所以无论你是要进入扩展模式还是插入模式,都需要在命令模式进行切换,扩展模式和插入模式之间是不能直接切换的。

vim三种主要模式之间的切换:
按键 作用
Esc键 退出当前模式
2Esc键 总是返回到命令模式
ESC 插入模式转到命令模式
命令模式转到扩展命令模式
2ESC,enter 扩展命令模式转到命令模式

3.命令模式

1.命令模式进入插入模式

按键 作用
i insert,在光标所在处输入
I 在当前光标所在行的行首输入
a append,在光标所在处后面输入
A 在当前光标所在行的行尾输入
o 在当前光标所在行的下方打开一个新行
O 在当前光标所在行的上方打开一个新行

2.命令模式光标间跳转

2.1字符间跳转
按键 作用
h
l
j
k
#command 跳转由#指定的个数的字符
2.2单词间跳转
按键 作用
w 下一个单词的词首
e 当前或下一单词的词尾
b 当前或前一个单词的词首
#COMMAND 由#指定一次跳转的单词数
2.3当前页跳转
按键 作用
H 页首
M 页中间行
L 页底
2.4行首行尾跳转
按键 作用
^ 跳转至行首的第一个非空白字符
0 跳转至行首
$ 跳转至行尾
2.5行间移动:
按键 作用
#G 跳转至由#指定行
G 最后一行
1G,gg 第一行
2.6句间移动
按键 作用
) 下一句
( 上一句
2.7 段落间移动:
按键 作用
} 下一段
{ 上一段

3.命令模式翻屏操作

按键 作用
Ctrl+f 文件尾部翻一屏
Ctrl+b 文件首部翻一屏
Ctrl+d 文件尾部翻半屏
Ctrl+u 文件首部翻半屏

4.命令模式编辑操作

4.1字符编辑:
按键 作用
x 删除光标处的字符
#x 删除光标处起始的#个字符
xp 交换光标所在处的字符及其后面字符的位置
~ 转换大小写
J 删除当前行后的换行符
gU 变大写
gu 变小写
100 i sun [ESC] 粘贴“sun”100次
4.2替换命令(r,replace)
按键 作用
r 替换光标所在处的字符
R 切换成REPLACE模式,可进行选择替换
4.3删除命令(d,delete)
按键 作用
d 删除命令,可结合光标跳转字符,实现范围删除
d$ 删除到行尾
d^ 删除到非空行首
d0 删除到行首
dw 删除到下一个单词的词首
de 删除到当前或下一单词的词尾
db 删除到当前或前一个单词的词首
#COMMAND 删除到由#指定一次跳转的单词数
dd 删除光标所在的行
#dd 删除光标所在处由#指定的多行
D 从当前光标位置一直删除到行尾,留空行,等同于d$
4.4复制命令(y,yank):
按键 作用
y 复制,行为相似于d命令
y$ 复制到行尾
y0 复制到行首
y^ 复制到非空行首
ye 复制到当前或下一单词的词尾
yw 复制到下一个单词的词首
yb 复制到当前或前一个单词的词首
#COMMAND 复制到由#指定一次跳转的单词数
yy 复制整行
#yy 复制光标所在处由#指定的多行
Y 从当前光标位置一直复制到行尾,留空行,等同于d$
4.5粘贴命令(p,paste):
按键 作用
p 缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
P 缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面
4.6改变命令(c,change)
按键 作用
c 修改后切换成插入模式
c$ 删除到行尾,并切换成插入模式
c^ 删除到非空行首,并切换成插入模式
c0 删除到行首,并切换成插入模式
cb 删除到当前或前一个单词的词首,并切换成插入模式
ce 删除到当前或下一单词的词尾,并切换成插入模式
cw 删除到下一个单词的词首,并切换成插入模式
#COMMAND 删除到由#指定一次跳转的单词数,并切换成插入模式
cc 删除当前行,并切换成插入模式
#cc 删除#指定的多行,并切换成插入模式
C 删除当前光标到行尾,并切换成插入模式
4.7撤销更改
按键 作用
u 撤销最近的更改
#u 撤销之前多次更改
U 撤消光标落在这行后所有此行的更改
Ctrl-r 重做最后的“撤消”更改
. 重复前一个操作
n. 重复前一个操作n次

4. 扩展命令模式

4.1扩展命令模式下的简单命令用法

>在命令模式下按“:”进入扩展命令模式,进入后,编辑器的底部左下角会出现一个命令提示符,在这个命令提示符后面输入命令,可以进行扩展命令模式下的操作。

命令 作用
w 写(存)磁盘文件
wq 写入并退出
x 写入并退出
q 退出
q! 不存盘退出,即使更改都将丢失
r filename 文件内容到当前文件
w filename 将当前文件内容写入另一个文件
!command 执行命令
r!command 读入命令的输出

4.2扩展命令模式:地址定界

> 在扩展命令模式下进行地址定界方法一:利用行数进行定界 格式|:开始#,结束#

用法 含义
# 具体第#行,例如2表示第2行
#,# 从左侧#表示起始行,到右侧#表示结尾行
#,+# 从左侧#表示的起始行,加上右侧#表示的行数
2,+3 表示2到5行
. 表示当前行
$ 表示最后一行
. 或$-1 当前行到倒数第二行
% 全文,相当于1,$

>在扩展命令模式下进行地址定界方法二:利用正则进行定界,从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束。 格式| :/正则1/,/正则2/ #,/pat/ -------->从第#行开始,一直到第一次被pat匹配到的行结束。 /pat/,$ --------->从第一次被pat模式匹配到的行开始,到行尾结束。 使用方式:后跟一个编辑命令

用法 含义
d 删除匹配到的内容
y 复制匹配到的内容
w file 将范围内的行另存至指定文件
r file 在指定位置插入指定文件中的所有内容

4.3扩展命令模式:查找

查找命令:

按键 作用
/PATTERN 从当前光标所在处向文件尾部查找
?PATTERN 从当前光标所在处向文件首部查找
n 与命令同方向
N 与命令反方向

4.4扩展命令模式:查找并替换

>扩展命令模式下,在命令提示符后面输入字母“s”,然后按格式输入要查找和替换的内容,便可进行查找替换。

格式:s/要查找的内容/替换为的内容/修饰符

格式项 作用
要查找的内容 分割符后输入要查找的内容,可使用模式,也就是正则表达式。
替换为的内容 不能使用模式,但可以使用\1,\2,...等后向引用符号;还可以使用“&”引用前面查找时查找到的整个内容
修饰符:
i 忽略大小写
g 全局替换;默认情况下,每一行只替换第一次出现
gc 全局替换,每次替换前询问
如果查找和替换的内容中包含路径,再使用"/"作为分割符就不方便了,这时可以使用@、#等特殊符号来做分割符。
例如:
 	s@/etc@/var@g
 	s#/boot#/#i

5.vim的寄存器

  • 有26个命名寄存器和1个无命名寄存器,常存放不同的剪贴版内容,可以不同会话间共享
  • 寄存器名称a,b,…,z,格式:“寄存器放在数字和命令之间
    如:3"tyy 表示复制3行到t寄存器中 "tp 表示将t寄存器内容粘贴

  • 未指定,将使用无命名寄存器

  • 有10个数字寄存器,用0,1,…,9表示,0存放最近复制内容,1存放最近删除内容。当新的文本变更和删除时,1转存到2,2转存到3,以此类推。数字寄存器不能在不同会话间共享

6.编辑二进制文件

以二进制方式打开文件,例如:vim –b binaryfile
扩展命令模式下,利用xxd命令转换为可读的十六进制
:%!xxd
扩展命令模式下,利用xxd命令转换回二进制,进行二进制文件的编辑。
:%!xxd –r

7.可视化模式

> 在可视化模式下允许移动光标选择文本块,选中的文字可被删除,复制,变更,过滤,搜索,替换等 。

按键 作用
v 命令模式下,进入面向字符的可视化模式
V 命令模式下,进入面向行的可视化模式
ctrl-v 命令模式下,进入面向块的可视化模式
w 选择一个单词
) 选择一句
} 选择一段
箭头 字符间移动

8.多文件模式

> 多文件模式可以同时打开多个文件用法:vim FILE1 FILE2 FILE3 ...

命令 作用
:next 下一个
:prev 前一个
:first 第一个
:last 最后一个
:wall 保存所有
:qall 退出所有
:wqall 保存退出所有

9.使用多个“窗口”

> 多窗口模式可以同时打开多个窗口进行编辑, 用法:vim -o|-O FILE1 FILE2 ... -o: 水平分割 -O: 垂直分割 在窗口间切换:Ctrl+w

文件窗口分割方法

按键 作用
Ctrl+w,s或 :split, 水平分割
Ctrl+w,v或:vertical, 垂直分割
ctrl+w,q 取消相邻窗口
ctrl+w,o 取消全部窗口
:wqall 退出

10.关闭文件

10.1扩展模式退出编辑器:

选项 含义
:q 退出
:q! 强制退出,丢弃做出的修改
:wq 保存退出
:x 保存退出

10.2命令模式下退出编辑器:

选项 含义
ZZ 保存退出
ZQ 不保存退出

三. 定制vim的工作特性

>定义vim的工作特性可以为使用带来许多便利,增加使用乐趣。定制vim的工作特性有两种方法,一种是将设置写入配置文件,这样可以永久有效。另一种方法是在vim的扩展模式下直接设置,只对当前vim进程有效。 扩展模式:当前vim进程有效 配置文件:永久有效 全局:/etc/vimrc ----->将配置写入此文件将对所有用户有效。 个人:~/.vimrc ------->将配置写入此文件只对个人有效。

常用工作特性设置参数:

特性 参数
行号显示 set number,简写为set nu
行号取消显示 set nonumber,简写为set nonu
括号成对匹配 set showmatch,简写为set sm
括号取消成对匹配 set nosm
自动缩进启用 set ai
自动缩进禁用 set noai
高亮搜索启用 set hlsearch
高亮搜索禁用 set nohlsearch
语法高亮启用 @R_301_156@ on
语法高亮禁用 @R_301_156@ off
忽略字符的大小写启用 set ic
忽略字符的大小写不忽略 set noic
文件格式启用windows格式 set fileformat=dos
文件格式启用unix格式 set fileformat=unix
设置文本宽度 set textwidth=65 (vimonly)
设置文本宽度 set wrapmargin=15

四. vi/vim内置帮助

> vimtutor 命令是以vim编辑器打开vim帮助文档,在里面可以边看帮助文档边练习操作,非常便捷,是学习vim的必备工具。而且在里面做的修改不会保存。 在扩展命令模式下输入以下命令可以查看vim内置帮助: > - help - helptopic - help option-list - setor:set all

猜你在找的Bash相关文章