VIM-上古神器
2017-09-01 本文已影响36人
运维阿文
vim命令
VIM是linux系统上最著名的文本/代码编辑器,也是早期的vi编辑器的加强版,它最大的特色就是完全使用键盘命令进行编辑,脱离了鼠标操作虽然使得入门变得困难,但上手之后键盘流的各种巧妙组合操作却能带来极大幅的效率提升.
在linux操作系统下面一般会使用VIM编辑器来编写代码,因为我们的服务器一般不会开启图形化界面给大家来使用.
VIM模式
- VIM主要的模式有3个
-
Normal Mode: 字面意思就是普通模式,VIM在启动后就是在普通模式,在这个模式下你的操作是命令VIM帮助你完成某个动作,比如你在键盘上单击h安装,就等同于按下方向键"<"光标向左移一个字符,一般是查看文档
-
Insert Mode: 插入模式,在这个模式下我们可以对文本进行增删改来操作
-
Visual Mode: 可视模式,在这个模式下可以选中某个区域来做一些操作,这个模式可以视为局部的Normal Mode
- 模式的切换
Normal mode 切换到 Insert mode:
i:进入Insert mode,并且让光标处于当前字符之前
I:进入Insert mode,并且光标处于当前行的第一个非空字符前
a:进入Insert mode,并且光标处于当前字符之后
A:进入Insert mode, 并且光标处于当前行尾
o:进入Insert mode,并在当前行后新起一行,光标位于新行
O:进入Insert mode,并在当前行上边插入新行,光标位于新行
s:删除当前字符,然后进入Insert mode
S:删除当前行,然后进入Insert mode
Insert mode 切换到Normal mode:<ESC>按键
Normal mode 切换到Visual mode:
v:进入Visual mode,选取以字符为单位
V:进入Visual mode,选取以行为单位
Visual mode 切换到Normal mode:<ESC>按键
VIM模式.png
- 末行模式
末行模式也称ex转义模式。在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。例如:
VIM基本操作
普通模式
移动光标
h: 左移
j: 下移
k: 上移
l: 右移
M: 光标移动到中间行
L: 光标移动到屏幕最后一行行首
G: 移动到指定行,行号 -G
w: 向后一次移动一个字
b: 向前一次移动一个字
{: 按段移动,上移
}: 按段移动,下移
Ctr-d: 向下翻半屏
Ctr-u: 向上翻半屏
Ctr-f: 向下翻一屏
Ctr-b: 向上翻一屏
gg: 光标移动文件开头
G: 光标移动到文件末尾
- 删除命令
x: 删除光标后一个字符,相当于 Del
X: 删除光标前一个字符,相当于 Backspace
dd: 删除光标所在行,n dd 删除指定的行数 D: 删除光标后本行所有内容,包含光标所在字符
d0: 删除光标前本行所有内容,不包含光标所在字符
dw: 删除光标开始位置的字,包含光标所在字符
- 撤销命令
u: 一步一步撤销
Ctr-r: 反撤销
-
重复命令
.:重复上一次操作命令
-
文本行移动
>>: 文本行右移
<<: 文本行左移
- 复制粘贴
yy: 复制当前行,n yy 复制 n 行
p: 在光标所在位置向下新开辟一行,粘贴
可视模式
v: 按字符移动,选中文本
V: 按行移动,选中文本可视模式可以配合 d, y, >>, << 实现对文本块的删除,复制,左右移动
- 替换操作
r: 替换当前字符
R: 替换当前行光标后的字符
- 查找命令
/: str查找
n: 下一个
N:上一个
- 替换命令
把abc全部替换成123
末行模式下,将光标所在行的abc替换成123
:%s/abc/123/g
末行模式下,将第一行至第10行之间的abc替换成123
:1, 10s/abc/123/g
- vim里执行 shell 下命令
末行模式里输入!,后面跟命令