VIM文件编译器

VIM基本介绍

Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。
VIM是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。
1999年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线, 总的来看, Vim和Emacs在文本编辑方面都是非常优秀的。

Vim是从 vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。
vim的设计理念是命令的组合。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。同时VIM与很多快捷键设置和正则表达式类似,可以辅助记忆。并且vim针对程序员做了优化

VIM模式介绍

Vim的六种基本模式

普通模式(Normal mode)在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这也是Vim启动后的默认模式。这正好和许多新用户期待的操作方式相反(大多数编辑器默认模式为插入模式)。
插入模式(Insert mode)在这个模式中,大多数按键都会向文本缓冲中插入文本。大多数新用户希望文本编辑器编辑过程中一直保持这个模式。在插入模式中,可以按ESC键回到普通模式。
可视模式(Visual mode)这个模式与普通模式比较相似。但是移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。当执行一个非移动命令时,命令会被执行到这块高亮的区域上。Vim的"文本对象"也能和移动命令一样用在这个模式中。
选择模式(Select mode)这个模式和无模式编辑器的行为比较相似(Windows标准文本控件的方式)。这个模式中,可以用鼠标或者光标键高亮选择文本,不过输入任何字符的话,Vim会用这个字符替换选择的高亮文本块,并且自动进入插入模式
命令行模式(Command line mode)在命令行模式中可以输入会被解释成并执行的文本。例如执行命令(:键),搜索(/和?键)或者过滤命令(!键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式
Ex模式(Ex mode)这和命令行模式比较相似,在使用:visual命令离开Ex模式前,可以一次执行多条命令

Vim强大的编辑能来自于其普通模式命令。普通模式命令往往需要一个操作符结尾。例如普通模式命令dd删除当前行,但是第一个"d"的后面可以跟另外的移动命令来代替第二个d,比如用移动到下一行的"j"键就可以删除当前行和下一行。另外还可以指定命令重复次数,2dd(重复dd两次),和dj的效果是一样的。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效地进行文本编辑。
在普通模式中,有很多方法可以进入插入模式。比较普通的方式是按a(append/追加)键或者i(insert/插入)键。

vim主要使用三种模式:命令模式,插入模式,退出模式

退出模式

:wq退出保存
:q退出,在文件内容没有被修改时使用
:q!强制退出不保存,在改变文件后不想保存时使用
:wq!强制退出保存,对只读文件编写时使用
:e!将文档还原成最原始的状态

命令模式

Vim强大的编辑能来自于其普通模式命令。普通模式命令往往需要一个操作符结尾。例如普通模式命令dd删除当前行,但是第一个"d"的后面可以跟另外的移动命令来代替第二个d,比如用移动到下一行的"j"键就可以删除当前行和下一行。另外还可以指定命令重复次数,2dd(重复dd两次),和dj的效果是一样的。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效地进行文本编辑。
在普通模式中,有很多方法可以进入插入模式。比较普通的方式是按a(append/追加)键或者i(insert/插入)键。

vim文件一打开就进入此模式,即默认模式,在此模式中可以使用上下左右键来移动光标,也可以删除字符或删除整行,复制粘贴文件数据

插入模式

进入插入模式

i在当前光标处进行编辑
I在行首插入
A在行末插入
a在光标后插入编辑
o在当前行后插入一个新行
O在当前行前插入一个新行
cw替换从光标所在位置后到一个单词结尾的字符
s光标所在字符删除并播入
S光标所在行删除并播入

可视化模式

操作思路

要选取一段文本,首先将光标移到段首,在普通模式下按 v 进入可视模式,然后把光标移到段末。 需要注意,光标所在字符是包含在选区中的

注意要点

  • 用 v 命令进入的字符可视化模式(Characterwise visual mode)。文本选择是以字符为单位的。
  • 用 V 命令进入的行可视化模式(Linewise visual mode)。文本选择是以行为单位的。
  • 用 ctrl-V 进入的块可视化模式(Blockwise visual mode)。可以选择一个矩形内的文本。

常用的(可视模式)命:

x或d剪切(即删除,同时所选的文本进入剪贴板)
y复制
r字符所有字符替换为新字符
I(大i)选中添加的区块,按大i后写入添加字符,再按Esc
u U分别是所有字母变小写、变大写、反转大小写
“>”和“<"将选中字符右移或左移 shiftwidth位置
p 或 P当输入了命令以后,VIM 将回到普通模式,这时可以按 p 或 P 进行粘贴。
J命令可以将高亮显示的文本内容合并为一行,同时以空格来分隔各行。
gJ如果不希望在行间插入空格,那么可以使用 gJ 命令。
g?可以使用rot 13算法来加密高亮显示的文本。针对同一个文本再次执行加密命令,就可以进行文本解密。
:可以对选定范围进行操作。例如:我们先在可视化模式下选中文本,然后执行 :write block.txt 命令,就可以将文本块写入另一文件中。选择多行,然后执行 :sort 命令,则可以对选中的文本进行排序。

在这里插入图片描述

命令模式下字符增删改查

字符搜索

/关键字搜索关键字
n向下匹配
N向上匹配
gg跳转到第一行
G跳转到最后一行
ngg / nG跳转到最后一行
Ctrl+f向下翻页
Ctrl+b向上翻页
h光标左移
j光标下移
k光标上移
l光标右移
w移到下一个单词的开头
W移到下一个单词的开头,忽略标点
b移到上一个单词的开头
B移到上一个单词的开头,忽略标点
e移到下一个单词的末尾
E移到下一个单词的末尾,忽略标点
nw/nW/nb/nB跳转n个单词
L移到当前屏幕最后一行
M移到当前屏幕中间行
$到当前行最后一个字符
^到当前行第一个字符
0到当前行第一个字符

复制字符

yl复制一个字母
y3l复制3个字母
yw复制1个单词
y3w复制3个单词
yy复制1行
y3y复制3行
p粘贴
u恢复
ctrl+r撤销恢复

在这里插入图片描述

删除字符

dl删除1个字母
d3l删除3个字母
dw删除1个单词
d3w删除3个单词
dd删除1行
d3d删除3行
dG从当前行删除到最后一行
dgg从当前行删除到第一行
x删除当前字符
nx删除当前向后n个字符
X删除光标前的字符
nx删除当前向前n个字符
cl剪切1个字母
c3l剪切3个字母
cw剪切 1个单词
c3w剪切3个单词
cc剪切1行
c3c剪切3行
p粘贴
u恢复
ctrl+r撤销恢复

替换字符

:%s/要替换的字符/替换成的字符/g
:%s/:/@/g替换全文的:为@
%1,5s/:/@/g替换1-5行的:为@
% s标示所有的行
g标示所有的列
/text向后查找text字符
?text向前查找text字符

其他字符

J将下一行连接到本行末尾
nJ将下n行连接到本行末尾
~将当前字符切换大小写
n~将当前向后n个字符切换大小写
~将当前字符切换大小写
g~~切换当前行大小写
u列编辑模式下,选中列转换成小写
U列编辑模式下,选中列转换成大写
guu当前行转换成小写
gUU当前行转换成大写
guw当前单词转换成小写
gUw当前单词转换成大写

在这里插入图片描述

VIM的其他操作

set调整参数

:set nu在每一行前显示行号
:set nonu取消行号显示
:set mouse=a显示鼠标
:set cursorline显示行线
:set nu在每一行前显示行号
:set ic查找时忽略大小写
:set noic查找时对大小写敏感在这里插入图片描述

:set nonu 取消行号显示在这里插入图片描述
:set mouse=a 显示鼠标
在这里插入图片描述

注意:在vim程序中设定vim的工作方式时临时的,在vim关闭后会还原,如果要永久保存vim的工作方式则需要编辑vim的配置文件:/etc/vimrc

vim的分屏功能

ctrl+w s上下分屏
ctrl+w v左右分屏
ctrl+w c关闭光标所在屏幕

在这里插入图片描述

在命令模式下光标的移动

:gg光标移动到文件的第一行
:G光标移动到文件的最后
:n数字光标移动到到指定的行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值