Vi:Visual Interface 可视化界面
Vim:Visual Interface Improved Vi的增强版
Vi编辑器是一个模式化的编辑器,而且功能异常强大,体积短小精悍。
我们通常使用Vim,一则是Vi的增强版
Vim的使用格式:
Vim [options] [/path/to/somefile] 这里的路径可以省略,等文件内容写完之后再来保存路径,犹如windows中的先打开记事本然后再去保存路径一样。
Vim 有三种模式类型:编辑模式;输入模式;末行模式。
编辑模式:是Vim的默认模式,又叫做命令模式;但是编辑模式不是输入文件的模式,例如:删除,复制。
输入模式:又叫做插入模式;再此模式下输入的内容都会当做文本内容来使用的。
末行模式:也就意味着在整个屏幕的最下方,在里面可以键入命令,也就是说在编辑模式下所实现的功能在此均可使用,并且还能执行一些编辑模式下无法实现的特性和功能。比如:查找替换等等;后面我们会一一给出。
模式转换:
编辑模式 —> 输入模式:
i | insert, 实现在当前光标所在处字符前面转换为输入模式; |
a | append, 实现在当前光标所在处字符后面转换为输入模式; |
o | 实现在当前光标所在行的下方新建一个空白行并转换为输入模式; |
I | 实现在当前光标所在行的行首转为输入模式; |
A | 实现在当前光标所在行的行尾转为输入模式; |
O | 实现在当前光标所在行的上方新建一行,并转为输入模式; |
输入模式 –> 编辑模式:
按一下Esc键;
编辑模式 –> 末行模式:
输入冒号
末行模式 –> 编辑模式:
按一下Esc键,再按一下Esc键;
输入模式 –> 末行模式
无法直接实现,只能先转换为编辑模式,然后再转换至末行模式 ;
光标跳转:
字符间跳转:
h,向左箭头 |
向左移动 |
l,向右箭头 | 向右移动 |
j,向下箭头 | 向下移动 |
k,向上箭头 | 向上移动 |
字符间多字符跳转:
#h |
向左侧跳#个字符 |
#l |
向右侧跳转#个字符 |
#k |
向上面跳#个字符 |
#j |
向下面跳转#个字符 |
单词间跳转:
w |
快速跳转至后一个单词的词首 |
e |
快速跳至当前或下一个单词词尾 |
b |
快速跳至当前或前一个单词词首 |
句子间跳转:
) |
跳转至下一句 |
( |
跳转至前一句 |
段落间跳转:
} |
跳转至下一段 |
{ |
跳转至前一段 |
行间跳转:
1G, gg |
跳转至这个文件的第一行; |
G |
跳转至这个文件的最后一行; |
#G |
跳转至这个文件的第n行; |
行内跳转:
^ |
行首的第一个非空白字符 |
$ |
绝对行尾 |
0(零) |
绝对行首 |
关闭文件:
在末行模式下:
w | 保存 |
q | 退出 |
! | 强制 |
wq | 保存并退出 |
w! | 强制保存 |
q! | 强制退出 |
x | 保存退出 |
在编辑模式下:
ZZ |
保存退出 |
wall |
保存所有文本 |
qall |
退出所有文本 |
打开文件:
vim [options] /path/to/file Vim 选项 文件名
vim +# /path/to/file 打开文件让光标快速定位在#行行首
打开多个文件:三种方式:
方式一: Vim 文件名 文件名 文件名 …
多文件间跳转:
输入 (在末行模式下): |
|
next |
切换到下一个; |
last |
切换到最后一个; |
first |
切换到第一个; |
prev |
切换到前一个; |
方式二:Vim –o 文件名 文件名 …:水平分割窗口打开文件
跳转方式:首先按住ctrl 再按w 松开按上下箭头实现切换
方式三:Vim –O 文件名 文件名 …:垂直分割窗口打开文件
跳转方式:首先按住ctrl 再按w 松开按左右箭头实现切换
多文件退出方式:
q |
退出当前光标所在文件 |
qall |
退出所有 |
编辑文本命令:
删除命令:
方式一:
x: |
删除光标所在处的单个字符 |
#x: |
删除光标所在处的向后的#个字符 |
方式二:
d |
删除命令 |
dw |
删除单词至下个单词词首 |
db |
删除单词至前一个单词词首(不会删除光标所在处的字符) |
d |
删除单词 |
d) |
删除本句和下一句 |
d( |
删除本句和上一句 |
d^ |
光标所在处到行首(不包含光标所在处的字符) |
d$ |
光标所在处到行尾(包含光标所在处的字符) |
dd |
删除光标所在行; |
#dd |
删除光标所在行及向下#行 |
在末行模式下使用d命令
末行模式支持范围指定,支持地址定界,也就是可以明确说明从第几行到第几行
在地址定界时还支持相对表达法
编辑操作可撤销:(在未保存之前)
u | 撤销 |
Ctrl+r | 撤销此前的撤销:(重做上一次操作) |
Vim默认会保留最近50次的操作,u命令可逐一撤销此前的编辑操作;
这个u与Ctrl+r是很常用的命令,一个是复原,一个是重做;牢记。
我们所做的操作不仅可以撤销还可以保存在缓存里面,并且最后一次的编辑操作(尤其是删除操作)还可以被保存在文件当中的。
粘贴操作:
P:
可以实现一次复制多次粘贴的操作
如果删除的不是整行:
p:在当前光标所在行字符的后方粘贴(小写p)
P: 在当前光标所在处字符的前方粘贴(大写P)
复制操作:
y:
yy 复制光标所在的那一行
#yy 复制光标所在处向下#行
y$ 复制光标到行尾
y^ 复制光标到行首
如果复制的是整行:
p:在当前光标所在行的下方粘贴(小写p)
P:在当前光标所在行的上方粘贴(大写P)
如果复制的不是整行:
p:在当前光标所在行字符的后方粘贴(小写p)
P: 在当前光标所在处字符的前方粘贴(大写P)
查找一个大文件时常用的操作:
翻屏操作:
Ctrl+f | 向文件尾部翻一屏 |
ctrl+b | 向文件首部翻一屏 |
ctrl+d | 向文件尾部翻半屏 |
ctrl+u | 向文件首部翻半屏 |
文本搜索:
/keyword | 从当前光标所在处向文件尾部查找 |
?keyword | 从当前光标所在处向文件首部查找 |
n: | 下一个,跟查找命令相同的方向 |
N: | 前一个,跟查找命令相反的方向 |
文件搜索查找支持模式:(模式:正则表达式所构成的匹配标准)也就是说支持正则表达式匹配。
例如:字母d中间有两个字母后跟n的单词 /\<d[[:alpha:]]\{2\}n\>
另外一个编辑命令:
c: | 编辑,转换至输入模式 |
cc | 可以删除本行内容并且转换为输入模式 |
c$ | 删除本行内容到行尾并转换为输入模式 |
#cc | 删除#行内容并转换为输入模式 |
c^ | 删除至行首的第一个非空白字符处并转换为输入模式 |
c0 | 删除至行首并转换为输入模式 |
Vim 有可视化模式
visual模式
v: | 选中光标划过的字符,字符选取 |
V: | 选中光标划过的行,整行选取 |
Esc | 按Esc即可以返回到编辑模式 |
例如:删除/复制部分文件:首先用V(v)选中,然后按d/y即可实现删除
删除部分内容并转换为编辑模式:首先用V(v)选中,然后按c即可实现删除
一个文件分屏显示:
窗口属性定义:(这些定义只对当前vim有效)
显示行号 | 在末行模式下:输入 | setnmber,set nu(简写) |
关闭显示 | ~ | setnonumber,set nonu(简写) |
自动缩进 | ~ | set autoindent,set ai(简写) |
关闭自动缩进 | ~ | set noai |
不区分字符大小写 | ~ | set ignorecase,set ic |
关闭不区分字符大小写 | ~ | set noic |
获取帮助: | ~ | set |
显示匹配的括号 | ~ | set showmatch,set sm |
关闭显示匹配的括号 | ~ | set nosm |
关闭语法着色(默认是开启的) | ~ | syntax off |
开启语法着色 | ~ | syntax on |
开启搜索结果高亮显示 | ~ | set hlsearch |
关闭搜索结果高亮显示 | ~ | set nohlsearch |
以上设置更改之后等下次再打开还会按原来的设置显示,要想修改编辑配置文件
Vim的配置文件:
全局:/etc/vimrc 只有管理员才有权限修改配置
修改之后对所有用户都有效
个人:~/.vimrc(这个文件实际不存在,自己创建即可)
修改之后只对当前用户自己有效对其他用户无效
下有附件Vimtutor中文版,根据内容学习查看练习一遍,对vim的功能操作基本便会应用。
附件:http://down.51cto.com/data/2363155
本文转自 z永 51CTO博客,原文链接:http://blog.51cto.com/pangge/1251408