Vim 的使用
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是 vim 编辑器。
vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计
##vim简介
###什么是Vim
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
连 vim 的官方网站 http://www.vim.org
自己也说 vim 是一个程序开发工具而不是文字处理软件。
###VIM优点
高效率移动
- 强大命令模式:在插入模式之外基本上来说,尽可能少的呆在插入模式里面,因为在插入模式里面 VIM 就像一个“哑巴”编辑器一样。 VIM 的强大之处在于他的命令模式!
- 使用 h、j、k、l:使用 VIM 高效率编辑的第一步,就是放弃使用箭头键。使用 VIM就不用频繁的在箭头键和字母键之间移来移去了,这会节省很多时间。当命令模式时,可以用 h、j、k、l 来分别实现左、下、上、右箭头的功能。
- 在当前行里面有效的移动光标:很多编辑器只提供了简单的命令来控制光标的移动(比如左、上、右、下、到行首/尾等)。VIM 则提供了很多强大的命令来满足控制光标的欲望。当光标从一点移动到另外一点,在这两点之间的文本(包括这两个点)称作被“跨过”,这里的命令也被称作是 motion。
- 在整个文件里面有效移动光标:VIM 有很多命令,可以用来到达文件里面你想到达的地方。
高效的输入
- 使用关键词自动完成:VIM 有一个非常漂亮的关键词自动完成系统。使用关键词自动完成功能,只需要输入开始几个字母(比如 iAmAL),然后按 (按住 Ctrl,再按 N)或者 。如果 VIM 没有给出你想要的词,继续按,直到你满意为止,VIM 会一直循环它找到的匹配的字符串。
- 聪明的进入插入模式:VIM 提供了很多进入插入模式的命令。
- 有效的移动大段的文本:使用可视选择(visual selections)和合适的选择模式。不像最初的 VI,VIM 允许你高亮(选择)一些文本,并且进行操作。
- 在可视选择模式下剪切和拷贝
- 粘贴:粘贴很简单,按 p。
- 使用多重剪贴板:很多编辑器都只提供了一个剪贴板。VIM 有很多。剪贴板在 VIM 里面被称为寄存器(Registers)。你可以列出当前定义的所有寄存器名和它们的内容,命令为“:reg”。最好使用小写字母来作为寄存器的名称,因为大写的有些被 VIM 占用了。
- 避免重复:在 VI 里面,输入 . (小数点符号),将会重复输入的上一个命令。
- 使用数字:使用数字也是 VIM 强大的而且很节省时间的重要特性之一。在很多 VIM 的命令之前都可以使用一个数字。
Vim的3中常用模式
-
- 末行模式(底线命令模式)
-
- 编辑模式(输入模式)
-
- 一般模式(命令模式)
- Vim实践
基本上 Vim 共分为三种模式,分别是一般模式(命令模式),编辑模式(输入模式)和末行模式(底线命令模式)。 这三种模式的作用分别是:
一般模式(命令模式)
用户刚刚启动 Vim,进入文件便进入了一般模式(命令模式)。任何时候,不论用户处于何种模式,只要按一下Esc键,就可进行入vi/vim的一般模式(命令模式)
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
i键
切换到编辑模式(输入模式),以输入字符。Esc键
切换到一般模式(命令模式):键
切换到末行模式(底线命令模式),以在最底一行输入命令。
若想要编辑文本:启动Vim,进入文件便进入了一般模式(命令模式);按下i键
,切换到编辑模式(输入模式);按Esc键
切换到一般模式(命令模式),再按:键
切换到末行模式(底线命令模式)
在一般模式(命令模式)下,可以进行的操作有上下移动光标、删除某个字符、删除某行、以及复制或粘贴一行或多行
末行模式(底线命令模式)
在末行模式(底线命令模式)中可以搜索某个字符或者字符串,也可实现保存、退出、显示行号等功能
在一般模式(命令模式)下按下:键
就进入了末行模式(底线命令模式)。在编辑模式(输入模式)可以先按Esc键
切换到一般模式(命令模式),再按:键
切换到末行模式(底线命令模式)
末行模式(底线命令模式)可以输入单个或多个字符的命令,可用的命令非常多。
在末行模式中,常用的命令有
:q
:退出程序:q!
:如果无法离开Vim,可以使用此命令强制退出Vim编辑器:w
:保存文件:wq!
:保存文件并退出编辑器:wq!
:保存文件并强制退出编辑器:x
:保存文件并强制退出编辑器,其功能与:wq!相同
按ESC键可随时退出末行模式(底线命令模式)回到一般模式(命令模式)。
编辑模式
在命令模式下按下i就进入了编辑模式。
在编辑模式中,可以使用以下按键:
字符按键以及Shift组合
,输入字符ENTER
,回车键,换行BACK SPACE
,退格键,删除光标前一个字符DEL
,删除键,删除光标后一个字符方向键
,在文本中移动光标HOME/END
,移动光标到行首/行尾Page Up/Page Down
,上/下翻页Insert
,切换光标为输入/替换模式,光标将变成竖线/下划线ESC
,退出输入模式,切换到命令模式
###三种模式关系
简单的说,我们可以将这三个模式想成底下的图标来表示:、
##vimVim实践
启动vim编辑器
可以使用一下命令启动vi/vim进入编辑器界面
vim filename
:打开或新建一个文件,并将光标的位置置于第一行的行首
vim -r filename
:恢复上次vi打开时崩溃的文件
vim -R filename
:以只读的方式将文件放入编辑器
vim + filename
:打开文件,并将光标的位置置于最后一行的行首
vim +n filename
:打开文件,并将光标的位置置于第n行的行首
vim +/pattern filename
:打开文件,并将光标的位置置于第一个与pattern匹配的位置
vim -c command filename
:在对文件进行编辑前,先执行command命令
vim filename1 ... filename_n
:打开多个文件,并对它们一次进行编辑
###退出Vim编辑器
切换到末行模式(底线命令模式),可以执行以下命令进行退出
:q
:退出程序:q!
:如果无法离开Vim,可以使用此命令强制退出Vim编辑器:wq!
:保存文件并退出编辑器:wq!
:保存文件并强制退出编辑器:x
:保存文件并强制退出编辑器,其功能与:wq!类似:exit
:保存并退出,,其功能与:wq!类似:qa
:退出所有:cq
:退出且不保存,即便有错误发生
在一般模式(命令模式)下,可以按ZZ
保存退出文件,可以以按ZQ
不保存直接退出文件
ZZ
:保存退出文件ZQ
:不保存直接退出文件
###移动光标操作
在一般模式(命令模式)下,可以使用一下命令移动光标
-
↑键
k键
:将光标向上移动一行 -
↓键
j键
:将光标向下移动一行 -
←键
h键
:将光标向左移动一个字符 -
→键
l键
:将光标向右移动一个字符 -
nk
:将光标向上移动n行 -
nj
:将光标向下移动n行 -
nh
:将光标向左移动n个字符 -
nl
:将光标向右移动n个字符 -
0键
:移动到光标所在行的行首 -
$键
:移动到光标所在行的行尾 -
H键
:将光标移动到屏幕的顶部 -
M键
:将光标移动到屏幕的中间 -
L键
:将光标移动到屏幕的底部
命令 | 功能 |
---|---|
↑键 k键 | 将光标向上移动一行 |
↓键 j键 | 将光标向下移动一行 |
←键 h键 | 将光标向左移动一个字符 |
→键 l键 | 将光标向右移动一个字符 |
nk | 将光标向上移动n行 |
nj | 将光标向下移动n行 |
nh | 将光标向左移动n个字符 |
nl | 将光标向右移动n个字符 |
0键 | 移动到光标所在行的行首 |
$键 | 移动到光标所在行的行尾 |
H键 | 将光标移动到屏幕的顶部 |
M键 | 将光标移动到屏幕的中间 |
L键 | 将光标移动到屏幕的底部 |
###Vim中的行号
要显示Vim中的行号,需要切换到末行模式(底线命令模式),可以执行以下命令显示行号或取消行号显示
:set nu
:显示行号:set nonu
:取消行号
这里的行号只是为了方便用户预览方便,并非是原文文件内容的一部分
###查找与替换(未完成)
###复制与粘贴(未完成)
###屏幕命令
####滚屏命令
关于滚屏命令有两个
Ctrl+U组合键
:相对于当前屏幕,将屏幕向前翻滚半屏Ctrl+D组合键
:相对于当前屏幕,将屏幕向后翻滚半屏
####分页命令
关于分页命令有两个
Ctrl+F组合键
:相对于当前屏幕,将屏幕向前翻滚一页Ctrl+B组合键
:相对于当前屏幕,将屏幕向后翻滚一页
###执行Shell命令