什么是Vim编辑器?
-
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
-
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。
-
Vim 则可以说是程序开发者的一项很好用的工具。
-
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。
-
连 Vim 的官方网站 (http://www.vim.org) 自己也说 Vim 是一个程序开发工具而不是文字处理软件。
-
Vim是vi的“升级版”,使用vi键入会是纯黑白,使用Vim会有彩色的提示,Vim通过一些插件可以实现和IDE一样的功能
-
Vim的基础使用:查看内容,编辑内容,保存内容
-
Vim 键盘图:
三种使用模式
- 基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。这三种模式的作用分别是:
命令模式:
- 用户刚刚启动 vi/vim,便进入了命令模式。(不能编辑)
vim 1.txt
# 如果这个文件存在,就是修改这个文件,如果不存在,就会新建这个文件
- 此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
-
以下是常用的几个命令(在命令模式下):
-
i 切换到输入模式,以输入字符。
-
x 删除当前光标所在处的字符。
-
: 切换到底线命令模式,以在最底一行输入命令。
-
-
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
-
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
输入模式:
-
在命令模式下按下 i 就进入了输入模式。
-
在输入模式中,可以使用以下按键:
-
字符按键以及Shift组合,输入字符
-
ENTER,回车键,换行
-
BACK SPACE,退格键,删除光标前一个字符
-
DEL,删除键,删除光标后一个字符
-
方向键,在文本中移动光标
-
HOME/END,移动光标到行首/行尾
-
Page Up/Page Down,上/下翻页
-
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
-
ESC,退出输入模式,切换到命令模式
-
底线命令模式
-
在命令模式下按下:(英文冒号)就进入了底线命令模式。
-
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
-
在底线命令模式中,基本的命令有(已经省略了冒号):
-
q 退出程序
-
w 保存文件
-
按ESC键可随时退出底线命令模式。
-
总结:
- tips1:移动光标的方法
- 在命令模式下
- n+空格,光标会跳转到距离当前光标n个字符(窗口是没有提示的,n为数字)
- H 光标移动到这个屏幕的最上方那一行的第一个字符
- M 光标移动到这个屏幕的中央那一行的第一个字符
- L 光标移动到这个屏幕的最下方那一行的第一个字符
- G 移动到这个档案的最后一行(常用)
- nG n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
- gg 移动到这个档案的第一行,相当于 1G 啊!(常用)
- n< Enter> n 为数字。光标向下移动 n 行**(常用)**
- 在命令模式下
- tips2:搜索替换
- 在命令模式下
- /word 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可!(常用)
- ?word 向光标之上寻找一个字符串名称为 word 的字符串。
- n 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
- N 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
- 在命令模式下
- tips3:删除、复制、粘贴
- 在命令模式下,直接输入指令,然后回车
- x, X 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
- nx n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
- ndd n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
- yy 复制游标所在的那一行(常用)
- nyy n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
- p, P p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢?那么原本的第 20 行会被推到变成 30 行。(常用)
- c 重复删除多个数据,例如向下删除 10 行,[ 10cj ]
- u 复原前一个动作。(常用)
- [Ctrl]+r 重做上一个动作。(常用)
- 在命令模式下,直接输入指令,然后回车
- tips4:储存、离开
- 在命令模式下,
- :set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号
- :set nonu 与 set nu 相反,为取消行号!
- 在命令模式下,