diff --git a/overleaf_vimrc.user.js b/overleaf_vimrc.user.js new file mode 100644 index 0000000..2d0bc3b --- /dev/null +++ b/overleaf_vimrc.user.js @@ -0,0 +1,28 @@ +// ==UserScript== +// @name Overleaf vimrc +// @namespace fr.homnomnom +// @version 0.1 +// @description Custom vimrc for CodeMirror +// @author n0m1s +// @match https://www.overleaf.com/project/* +// @grant none +// ==/UserScript== + +(function() { + 'use strict'; + const retry = setInterval(() => { + if (window._debug_editors === undefined) return; + clearInterval(retry); + // get current editor instance + const editor = window._debug_editors[window._debug_editors.length -1]; + + // vim keyboard plugin + const vimKeyboard = window.ace.require("ace/keyboard/vim"); + vimKeyboard.Vim.map(",,", "", "insert"); + vimKeyboard.Vim.map(".", ":", "normal"); + + // set the modified keyboard handler for editor + editor.setKeyboardHandler(vimKeyboard.handler); + console.log("Custom key bindings applied"); + }, 100); +})(); \ No newline at end of file