Overleaf Editor Custom VIM Keybindings

Bind fd to <esc> in overleaf

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

// ==UserScript==
// @description  Bind fd to <esc> in overleaf
// @name         Overleaf Editor Custom VIM Keybindings
// @namespace    overleaf_spacemacs
// @version      1
// @match        https://www.overleaf.com/*
// @grant        GM_addStyle
// ==/UserScript==
 
(function() {
    // poll until editor is loaded
    const retry = setInterval(() => {
      	console.log("Retry")
      	console.log(window.wikiEnabled)
        if (unsafeWindow._debug_editors === undefined) return
      	clearInterval(retry)
        // get current editor instance
        const editor = unsafeWindow._debug_editors[0]
        // vim keyboard plugin
        const vimKeyboard = unsafeWindow.ace.require("ace/keyboard/vim")
        // add custom keybindings - insert mode applies on insert
        vimKeyboard.Vim.map("fd", "<Esc>", "insert")
        // set the modified keyboard handler for editor
        editor.setKeyboardHandler(vimKeyboard.handler)
        console.log("Custom key bindings applied")
    }, 1000)
})();