vim与emacs脚本编程对比

爷,独闯天下 提交于 2019-12-26 18:48:08

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

  1. 定义变量

    vim :

    let a = 1 

emacs:

    (setq a 123)  
  1. 定义函数

vim:

    function Fun() "如果不使用作用域限制,首字母需要大写  
    endfunction

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

emacs:

(defun fun ()  
  "message"  
  (interactive)  
    .....
 )
  1. 执行函数

vim:

call function()

emacs:

(fun )
  1. 条件语句

vim:

if c
elseif b
else e
endif
while a
endwhile

emacs:

(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>特殊按键  
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!