vim使用手册

vim使用手册


一. 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.命令模式进入插入模式
按键作用
iinsert, 在光标所在处输入
I在当前光标所在行的行首输入
aappend, 在光标所在处后面输入
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
语法高亮启用syntax on
语法高亮禁用syntax 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值