Vim简介
vim可以说是Linux下功能最为强大的编辑器,它是由UNIX系统下的传统文本编辑器vi发展而来的 下面简单介绍一下vi
vi是一个可视化编辑器(vi就意味着可视化——visual)。那么,什么是可视化的编辑器呢?可视化的编辑器就是可以在编辑文本是看到它们。非可视化的编辑器的例子可举出不少,如ed、sed、和edlin(它是DOS自带的最后一个编辑器)等。vi成为BSD UNIX的一部分,后来AT&T也开始使用vi,于是标准UNIX也开始使用vi。Linux下的vim是vi的一个增强版本,有彩色和高亮等特性,对编程有很大的帮助
Vim命令行模式的操作
命令行模式提供了比较多的按键和组合按键来执行命令,以帮助用户编辑文件。
移动光标
在命令行模式和输入模式下,都可以使用上、下、左、右4个方向键来移动光标的位置。但是有些情况下,如使用telnet远程登录时,方向键就不能够使用,必须使用命令行模式下的光标移动命令。这些命令如下表
命令 | 操作说明 |
---|---|
h | 将光标向左移动一格 |
I | 将光标向右移动一格 |
j | 将光标向上移动一格 |
k | 将光标向下移动一格 |
0 | 将光标移动到该行的最前面 |
$ | 将光标移动到该行的最后面 |
G | 将光标移动到最后一行的开头 |
W或w | 将光标移动到下一个字 |
e | 将光标移动到本单词的最后一个字符。如果光标所在的位置为本单词的最后一个字符,则跳动到下一个单字的最后一个字符。标点符号如. 、, 或/ 等字符都会被当成一个字 |
b | 将光标移动到单词的最后一个字符,如果光标所在位置为本单词的第一个字符,则跳到上一个单词的第一个字符 |
Ctrl+b | 如果要翻看文章的前后,可以用Page Down和Page Up;当两个键不能使用时,可以使用Ctrl+b将光标向前卷一页,想当于Page Up |
Ctrl+f | j将光标向后卷一页,相当于Page Down |
Ctrl+u | 将光标向前移动半页 |
Ctrl+d | j将光标向后移动半页 |
Ctrl+e | 将光标向下卷一行 |
Ctrl+y | 将光标向后卷一行 |
N+\ | 将光标移至第n行(n 为数学) |
复制文本
复制文本可以节省重复输入的时间,vim也提供了以下的操作命令 如下表
命令 | 操作说明 |
---|---|
y+y | 将光标目前所在的位置整行复制 |
y+w | 复制光标所在的位置到整个单词所在的位置 |
n+y+w | 若输入3yw 则会将光标所在位置到单词结束以及后面两个单词(共三个单词) 一起复制 |
n+y+y | 若按3yy 则将连同光标所在位置的一行与下面一行一起复制 |
p | 将复制的内容粘贴在光标所在的位置。若复制的是整行文本,则会将整行内容粘贴到光标所在的位置 |
找出行数及其他按键
当我们编写程序时 常常需要跳到某一行去修改,因此每一行的行号就相当重要 vim为此提供的命令 如下表
命令 | 操作说明 |
---|---|
Ctrl+g | 在最后一行中显示光标所在的行数以及文章的总行数 |
nG | 将光标移至n行首(n为数字) |
r | 修改光标所在字符 |
R | 修改光标所在位置的字符,可以一直替换字符,知道按下Esc键 |
u | 表示复原功能 |
U | 取消对行所做的所有改变 |
. | 重复执行上一命令 |
Z+Z | 连续两次输入Z 表示保存文件并退出vim |
% | 符号匹配功能,在编辑时,如果输入"%(", 系统将会自动匹配相应的“)” |
命令行模式切换到输入模式
进入vim时 默认的模式是命令行模式,而要进入输入模式输入数据时,可以使用以下按键
- 按
a
键:从目前光标所在位置的下一个字符开始输入 - 按
i
键:从光标所在位置开始插入新输入的字符。 - 按
o
键:新增加一行,将光标移动下一行的开头。
最后行模式的操作
vim的最后行模式是指可以在界面最底部的一行显示的输入命令,一般用来执行查找待定的字符串、保存及退出命令等任务。在命令行模式下输入冒号:
,就可以进入最后行模式,还可以使用?
和/
进入最后行模式。比起命令行模式的诸多操作命令,最后行模式的操作命令就少多了 见如下
命令 | 操作说明 |
---|---|
e | 在vim编辑时,可以使用e创建新文件 |
n | 加载新文件 |
w | 写文件 也就是将编辑的内容保存到文件系统中,vim在编辑文件时 先将编辑内容保存到临时文件中 如果没有执行写操作直接退出的话 修改内容并没有保存到文件中 |
w! | 如果要写只读文件 可以使用w! 强制写入文件 |
q! | 表示退出vim 但是文件内容有修改的话 系统会提示先保存 如果不保存退出,需要使用命令q! 强制退出 |
set nu | set可以设置vim的某些特性 这里是设置每行开头提示行数 要取消设置,使用命令set none |
/ | 查找匹配字符串功能,在编辑时,要查找包含某一个字符串, 可以用"/字符串"自动查找功能,系统会突出显示所有找到字符串,并转到找到的第一个字符串 如果要继续向下查找,可以按n键;向前继续查找则按N键 |
? | 也可以使用? 字符串 查找特定字符串,它的使用与/ 相似,但它是向前查找字符串 |