2013-03-18 87 views
10

我試圖在github gists上啓用我的心愛的Vim的Ace的keyBoard處理程序。這似乎是這將是一件容易的事,但我很努力:在主要編輯器中啓用Vim模式編輯器

  1. 找出要點王牌編輯器連接到(王牌默認editor沒有定義)
  2. 將其設爲對象使用VIM,通過GitHub的託管Vim的結合:https://gist.github.com/assets/ace/keybinding/vim-b9f3b98dd13151f9b4c7279d8259b69e.js

我發現在谷歌王牌集團下面的代碼片段:

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

但是這並不起作用(即使我替換了github url),所以我假設這適用於Cloud9 IDE,而不是selfhosted/custom Ace。

+0

+1 ...我也在尋找這個。 – jdar 2013-04-18 15:34:05

+0

從Ace谷歌集團獲得一些幫助。請隨時嘗試下面的代碼,看看它是否適合你。 – 2013-04-18 21:46:04

回答

9

posted的王牌谷歌集團(+代表到Harutyun),並獲得用下面的代碼的答覆:

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); 
}) 

這就像一個魅力的作品(請注意,王牌的版本github上使用可能改變,這可能會破壞這一點)。每次將它輸入控制檯都很麻煩,因此我打算將它添加到一個greasemonkey腳本(一個chrome插件可能不錯!

更新


我寫了一個小Chrome Extension,使大多數網站Ace.js和CodeMirror Vim的綁定。問題和貢獻在github repo

+0

謝謝尼克!在gists這適用於我...但注意它在github.com適當的失敗。 – jdar 2013-05-07 20:58:45

23

在ACE(V1.1.1)的最新版本的歡迎,VIM和emacs綁定進來建於以下工作:

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

+1感謝您的更新。 Gist仍然使用Ace的舊版本(截至2013年12月),但對於使用較新版本的網站非常有用。 – 2013-12-08 01:40:54

+1

注意:這個方法可行,但是Ace現在在一個頁面中支持多個編輯器,所以你不會找到一個單獨編輯器的全局對象。 Do:'editors [0] .setKeyboardHandler(「ace/keyboard/vim」 );' – pixelpax 2016-11-20 20:25:33

+0

看來,要恢復到默認模式,這個工作:'editor.setKeyboardHandler(「」);' – 2016-11-30 21:32:31

1

我是不是能夠得到其他兩種解決方案工作。 (儘管如此,Nick的Chrome擴展仍然適用於我。)

另一種解決方案是在設置菜單中更改爲vim模式。

要訪問設置菜單,請確保ACE編輯器具有焦點,然後按ctrl + ,(控制和逗號)。

這將打開屏幕右側的菜單。找到「鍵盤處理程序」下拉列表並選擇vim。按escape或點擊設置菜單關閉它。

vim現在應激活模式。