本文标识 : VL00007
本文编辑 : 灭霸 编程工具 : redhet6 阅读时长 : 10分钟
VIM 编辑器介绍
VIM当今世界,文本编辑器种类繁多选择一款优秀的编辑软件至关不仅仅提升工作效率,更能够节省大量的时间。而 VIM 与 emasc 成为了首选之一。
emasc 的功能强大,确实无以伦比。但如果仅为了编辑文本,那么 VIM 以其强大的功能和无穷的魅力将使您成为不悔的选择。
VIM 编辑器是专门为经验丰富的用户设计的,它的界面和使用方法提供了更快的速度和更强的功能。对于熟知它的用户, VIM 的许多特性节省了时间和击键次数,并可以完成一些其他编辑器无法完成的功能。
对于初学用户要掌握好 VIM 编辑器也不是很困难的事学习 VIM 的最好方法是实践,唯有如此,才能真正掌握其中的精髓。
VIM编辑器使用
vi 或 vim
语法格式 :vim [ 选项 ] / 路径 / 文本文件名
模式 | 模式 | 功能 |
---|---|---|
命令行模式 | command line | 主要做替换 , 删除 , 复制等工作。 |
输入模式 | input mode | 主要做内容编辑。 |
末行模式 | last line mode | 主要对文件进行编辑操作 , 如保存文件。 |
命令行模式command mode
在 command mode 执行操作的时候都是先要将光标移动到要执行命令的地方然后再执行命令的 , 怎么移动光标呢 ?
光标移动
命令 | 功能 |
---|---|
j | 光标向下移动 |
k | 光标向上移动 |
h | 光标向左移动 |
l | 光标向右移动 |
如果你觉得记这些不太方便也可以用小键盘上的←↑→↓来代替
如果要移动到文件的最后一行 , 一下下按方向键实在太麻烦
G(shift+g) 直接移动到文件末尾
gg 直接移动到文件头
如果要移动到指定的某一行的话 vi 也可以办到假设光标当前在 500 行
1000G | 向下移动到 1000 行 |
---|---|
50gg | 向上移动到 50 行 |
G 是向下移动 ,gg 是向上移动,别记错哦。
如果要移动到行头或者行末 vi 也可以轻松完成
0( 数字键 ) 直接移动到行头
$ 直接移动到行末
单词移动
w 直接移动到下一个单词
b 直接移动到上一个单词
还有很多移动键 B,e 可以自己试着在 vi 里使用当然前面讲到的 g 和 G 都可以和 w,b,B,e 配合使用比如 gb,ge 之类的
句子移动
( 移动到前一个语句
) 移动到后一个语句
段落移动
{ 移动到上一个段落
} 移动到下一个段落
屏幕的移动
PageUp 向下翻一页
PageDown 向上翻一页
H 将光标移动到当前屏幕的最上
M 将光标移动到当前屏幕的中间
L 将光标移动到当前屏幕的最下
zz 将光标当前行为基准放在屏幕中间
光标移动到了想要操作的位置以后 , 接着就是操作了 。
删除
命令 | 功能 |
---|---|
X | 删除光标所在位置的字符 |
X | 删除光标所在位置之前的一个字符 |
D | 从光标开始到行末全部删除 |
dw | 删除光标后的一个单词 |
dd | 删除光标所在的一行 |
db | 删除光标所在的前一个单词 |
前面学了移动 G 和 gg, 又学了 dd 删除行。现在把移动和删除结合起来使用。
命令 | 功能 |
---|---|
dG | 删除光标所在行到文件末尾的所有内容 |
dgg | 删除光标所在行到文件头的所有内容 |
dk | 删除光标所在行和上面一行 |
dj | 删除光标所在行和下面一行 |
命令模式的功能还不止这些 , 在使用命令键的时候还可以加上数字。
5x 删除光标之后的 5 个字符 ( 包含光标 )
5X 删除光标前的 5个字符
如果想要删除 5个单词:可以用 d5w 或者 5dw
d5w 和 5dw 有什么区别 : d5w 一次删除 5 个单词 5dw 删除一个单词重复 5 次。
vim 中撤销
u 撤销刚才的操作 , 可以连续使用
U 撤销一行中的所有操作
ctrl + r 取消撤销的内容
对文件做了这么多操作后,头晕了,不知道编辑的是哪个文件了。ctrl + g 显示当前编辑文件的信息 . 比如文 件名 , 总共的行数,当前在总数中的百分比等信息。
特殊符号
命令 | 功能 |
---|---|
% | 移动到配对的符号如当前光标在 ( 键入 % 可以自动移动到配对的 ) 同样适用于 [] 和 {} 这些功能在编程的时候特别有用。 |
. | 点 , 这个键的功能是重复最后一次执行的命令。 |
g~ | 这个功能非常有意思 ,g~ 能将当前行的大小写转换。 |
J | 这个键的功能是将光标当前行和下一行合并。注 : 这个键不能加上数字。 |
r | 替换光标所在的字符。 |
复制、剪切、粘贴
在使用编辑器的时候最常用的应该算复制 , 剪切和粘贴了
命令 | 功能 |
---|---|
Y | 复制 , 如 yw 复制一个单词 |
yy | 复制一行 |
P | 粘贴 ( 光标后 ) |
P | 粘贴 ( 光标前 ) |
在 vi 中的剪切实际上是删除 + 粘贴来完成的 , 比如要剪切一行 , 首先可以用 dd 删除一行然后再移动到想要粘贴的位置,按 p 就可以完成剪切了。
vim 基础使用在命令行中有一个 v 键:
这个键是用来代替鼠标用的。v 的意思是‘可视’的意思 , 按过 v 键以后再使用方向键便可以象鼠标那样选中文字 , 然后可以对选中的文字进行操作。
例如:删除 , 复制等。值得注意的是此功能只有 vim 才有。
vim 基础使用在命令模式中查找某个单词首先要按 / 键
这个时候就进入了命令模式中的搜索模式 , 屏幕的最下方会出现 / 提示符 , 然后输入你想要查找的内容就可以了。
这里的搜索使用的是正则表达式 , 如果要查找 .*[]^%/\?~$ 这些具有特殊含义的字符需要在这些字符前加上 \ 转义符。
要精确匹配某个单词 , 比如 word 需要用 /\<word\> 来查找。查找到的字符会高亮提示 , 按 n 继续向下搜索 , 按 N 返回上一个搜索。
输入模式(INSERT=插入=输入)
命令 | 功能 |
---|---|
a,o,i | 以命令模式为基础输入a,o,i进入本模式,处于当前模式下方会有--INSERT--的提示信息(insert=插入=输入) |
a,e,E | 向左退一字符插入 |
A | 跳到行尾插入 |
i | 在当字符下插入 |
I | 跳到行首插入 |
o | 基于当前行,另起一行插入 |
光标键 | 上下移动 |
Page Up | 向上翻页 |
Page Down | 向下翻页 |
Home | 跳到本行首 |
End | 跳到本行尾 |
R | 进入替换模式 |
s | 替换光标所在字符后开始编辑 |
S | 删除光标所在行后开始编辑 |
末行模式
替换添加文件内容,保存,退出vim,显示行数与取消显示行数等
是 vi 编辑器里最重要的一个模式。因为在这里会提供能很多有用的功能 , 所以需要很好的掌握。
在命令模式下按下 : (shift+;) 键 , 就进入了末行模式。
进入末行模式的时候会在屏幕的最下面的地方显示 : 提示符,这就说明进入了末行模式。
命令 | 功能 |
---|---|
:w | 保存文件 |
:q | 退出 vi 编辑 |
:wq | 保存文件并退出 vi 编辑器 ( 无论是否修改了文件 ) |
:e | 不离开 VI ,开始编辑一个新的文件 |
:w filename | 存储当前编辑的文件到一个新的文件 |
:x | 文件仅被修改时才写入 并退出 , 未写入则直接退出 |
有时候对修改的不满意 , 需要退出不保存可以用
:q! 这个 ! 具有强制的作用 , 因为在 vim 中默认不保存文件是无法退出 vim 编辑器的 , 主要为了防止意外退出。
:w! 强制保存 , 有的时候文件是只读属性的时候 , 可以用这个方式来保存 , 当然前提是文件所有者必需是当前用户。
在命令模式中要移动到一行比较麻烦 , 在末行模式中就容易多了 , 现在需要移动到第 50 行
:50 就移动到 50 行了。
在末行中还有更实用的操作 , 假设需要删除 50 行 100 行的中的内容 , 在末行模式中轻而易举就能完成
:50,100d 删除 50 到 100 行的内容
末行模式还能选择保存 , 现在需要将 100 行到 150 行的内容保存到 /home 目录下
:100,150w /home/test.txt 如果要在当前编辑的文件中的某一行读入其它文件的内容
:20r /home/test.txt 在当前文件的 20 行开始读入 /home 目录下的 text.txt 文件
vim 还支持更高级的功能 ,vim 可以同时打开多个文件 , 打开方式 vim 加上要打开的文件名 , 文件和文件之间用空格隔开。
vi 文件 1 文件 2 文件 3 文件 4
进入 vi 后 ,vi 打开的是文件 1
命令 | 功能 |
---|---|
:next | 切换到下一个文件 |
:previous | 切换到上一个文件 |
:last | 切换到最后一个文件 |
:first | 切换到最前一个文件 |
:2next | 切换到下二个文件 |
:args | 可以显示多个编辑文件中当前所编辑的文件 |
:args | 还有另外一个功能就是对打开的多个文件进行重新排序,排列方法很简单 , 在末行模式执行 |
:args 4 3 2 1 | 这样原先 1 2 3 4 文件的排列顺序就变成 4 3 2 1 了 |
在编辑一个文件的时候需要查看此文件的其他内容 , 在 vim中有一个非常好的功能 -- 分屏 , 分屏功能是将现在屏幕拆分成多个窗口
命令 | 功能 |
---|---|
:split | 将屏幕分成多个窗口 |
ctrl+w + or - | 用来调整窗口的大小 |
ctrl+w 方向键 | 切换窗口 |
:close | 关闭光标所在的窗口 |
:edit | 在窗口中打开一个文件 |
:help | 查看帮助文档 , 有的时候在末行模式中会出现 |
有了这些功能编辑和修改文档是不是容易多了 。
有了分屏功能以后 , 就可以实现在多个文件中剪切 , 粘贴和复制了。
查找格式
: 范围 命令 / 查找字串 / 替换字串 / 参数
范围:
命令 | 功能 |
---|---|
% | 所有的行 |
$ | 文件最后一行 |
. | 光标所在的行 |
1,50 | 1-50 行 |
命令:
查找的命令全称是 substitute
但为了方便期间可以使用简写 sub 或者干脆用 s 这三个单词都可以用做查找的命令查找。
参数:
命令 | 功能 |
---|---|
g | 替换所有查找到的内容 |
c | 每次替换的时候都手工确认 y 同意 n不同意仍然继续替换, q 退出替换 |
i | 忽略大小写 |
I | 不忽略大小写 |
e | 不显示出错信息 |
vim 可以根据用户的不同需要来做一些设定 , 这些设定都是在末行模式下进行的。
命令 | 功能 |
---|---|
:set nu | 显示行号 , 打开这个功能后会在每一行的最左面显示行号 , 行号不算在文件本身内 |
:set nonu | 关闭显示行号的功能 |
:set nohlsearch | 消除搜索的记号 |
:set ic | 忽略大小写 , 主要是为了方便搜索 |
:set noic | 不忽略大小写 |
:syntax on | 打开色彩支持 , 在 linux 中编辑文件和编辑程序源代码等工作都是在 vim 中完成的 , 打开色彩支持可以在查看或编写程序的时候发现语法等错误 . |
:syntax off | 关闭色彩支持 |
:set backup | 自动生成备份文件 ,vi 在打开或编辑一个文件的时候会自动备份文件 , 备份的件一般会在文件名后加 ~ 。例如:text.txt 会自动生成 text.txt~ |
:suspend | 把 vi 暂时放到后台休息 . 用 fg 恢复 (^z) |
定义快捷键 ,
在末行模式下有一个 map 功能这个是用来给用户自定义快捷键用的
定义格式:map F2-F4 执行命令
使用方法 , 在 vim 中执行
:map <F2> dd 将 F2 功能键定义为 dd
作用
退出末行模式 , 然后到命令模式下试试 F2 注 : 这里定义的快捷键在退出 vim 之后将会失效。
如果在使用 vim 编辑的时候需要执行一下系统的命令可以在末行模式中用 ! 来执行。