VIM编辑器

简介

vi是一个命令行界面下的文本编辑工具,最早在1976年由bill joy开发,当时名字叫做ex,vi支持大多数操作系统(最早在BSD上发布),并且功能已经十分强大。1991年bram基于vi进行了改进,发布了vim,加入了GUI的支持。
当前vim已经不仅仅是普通意义上的文本编辑器(如window上的记事本),而是被广泛的作为在文本编辑,文本处理,代码开发等用途。
Linux中知名的文本编辑器还有emacs,它的功能比vim还要强大。
绝大数Linux系统上均安装vim,vim比vi的功能更为强大。
vim命令可以启动vim编辑器
一般我们使用vim+目标文件路径的形式使用vim
如果目标文件存在,则vim打开文件,如果目标文件不存在,则vim新建并打开该文件

四种模式

normal模式

vim启动后,默认进入normal模式,任何模式都可以通过esc键回到normal模式(可以按几次)。normal模式下可以通过键入不同的命令完成选择,复制,粘贴,撤销等等操作。

进入插入模式:
i(insert): 在光标前插入文本
o (open a line below): 在当前行的下面插入新行
a (append):追加,在当前光标后插入
A:在行最后位置插入
I: 在行最前的位置插入
O:在当前编辑位置的上面新起一行

移动:
h:左
j:下
k:上
l:右

在单词之间移动:
w/W 移到下一个word/WORD开头,
e/E 下一个word/WORD结尾
b/B 回到上一个word/WORD开头 backword
word指的是以非空白符分割的单词,WORD指的是以空白符分割的单词。

行间搜索移动:
同一行快速移动的方式其实是搜索一个字符并且移动到该字符
使用f{char}可以移动到char字符上,t移动到char的前一个字符
如果第一次没有搜到,可以用分号;/逗号,继续搜该行下一个/上一个。
大写的F表示反过来搜前面的字符

vim 水平移动:
0移动到行首第一个字符
^移动到第一个非空白字符
$移动到行尾
g_移动到行尾非空白字符

vim垂直移动:
在句子sentence和段落paragraph间移动
使用括号()在句子间移动
使用{}在段落之间移动
使用easy-montion插件移动。

vim 页面移动:
gg/G移动到文件开头和结尾
ctrl+o快速返回。
H/M/L 跳转到屏幕的开头head,中间middle,结尾lower
ctrl+u ctrl+f上下翻页,upword/forword
zz把屏幕置为中间。

删除:
x:删除当前光标所在的一个字符
.:再次删除一个字符
N:
10x:删除10个连续字符
3dd:删除三行文本
dw:删除一个单词,dnw,n换为数字,删除n个单词

行间跳转:
nG(c shift+g): 游标移动到第几行
gg:游标移动第一行
G(shift+g) :游标移动到最后一行
ctrl+o : 快速回到上一次光标所在位置
~:将游标所在字母变成大写

复制和粘贴:
yy将当前行的内容放入缓冲区(复制游标所在的整行,3yy表示复制3行)
y^ 复制至行首,或y0。不含光标所在处字符。
y$ 复制至行尾。含光标所在处字符。
yw 复制一个单词。
y2w 复制两个单词。
yG 复制至文本末。
y1G 复制至文本开头。
p将缓冲区中的文本放入光标后(粘贴)
p(小写)代表粘贴至光标后(下)
P(大写)代表粘贴至光标前(上)
dd:剪切
p:粘贴
ddp:交换上下行位置

查找和替换(undo命令):

r+<代替换字母>:将游标所在字母替换为指定字母
R 连续替换,直到按下Esc
cc 替换整行,即删除游标所在行,并进入插入模式
cw 替换一个单词,即删除一个单词,并进入插入模式
C(大写) 替换游标以后至行末
~ 反转游标所在字母大小写

撤销:
u{n} 撤销一次或n次操作
U(大写) 撤销当前行的所有修改
Ctrl+r redo,即撤销undo的操作

快速缩进:
>> 整行将向右缩进
<< 整行向左回退
:set shiftwidth? 获取目前设定值
:set shiftwidth=10 设置缩进为10个字符
命令行模式下输入
:ri(right)命令使本行文本靠右
:ce(center)命令使本行内容居中
le(left)命令使本行内容靠左

快速查找:
/ string 然后回车查找字符串string
n 查找下一个string
? tcp 向上查找字符串tcp
N 查找上一个出现的tcp
命令模式下输入 noh 回车取消搜索

    普通模式下输入\*寻找游标所在处的单词
    普通模式下输入\#同上,但 \# 是向前(上)找,\*则是向后(下)找
    普通模式下输入g\*同\* ,但部分符合该单词即可
    普通模式下输入g\#同\# ,但部分符合该单词即可

insert模式

 命令模式 按i 即可进入插入模式,在插入模式中可以输入编辑文本内容,按esc键可以返回命令模式

如何快速纠错
ctrl+h 删除上一个字符
ctrl+w 删除上一个单词
ctrl+u 删除当前行

快速切换normal和insert
esc,ctrl+c,ctrl+[
gi快速跳转到你最后一次编辑的地方并进入插入模式。
如何映射方便的快捷键来替代esc

command模式

 在normal模式中按“:”进入command模式,光标会移动到底部,在这里可以保存,修改或退出vim
    :w  write保存当前修改
    :q  quit退出
    :wq write quit 保存退出
    :q!  quit!强制退出
    :x 保存并退出
    :set nu    显示行号
    :! 系统命令 执行一个系统命令并显示结果
    :sh  切换到命令行,使用ctrl+d切换回vim
    :vs(vertical split),sp(split) 分屏
 :% s/java/python/g 全局替换 java替换为python

visual(可视)模式

visua模式一般用来块状选择文本,normal模式下使用v进入visual选择。使用V选择行。使用ctrl+v进行块状选择。


   转载规则


《VIM编辑器》 lendea 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录