2013-03-18 28 views
10

Tôi đang cố gắng kích hoạt trình xử lý keyBoard của Ace cho Vim yêu dấu của tôi trên github gists. Điều này có vẻ như nó sẽ là một điều dễ dàng để làm, nhưng tôi đấu tranh để:Bật chế độ Vim trong gist Ace Editor

  1. Tìm các đối tượng đó trình biên tập ace ý chính được gắn vào (các ace mặc định editor không được định nghĩa)
  2. Set nó để sử dụng VIM, thông qua tổ chức Vim github của ràng buộc: https://gist.github.com/assets/ace/keybinding/vim-b9f3b98dd13151f9b4c7279d8259b69e.js

tôi thấy đoạn mã sau trên Google Group Ace:

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

Nhưng điều đó không làm việc (ngay cả khi tôi thay thế các github url) vì vậy tôi giả định rằng áp dụng cho các Cloud9 IDE, và không tự/tùy chỉnh Ace.

+0

+1 ... Tôi cũng đang tìm kiếm điều này. – jdar

+0

Có một số trợ giúp từ nhóm ace google. Vui lòng thử mã bên dưới để xem liệu mã có hoạt động cho bạn hay không. –

Trả lời

9

tôi posted trên ace Google Group (+ đại diện để Harutyun) và nhận được trả lời với đoạn mã sau:

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

Những công trình như một say mê (Do lưu ý rằng phiên bản của ace mà sử dụng github thể thay đổi, có thể phá vỡ điều này).

Đó là một nỗi đau để nhập điều này vào bàn điều khiển mỗi lần, vì vậy tôi có kế hoạch thêm nó vào một kịch bản greasemonkey (một plugin chrome có thể được tốt đẹp! - cũng thấy).

Cập nhật


Tôi đã viết một nhỏ Chrome Extension cho phép bindings Vim trên hầu hết các trang web Ace.js và CodeMirror. Các vấn đề và những đóng góp chào đón tại github repo

+0

cảm ơn nick! trên gists này làm việc cho tôi ... nhưng NB nó không thành công trên github.com thích hợp. – jdar

23

Trong phiên bản mới nhất của ace (v1.1.1), vim và emacs bindings đến xây dựng trong các công việc sau:.

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

+1 cảm ơn bạn đã cập nhật. Gists vẫn sử dụng phiên bản cũ của Ace (tính đến tháng 12 năm 2013), nhưng hoạt động tốt cho các trang web sử dụng phiên bản mới hơn. –

+1

LƯU Ý: Tính năng này hoạt động, nhưng Ace hiện hỗ trợ nhiều trình chỉnh sửa trong một trang, do đó bạn sẽ không tìm thấy đối tượng chung cho một số 'biên tập viên' Do: 'editors [0] .setKeyboardHandler (" ace/keyboard/vim "); ' – pixelpax

+0

Có vẻ như, để hoàn nguyên về chế độ mặc định, thao tác này sẽ hoạt động:' editor.setKeyboardHandler (""); ' –

1

tôi đã không thể có được hai giải pháp khác để hoạt động. (Tiện ích của Chrome vẫn hoạt động hoàn hảo cho tôi).

Một giải pháp khác là thay đổi sang chế độ vim trong menu cài đặt.

Để truy cập menu cài đặt, hãy đảm bảo trình chỉnh sửa ACE đã tập trung và đẩy ctrl + , (Điều khiển và Dấu phẩy).

Thao tác này sẽ mở menu ở bên phải màn hình. Tìm trình đơn thả xuống "Trình xử lý bàn phím" và chọn vim. Nhấn escape hoặc nhấp vào một nơi nào đó bên ngoài menu cài đặt để đóng.

vim chế độ giờ đây sẽ được kích hoạt.

Các vấn đề liên quan