Overleaf Editor Custom VIM Keybindings

Bind fd to <esc> in overleaf

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Greasemonkey lub Violentmonkey.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana będzie instalacja rozszerzenia Tampermonkey lub Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, musisz zainstalować rozszerzenie menedżera skryptów użytkownika.

(Mam już menedżera skryptów użytkownika, pozwól mi to zainstalować!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Musisz zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

(Mam już menedżera stylów użytkownika, pozwól mi to zainstalować!)

// ==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)
})();