IVim

Source

(defprotocol IVim (init [vim]) (open-buffer [vim file-name]) (get-current-buffer [vim]) (set-current-buffer [vim buffer-ptr]) (get-file-name [vim buffer-ptr]) (get-line [vim buffer-ptr line-num]) (get-line-count [vim buffer-ptr]) (set-on-buffer-update [vim callback]) (set-on-auto-command [vim callback]) (get-command-text [vim]) (get-command-position [vim]) (get-command-completion [vim]) (get-cursor-column [vim]) (get-cursor-line [vim]) (set-cursor-position [vim line-num col-num]) (input [vim input]) (input-unicode [vim input]) (execute [vim cmd]) (set-on-quit [vim callback]) (set-on-unhandled-escape [vim callback]) (set-tab-size [vim size]) (get-tab-size [vim]) (get-visual-type [vim]) (visual-active? [vim]) (select-active? [vim]) (get-visual-range [vim]) (get-search-highlights [vim start-line end-line] "Warning: This function could behave badly if you don't have hlsearch enabled: (execute vim \"set hlsearch\")") (get-search-pattern [vim] "Warning: This function could behave badly if you don't have hlsearch enabled: (execute vim \"set hlsearch\")") (set-on-stop-search-highlight [vim callback]) (get-window-width [vim]) (get-window-height [vim]) (get-window-top-line [vim]) (get-window-left-column [vim]) (set-window-width [vim width]) (set-window-height [vim height]) (set-window-top-left [vim top left]) (get-mode [vim]) (set-on-yank [vim callback]) (set-on-message [vim callback]))