VIM:是VI的升级版,是带有颜色显示的,如果没有该命令,使用yum -y install vim-enhanced进行安装
分为一般模式,编辑模式,命令模式
vim颜色显示和移动光标,配置文件位于/etc/vimrc下,一些高级功能可以在家目录下的.vimrc文件中进行配置,默认为空
一般模式下移动光标:
hjkl分别对对应方向键(←↓↑→),进行单个字符的移动
连续按gg,光标移动到首行行首,按G光标移动到末行行首
NG → 到第 N 行
按数字0或^光标移动到当行行首,按$光标移动到当行行尾
ndd:n代表数字,如按下5dd,则表示剪切包含当行在内往下一共5行,不按数字直接dd则表示剪切当前所在行
nyy:n代表数字,如按下5yy,则表示复制包含当行在内往下一共5行,不按数字直接yy则表示复制当前所在行
p表示在当前行下一行进行粘贴,P表示在当前行的上一行进行粘贴
u表示撤销,最多撤回次数为50次
w → 到下一个单词的开头
e → 到下一个单词的结尾
v (可视化的选择)→ 先按v,然后移动光标,你就会看到文本被选择,然后,你可能d,也可y,然后p或P进行粘贴
编辑模式:按a或者i即从一般模式进入到编辑模式
a → 在光标后插入
i → 在光标后插入
o → 在当前行后插入一个新行
O → 在当前行前插入一个新行
命令模式:
:wq保存退出
:w保存
:q!强制退出
:x保存退出
/或?进行正向和反向搜索关键字,比如/root就是查找包含root关键字的行,按n跳转到下一个,?与其操作相反
:n1,n2s/root/panqi/g 从n1行开始到n2行,将root全替换为panqi,如果不加g(global),只会替换一行中第一个出现的
1,$(表示末行),如果要替换的字段本身含有/,则替换符可以用其他代替,比如#
:set nu显示行号
:nohl不显示高亮
wq和x的区别:当vim一个文件时,没有进行任何操作就直接退出,如果使用:wq,则会修改mtime,使用x退出则不会
vim扩展知识:(转载他人)
区域选择
在visual 模式下,这些命令很强大,其命令格式为
a 和 i
action可以是任何的命令,如 d (删除), y (拷贝), v (可以视模式选择)
object 可能是: w 一个单词, W 一个以空格为分隔的单词, s 一个句字, p 一个段落。也可以是一个特别的字符:”、 ‘、 )、 }、 ]
假设你有一个字符串 (map (+) (“foo”)).而光标键在第一个 o 的位置
vi" → 会选择 foo.
va" → 会选择 "foo".
vi) → 会选择 "foo".
va) → 会选择("foo").
v2i) → 会选择 map (+) ("foo")
v2a) → 会选择 (map (+) ("foo"))
块操作
块操作,典型的操作: 0 I– [ESC]
^ → 到行头
<C-v> → 开始块操作
<C-d> → 向下移动 (你也可以使用hjkl来移动光标,或是使用%,或是别的)
I-- [ESC] → I是插入,插入“--”,按ESC键来为每一行生效。
(注:在Windows下的vim,你需要使用 而不是 , 是拷贝剪贴板。)
自动提示
在 Insert 模式下,你可以输入一个词的开头,然后按 或是,自动补齐功能就出现了……
宏操作
qa 操作序列 q, @a, @@
qa 把你的操作记录在寄存器 a。
于是 @a 会replay被录制的宏。
@@ 是一个快捷键用来replay最新录制的宏。
示例
在一个只有一行且这一行只有“1”的文本中,键入如下命令:
qaYp<C-a>q→
qa 开始录制
Yp 复制行.
<C-a> 增加1.
q 停止录制.
@a → 在1下面写下 2
@@ → 在2 正面写下3
现在做 100@@ 会创建新的100行,并把数据增加到 103.
可视化选择
前面,我们看到了 的示例 (在Windows下应该是),我们可以使用 v 和 V。一但被选好了,你可以做下面的事:
J → 把所有的行连接起来(变成一行)
< 或 > → 左右缩进
= → 自动给缩进
在所有被选择的行后加上点东西:
<C-v>
选中相关的行 (可使用 j 或 <C-d> 或是 /pattern 或是 % 等……)
$ 到行最后
A, 输入字符串,按 ESC。
分屏
下面是主要的命令,你可以使用VIM的帮助 :help split.
:split → 创建分屏 (:vsplit创建垂直分屏)
<C-w><dir> : dir就是方向,可以是 hjkl 或是 ←↓↑→ 中的一个,其用来切换分屏。
<C-w>_ (或 <C-w>|) : 最大化尺寸 (<C-w>| 垂直分屏)
<C-w>+ (或 <C-w>-) : 增加尺寸