vim與emacs腳本編程對比

  1. 定義變量c++

    vim :vim

let a = 1

emacs:函數

(setq a 123)
  1. 定義函數

vim:ui

function Fun() "若是不使用做用域限制,首字母須要大寫  
    endfunction

命令行調用 :command! -nargs=1 Gdb :!命令 "<args>" 命令行

emacs:code

(defun fun ()  
  "message"  
  (interactive)  
    .....
 )
  1. 執行函數

vim:遞歸

call function()

emacs:作用域

(fun )
  1. 條件語句

vim:rem

if c
elseif b
else e
endif
while a
endwhile

emacs:cmd

(if a
    'thenfun
    'elsefun)
(while (equal a b)
   body...
   (計數器))
(cond 
  (first ...)
  (second ...))
  1. 自動執行

vim:

autocmd BuffRead *.cpp :call fun

emacs:

(add-hook 'c++-mode-hook '(lambda ()
                                                   (interactive)
                                                    .....))
  1. 引用其餘文件

vim:

source name.vim  
. name.vim

emacs:

(require 'name)  ;;須要在文件末尾添加(provied 'name)  
(load "name.el")
  1. 綁定快捷鍵

vim:

nmap <silent> <F8> :call fun()<CR>  
imap <F9> :call fun()<CR>  
vmap <F10> :call fun()<CR>  
inoremap ( ()<Esc>i //輸入(變()  
<A>/<M>Alt  
<C>Ctrl  
<S>Shift  
<D>Command  
<Esc>Esc  
<CR>回車  
<Fn>F1-F12  
其餘查看 help keycodes  
inoremap 避免遞歸  
<silent>確保不回傳命令

emacs:

(global-set-key [f8] 'fun)  
(define-key c++-mode-map (kbd "C-\ b l") 'fun)  
kbd函數實現綁定多個組合快捷鍵  
-來鏈接同時按下的快捷鍵  
<f10>特殊按鍵
相關文章
相關標籤/搜索