1
0
silverbullet/plugs/editor/vim.ts

35 lines
948 B
TypeScript
Raw Normal View History

2023-08-28 15:12:15 +00:00
import { readCodeBlockPage } from "$sb/lib/yaml_page.ts";
import { editor, store } from "$sb/syscalls.ts";
2023-01-23 17:52:17 +00:00
export async function toggleVimMode() {
let vimMode = await store.get("vimMode");
2023-01-23 17:52:17 +00:00
vimMode = !vimMode;
await editor.setUiOption("vimMode", vimMode);
await store.set("vimMode", vimMode);
2023-01-23 17:52:17 +00:00
}
export async function loadVimRc() {
const vimMode = await editor.getUiOption("vimMode");
if (!vimMode) {
console.log("Not in vim mode");
return;
}
try {
const vimRc = await readCodeBlockPage("VIMRC");
if (vimRc) {
console.log("Now running vim ex commands from VIMRC");
const lines = vimRc.split("\n");
for (const line of lines) {
try {
console.log("Running vim ex command", line);
await editor.vimEx(line);
} catch (e: any) {
await editor.flashNotification(e.message, "error");
}
}
}
} catch (e: any) {
// No VIMRC page found
}
}