Vim(文本编辑器)

Vim

原理介绍

  Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,是类Unix系统用户最喜欢的文本编辑器。

Vim特点

  解放程序员的双手,这一点非常重要,使得程序员在编辑文档时可以不再依赖于鼠标
  Vim具有高效率的移动,在行内,文件内可以随意的移动,可以节约大量时间。
  Vim具有高效率的输入,可以有很多的插入方式,复制,粘贴,剪切都非常方便。

Vim关系图

2

Vim应用

1

进入Vim

  在终端中输入vim filename 进入Vim,如果存在该文件则编辑该文件,如果不存在该文件则创建一个新文件并编辑该文件

插入

  一般是由命令模式进入插入模式

符号 说明
a 在光标所在字符后插入
A 在光标所在行尾插入
i 在光标所在字符前插入
I 在光标所在行首插入
o 在光标下插入新行
O 在光标上插入新行

光标移动

  在命令模式下

符号 说明
k 光标向上移动一行
nk 光标向上移动n行
j 光标向下移动一行
nj 光标向下移动n行
h 光标向左移动一行
nh 光标向左移动n行
l 光标向右移动一行
nl 光标向右移动n行
符号 说明
b 光标移动到前一个单词的首字母上
nb 光标移动到前n个单词的首字母上
w 光标移动到后一个单词的首字母上
nw 光标移动到后n个单词的首字母上
ge 光标移动到前一个单词的尾字母上
nge 光标移动到前n个单词的尾字母上
e 光标移动到后一个单词的尾字母上
ne 光标移动到后n个单词的尾字母上
n 光标移动到后n个字符上
符号 说明
gg 光标移动到第一行首
G 光标移动到最后一行首
ngg或nG或:n 光标移动到第n行首
- 光标移动到上一行行首
n- 光标移动到上n行行首
+ 光标移动到下一行行首
n+ 光标移动到下n行行首
0 光标移动到该行行首
$ 光标移动到该行行尾
n$ 光标移动到下n行行尾
^ 光标移动到该行首字母
符号 说明
Home 光标移动到该行行首(可以在插入模式下使用)
End 光标移动到该行行尾(可以在插入模式下使用)

删除(剪切)字符

  在命令模式下

符号 说明
x 删除光标所在字符
nx 删除光标处及后n-1个字符
X 删除光标前一个字符
nX 删除光标前n个字符
dd 删除光标所在行
ndd 删除光标所在行及后n-1行
dw 删除光标所在处的单词
dnw 删除光标所在处及后n-1个单词
dG 删除光标所在行到文件末尾的所有行
dgg 删除光标所在行到文件开始的所有行
d/word 删除从光标所在处到单词word的所有文本
D 删除光标所在处到该行尾的所有内容
:nd 删除第n行
:n1,n2d 删除n1行到n2行

复制

  在命令模式下

符号 说明
yy 复制光标所在行
nyy 复制光标所在行及后n-1行
yw 复制光标所在处的单词
ynw 复制光标所在处及后n-1个单词
yG 复制光标所在行到文件末尾的所有行
ygg 复制光标所在行到文件开始的所有行
y/word 复制从光标所在处到单词word的所有文本
Y 复制光标所在处到该行尾的所有内容
:ny 复制第n行
:n1,n2y 复制n1行到n2行

粘贴

  在命令模式下

符号 说明
p 粘贴在当前光标下
P 粘贴在当前光标上

可视

  在命令模式下

符号 说明
v 进入可视(选择)模式
d 删除光标内容
y 复制光标内容

可视

  在命令模式下

符号 说明
v 进入可视(选择)模式
y 复制光标内容
d 剪切光标内容

撤回和恢复

  在命令模式下

符号 说明
u 复原前一次操作
Ctrl + r 重做上个动作

翻页操作

  在命令模式下

符号 说明
Ctrl + f 屏幕向下移动一页
Ctrl + b 屏幕向上移动一页
Ctrl + d 屏幕向下移动半页
Ctrl + u 屏幕向下移动半页

设置行号

  在命令模式下

符号 说明
:set nu 显示所有的行号
:set nonu 取消显示行号

搜索

  在命令模式下

符号 说明
/word 向光标之下寻找/word的字符串
?word 向光标之上寻找/word的字符串
n 继续向下查找下一个匹配的字符串
N 继续向上查找下一个匹配的字符串
:noh 取消高亮显示
:set ic 查找忽略大小写
:set noic 查找不忽略大小写

替换

  在命令模式下

符号 说明
r 取代光标处的字符串
R 从光标处开始替换字符,Esc结束替换
:n1,n2s/word1/word2/g 在n1到n2行之间将word1换成word2
:%s/word1/word2/g 将文档中所有的word1换成word2
:%s/word1/word2/g 将文档中所有的word1换成word2,取代前询问

替换

  在命令模式下

符号 说明
r 取代光标处的字符串
R 从光标处开始替换字符,Esc结束替换
:n1,n2s/word1/word2/g 在n1到n2行之间将word1换成word2
:%s/word1/word2/g 将文档中所有的word1换成word2
:%s/word1/word2/g 将文档中所有的word1换成word2,取代前询问
:ab word1 word2 文档中以后出现的word1字符自动转换为word2

定义快捷键

  在命令模式下
  :map ctrl+v+字符 命令 可以用来定义快捷键

符号 说明
:map ctrl+v+p I# 按ctrl+v+p则会在行首加#注释
:map ctrl+v+H iHello World ! 按ctrl+v+H会插入Hello World !

连续行注释

  在命令模式下

符号 说明
:n1,n2s/^/xxx/g 在n1到n2行的行首加xxx
:n1,n2s/^xxx//g 将n1到n2行行首的xxx删去
:n1,n2s/^////g 在n1到n2行的行首加//,/代表/

保存和退出

  在命令模式下

符号 说明
:w 保存修改
:w filename 另存为filename文件
:Wq或:wq!或ZZ 保存修改并退出
:q! 不保存修改并退出

Vim小结

  Vim作为一款古老的文本编辑器,但是它具有许多有用的功能,使其可以与现代文本编辑器竞争,也是作为Linux系统自带的文本编辑器Vi的升级版,可以完全解放双手,对于程序员来说,Vim是必不可少的技能之一。

-------------本文结束感谢您的阅读-------------
0%