2013-03-18 13 views
10

Sto provando ad abilitare il gestore delle chiavi di Ace per il mio amato Vim sugli elenchi di github. Questo mi sembra che sarebbe una cosa facile da fare, ma sto lottando per:Abilita la modalità Vim in sintesi Ace Editor

  1. trovare l'oggetto che l'editor asso Gist è attaccato (il default asso editor non è definito)
  2. Set a utilizzare VIM, via di GitHub ospitato Vim vincolante: https://gist.github.com/assets/ace/keybinding/vim-b9f3b98dd13151f9b4c7279d8259b69e.js

ho trovato il seguente frammento su Google Gruppo Ace:

env.editor.setKeyboardHandler(require("ace/keyboard/keybinding/vim").Vim)

Ma questo non funziona (anche se sostituisco l'urit di github) quindi presumo che ciò si applichi all'IDE di Cloud9 e non all'Auto personalizzato/Ace.

+0

+1 ... Sto cercando anche questo. – jdar

+0

Ottenuto qualche aiuto dal gruppo google di Ace. Sentiti libero di provare il codice qui sotto per vedere se funziona per te. –

risposta

9

ho posted sulla asso Google Group (+ rep a Harutyun) e ha ricevuto una risposta con il seguente codice:

ace.require("ace/lib/net").loadScript("https://rawgithub.com/ajaxorg/ace-builds/master/src-min-noconflict/keybinding-vim.js", 
function() { 
    e = document.querySelector(".ace_editor.ace-github").env.editor; 
    e.setKeyboardHandler(ace.require("ace/keyboard/vim").handler); 
}) 

che funziona come un fascino (Da notare che la versione di ace che usi GitHub può cambiamento, che può rompere questo).

È un problema inserire questo nella console ogni volta, quindi ho intenzione di aggiungerlo a uno script greasemonkey (un plug-in di Chrome potrebbe essere bello! - ben vedere).

Aggiornamento


ho scritto un piccolo Chrome Extension che consente attacchi di Vim sulla maggior parte dei siti Ace.js e CodeMirror. Problemi e contributi offerti al github repo

+0

grazie nick! sugli elenchi funziona per me ... ma NB non funziona correttamente su github.com. – jdar

23

Nella versione più recente di ace (v1.1.1), Vim e Emacs vengono costruiti nei seguenti lavori:.

editor.setKeyboardHandler("ace/keyboard/vim"); 
+1

+1 grazie per l'aggiornamento. Gli elenchi utilizzano ancora la vecchia versione di Ace (a partire da dicembre 2013), ma funziona perfettamente per i siti che utilizzano la versione più recente. –

+1

NOTA: Funziona, ma Ace ora supporta più editor in una pagina, quindi non troverai l'oggetto globale per un singolare 'editor' Do:' editor [0] .setKeyboardHandler ("ace/keyboard/vim"); – pixelpax

+0

Sembra che, per ripristinare la modalità predefinita, questo funzioni: 'editor.setKeyboardHandler (" ");' –

1

non ero in grado di ottenere il altre due soluzioni per funzionare. (Tuttavia, l'estensione di Chrome per Chrome funziona perfettamente per me.)

Un'altra soluzione è passare alla modalità vim nel menu delle impostazioni.

Per accedere al menu delle impostazioni, assicurarsi che l'editor ACE sia attivo e premere ctrl + , (Controllo e Virgola).

Questo aprirà il menu sul lato destro dello schermo. Individua il menu a discesa "Keyboard Handler" e seleziona vim. Premere escape o fare clic su un punto fuori dal menu delle impostazioni per chiuderlo.

vim ora dovrebbe essere attivato.

Problemi correlati