vim的安装
vim设计哲学
vim模式
普通模式进入插入模式
① i/I光标前/行首前
② o/O打开一行,下一行/上一行插入
③ a/A光标后插入/行尾插入
普通模式进入可视模式
v: 进入可是模式,再次v进入普通模式
普通模式进入命令模式
: 普通模式进入命令模式
esc: 命令模式进入普通模式
jj: 插入模式进入普通模式
光标移动
普通模式下的移动
左上下右移动
h: 左
j: 上
k: 下
l: 右
单词的移动
w: 跳到下一个单词开头 word
e: 跳到单词或者下一个单词结尾 end
b: 跳到单词或者上一个单词开头 before
ge: 跳到上一个单词结尾 ge
全文的跳转
^: 从首开行始跳到第一个非空字符
0: 跳到行首
$: 跳到行尾
gg: 跳到第一行
G: 调到最后一行
num+j/k: 向上或者向下n行
行的移动
alt + 上下箭头
字符的跳转
f {char}: 向下查找一个char字符
F {char}: 向上查找一个char字符
t {char}: 跳到下一个字符char的前一个字符位置
T {char}: 跳到上一个字符char的后一个字符位置
; : 重复上一次的字符查找操作
, : 反向查找上一次的查找命令
操作符
d:delete-删除 dd 直接删除一行
c: change-修改 cc 删除一行并进行编辑状态
y: yank-复制 yy 复制p粘贴
p: -粘贴
u: 撤销
v: visual-选中并进入visual模式
动作 motion
i(inner)和a(around)的区别
i": "foo"会选中""引号里面的foo ---- a":"foo"会选中"foo"
iw: foo会选中一个单词 ---- aw: foo会选中单词以及单词前面的一个空格
i(: (foo)会选中括号里面的单词 ---- a(: (foo)会选中括弧以及括弧里面的单词
操作符和动作的结合
ciw: 修改里面的单词,删除里面的单词进入插入模式
ciyyp: 修改里面的单词复制黏贴
删除泛型:di<,da<
// TODO 1.修改 Hello World ciw
name: 'Hello World',
// TODO 2.修改 ci< 删除da</di<
age: age<number>,
// TODO 3.删除返回值 di{ 或者 diB, yi{ 复制大括弧中
demo: {
flag: true,
a: 0,
b: 7
},
flag: true,
a: 0,
b: 7,
// TODO 4.删除括弧 di( 或者dib [b代表了小括弧]
foo: function() {
console.log('foo')
},
//TODO 5.删除两行 2dd
//TODO 6.删除到,修改到,复制到 操作符[d/c/y] + f char [p]
namespace: 'namespace',
//TODO 7.删除到,修改到,复制到开头或者结尾 操作符 + f + ^ $
renderFunction: () => {
},
// TODO 8.删除,修改,复制整个文件 die cie yie
// TODO 9.删除,修改,复制标签 dit[删除标签内部的内容] cit fit
切换大小写
~ 光标下的字母改变大小写
3~ 光标位置开始的3个字母改变其大小写
g~~ 改变当前行字母大小写
gUU 将当前行的字母改成大写
guu 将当前行的字母改成小写
gUaw(gUiw) 将光标下的单词改成大写
guaw(guiw) 将光标下的单词改成小写
可视模式选中情况下U 会转换成大写 u 会转换成小写
tips函数的跳转
gd: 函数的跳转 go to defined
ctr+o 退出到原先的函数位置
gh: 光标悬浮提示 go hover
编辑器的切换
gt/gT: 编辑器tabs跳转
2gt/2gT: 跳到指定的位置
ctr+0/1/2/...: 跳转到左侧区域 [hjkl] [空格可折叠,打开] [o打开,光标并未进入,l光标可进入编辑区域]
左侧文件操作
ctr+0 上下选择,空格折叠打开文件,ctr+shift+P新建文件
其他操作
缩进:v+选中 shift <[左移]/>[右移]