obsidian_vim
Obsidian快捷鍵
Vim 專區
外掛 Relative Line Numbers (相對行數)
相對行號功能,主要搭配vim編輯時快速刪除我要的行數(3dd,5dd這類的操作)
Obsidian實現 類似 Easymotion功能(但還差蠻多的)
需要安裝 Jump to Link
DEMO
這邊提供我快速啟動的方法,主要是搭配此外掛的 jump-to-link:activate-jump-to-anywhere-Regex
編輯 .obsidian.vimrc 把下面這段加入,下面這段意思是:在一般模式按下空白鍵啟動 jump-to-anywhere-Regex
exmap jumptoanywhere obcommand mrj-jump-to-link:activate-jump-to-anywhere
nmap <Space> :jumptoanywhere
查看Obsidian的command
Ctrl + Shift + i
打開 開發者模式
使用 :obcommand
輸入下去可以查看Obsidian 的所有命令
查詢vim 命令列的對照表 關鍵字 :h key-notation
快捷鍵預設值
codemirror-vim/vim.js at master · replit/codemirror-vim · GitHub
一般常用快捷鍵
切1換突顯
Ctrl + K
程式碼
Ctrl + j
Hello World
註腳測試
y => 複製
P => 貼上
游標
Ctrl + Alt + J
游標切換下面視窗
Ctrl + Alt + k
游標切換上面視窗
Ctrl + Alt + h
游標切換左面視窗
Ctrl + Alt + l
游標切換右面視窗
打字
A
行末加上字(直接把游標移到最後面)
C
修改自行末(游標後面的都刪除)
x
del
X
倒退
移動
}
段尾
{
段首
Ctrl + D
往下 大幅度
Ctrl + U
往上 大幅度
G
頁面底端
g
頁面頂端
E or e
單字尾
W or w
單字頭
i
字母前方插入文字
a
字母後方插入文字
C^
取代有標前的文字
C$
取代游標之後的文字
C
游標右邊刪除
c0
游標左邊刪除
ea
跳到該行的最後一段文字 = A
0
游標移動到最前面
^
游標移動到最前面文字
``^ 行首 跟0的差別在於0最前面,^文字前
視覺模式
v
表示視覺模式用於選取文字
V
視覺-多行模式
vw
= 選取一個文字
viw = 不論游標在哪直接複製該單字
💪 release of Lastaset. diw 表示刪除
vaw = 同上
包含空白💪 "release of Lastaset" daw 表示刪除包含空白
v{ }
選取區塊
vit
用在html tag超有用 Obsidian沒用
<title>Hello World</title>
組合技
vip
選取一個段落
v3w
表示選取三個文字
v3j
= 往下複製三行
vi + ( )
選區( ) 內的文字
hellajwefioawjfewaowfej ijawofijwae aiwejowafj awefijawfoi
awoefjweao oiajwefiowaj . waioejfweoijf aoiwejfoiewaj
我我我我我我我我我我。 我我我我我ㄨA.ㄛ
ve
= 選取該文字的尾巴
vey
= 選取文字並複製單字
視覺模式Block
ctrl + v
類似alt 多行選取功能
ctrl + v + i + #
在前面加上#字符號
##abcdefg
##abcdefg
##abcdefg
實用技巧
.
重複動作,表示上面的#也可以用
J
合併文字 💪
ctrl + U
插入模式砍掉游標前的文字 (跟shell一樣)
ctrl + w
插入模式閃掉郵編前一個文字(跟shell一樣)
de
單除單一詞
y$
拷貝到最後
yt"
拷貝到雙引號的文字
ggVG
全選
// vip 複製整段程式碼
// vi() 選取括號內文字 va()
// vi{ or } 表示修改整個{}的內容(必用
> [!caution] Select Video
> A video needs to be opened before using this hotkey.
Highlight your video link and input your 'Open video player' hotkey to register a video.
)
function (string a, string b){
// vi + " 選取 雙引號內的資料
Write.Line("Hello World");
}
vi + [ ]
選取 [ ] 內的文字
array = [ msg01, msg02 ]
vi + { }
選區 { } 內的文字
function ( string c, int d ){
WriteLine.Respone("TEST");
Console.Write("TEST2");
}
vi + 2 (
表示第二個中括號的文字
String text = ("Hello " + ( "vim " + " " + "SE"));
寄存器
"q3yy
寄存在q
複製 3行資料
"a2yy
既存在a 複製2行資料
"ay
複製選取的文字
"ap
貼上選取的文字
冒號
表示有暫存記得意思
讓外面的剪貼簿也可以在vim內使用 Obsidian沒用
:set clipboard = unnamed
文字替代 Replace 功能
https://youtu.be/iviwEUOLUXE?t=448