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

KEY MAPPING
