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 <[左移]/>[右移]
全選 ggvG
gg: 行首
v: 進入visual模式
G:選中並移動到行末