VIM拥有多种工作模式,我们最常用就是普通模式、插入模式以及命令模式
在我们直接输vim的时候 默认是创建一个新文件,只不过我们在退出的时候需要指定文件名
后面如果跟了文件名参数 文件存在就是打开 不存在那就是创建了
回车以后 默认是进入普通模式(这个模式可以实现基本的光标移动以及大量的快捷键操作)
如果需要进入插入模式可以按下面几个键:
a 插入位置是当前光标的后面
A 插入位置是当前段落的段尾
i 插入位置是当前光标的前面
I 插入位置是当前段落的段首
o 在当前行的后面创建新的空白行
O 在当前行的前面创建新的空白行
我们可以通过“esc”键回到普通模式(当你不知道自己处于什么模式的时候 也可以这么干)
在普通模式下 输入“:”可以进入命令模式 之后就可以输入指令来实现特定的功能
光标移动快捷键
我们来看下移动光标的几个快捷键(上下左右都可以移动,但是效率低下)
h 左移 一位
j 下移 一行(回车为换行符)
k 向上 一行
I 向右 一位
gg 文件首行
G 文件末尾
nG 移动到n行(n是数字)
^ 当前行的首字符(其实相当于home键)
$ 当前行的尾字符(相当于end键)
fx 当前行的下一个x字符
Fx 当前行的上一个x字符
w 向右移动 一个单词
nw 向右移动 n个单词(n是数字)
b 向左移动 一个单词
nb 向左移动 n个单词(n是数字)
编辑文件的快捷键(普通模式)
x 删除当前字符
dd 删除一行
ndd 删除n行(n是数字)
d$ 删除光标到行尾的内容
J 删除换行符
u 撤销上一步操作(uu是撤销两步操作)
rx 当前字符替换为x(x是任何键盘的单个输入)
yy 复制当前行
P 粘贴到当前行之后
p 粘贴到当前行之前
查找(普通模式)
“/”实现自上往下的查找功能 n跳到下一个匹配的位置 N调到上一个匹配的位置
“?”实现自下往上的查找功能 n跳到上一个匹配的位置 N调到下一个匹配的位置
替换 (命令模式)
我们来看几个demo
:s/test/demo/ 当前行中第一个test替换为demo
:s/test/demo/g 当前行中所有的test替换为demo
:3,5 s/test/demo/g 第三行到第五行的所有test替换为demo
:% s/test/demo/g 所有行的test替换为demo
保存及退出(命令模式)
:q! 不保存并退出
:wq 保存并退出
:x 保存并退出
:w 保存
:w b.txt 另存为b.txt
小技巧
1.显示行号
在命令模式下 :set number(:set nu) 都可以
2.忽略大小写
在命令模式下 :set ignorecase
3.多窗口
编辑一个文档的多行可以分割窗口(其实看什么软件了 有些可以打开多个终端)
在命令模式下 :split
窗口的切换可以使用几个快捷键ctrl+w+(h/j/k/I)h左边 I右边 j上边 k下面
在命令模式下 :close
其实也可以输入:split second.txt 可以在新的窗口打开新的文件(实现多窗口 多文档)
(:split 默认是水平分割 :vsplit 默认是垂直分割)
4.执行shell命令
直接输入:! 命令 eg: :!pwd 查看文档的当前路径
就可以了
5.自动补齐
ctrl+n