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