vim定义
vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方面编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为Unix系统用户最喜欢的编辑器。最初的简称是VI Imitation,随着功能的不断增加,正式名称改为了Vi Improved。现在是在开放源代码方式下发行的自由软件。
为什么要学习使用vim编辑器?
(1)所有的Unix like系统都会内置vi文本编辑器,其他的文本编辑器则一定不会存在。
(2)很多软件的编辑接口都会主动调用vi。
(3)vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设计。
(4)程序简单,编辑速度快。
vim的三个模式:插入模式、命令模式、低行模式。
插入模式(insert mode):在此模式下可以输入字符,按ESC将回到命令模式。
命令模式(command mode):可以控制屏幕光标的移动、字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到last line mode 。
低行模式(last line mode):可以保存文件、退出vim、设置编辑环境,如寻找字符串、列出行号等。
vim的基本操作
1. 进入vim
打开终端,输入vim,按回车键,就进入了vim。
2. 切换至插入模式(insert mode),编辑文件
在命令模式(command mode)下按一下字母[i]就可以进入插入模式(Insert mode),这时候就可以开始输入文字了。
3. Insert的切换
当处于插入模式(Insert mode),你就只能一直输入文字,如果你发现输入错了文字,想用光标键往回移动,将该字删除,就要先按一下ESC键转到命令模式(command mode)再删除文字。
4. 切换至低行模式可以退出vim及保存文件
在命令行模式(command mode)下,按一下[:]冒号键进入低行模式(Last line mode)
:w filename(输入[w filename]将文章以指定的文件名filename保存)
:wq(输入[wq], 表示保存并推出vim)
:q!(输入[q!], 表示不保存强制退出vim)
命令模式(command mode)常用功能键
a)插入模式
1. 按[i]切换进入插入模式(insert mode), 按“i”进入插入模式后是从光标当前位置开始输入文件;
2. 按[a]进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
3. 按[o]进入插入模式后,是插入新的一行,从新的一行的行首开始输入文字。
b)从插入模式切换为命令模式
按【ESC】键。
c)打开文件、保存、关闭文件(vim命令模式下使用)
1. vim filename //打开filename文件
2. :w //保存文件
3. :w vpser.net //保存至vpser.net文件
4. :q //退出编辑器,如果文件已修改请使用下面的命令
5. :q! //退出且不保存文件
6. :wq //退出编辑器且保存文件
d) 插入文本或行(命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式)
a //在当前光标位置的右边添加文本
i //在当前光标位置的左边添加文本
A //在当前行的末为位置添加文本
I //在当前行的开始处添加文本(非空字符的行首)
O //在当前行的上面新建一行
o //在当前行的下面新建一行
R //替换(覆盖)当前光标位置及后面的若干文本
J //合并光标所在行及下一行为一行(依然在命令模式)
e) 移动光标(vim命令模式下使用)
使用上下左右方向键:命令模式h(向左)、j(向下)、k(向上)、l(向右)。(空格键向右、Backspace向左、Enter移动到下一行首、-移动到上一行首)。
0(数字0)是让光标移动到当前行的行头,$是让光标移动到当前行的行尾。
f)删除、恢复字符或行(vim命令模式下使用)
x //删除当前字符
nx //删除从光标开始的n个字符
dd //删除当前行
ndd //向下删除当前行在内的n行
u //撤销上一步操作
U //撤销对当前行的所有操作
g)搜索(vim命令模式下使用)
/vpser //像光标下搜索vpser字符串
?vpser //像光标上搜索vpser字符串
n //像下搜索前一个搜索动作
N //像上搜索前一个搜索动作
h)跳至指定行及上下翻页(vim命令模式下使用)
n+ //像下跳n行
n- //像上跳n行
gg让光标移动到第一行行头
nG //跳到行号为n的行
G //跳至文件的底部(让光标移动到最后一行行头)
{让光标移动到当前段落的kai开头, }让光标移动到当前段落的结尾
i)设置行号(vim命令模式下使用)
:set nu //显示行号
:set nonu //取消显示行号
j)复制、粘贴、删除(vim命令模式下使用)
复制或删除一段内容,先按v键然后移动光标(用方向键向h左i右k上j下),可以看见被选中的字符,选中要复制或删除的内容,然后输出y(复制)、d(删除)、p(粘贴)。
yy //将当前行复制到缓存区, 也可以用“ayy”复制, a 为缓存区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
nyy //将当前行向下n行复制到缓存区,也可以用“anyy”复制,a为缓存区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
y^ //复制从光标到行首的内容
y$ // 复制从光标到行尾的内容
p //粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用“ap”进行粘贴
P //粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用“aP”进行粘贴
k)替换(vim命令模式下使用)
:s/old/new //用new替换行中首次出现的old
:s/old/new/g //用new替换行中所有的old
:n,m s/old/new/g //用new替换从n到m行里所有的old
:%s/old/new/g //用new替换当前文件里所有的old
o)编辑其他文件
:e otherfilename //编辑文件名为otherfilename的文件。
p)修改文件格式
:set fileformat=unix //将文件修改为unix格式,如win下面的文本文件在linux下会出现^M。
文章著作权归饥人谷_sunny和饥人谷所有,转载须说明来源