Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101384
  • 博文数量: 15
  • 博客积分: 1649
  • 博客等级: 上尉
  • 技术积分: 168
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-12 10:43
文章分类

全部博文(15)

文章存档

2011年(5)

2010年(10)

分类: C/C++

2011-04-18 09:53:25

断断续续用了一年多Vim来,主要用来编辑配置文件或写一些试验性的代码。 始终无法真正适应vim的模式切换问题,总觉得这种切换不符合传统的操作习惯,是种不必要的负担,而且于我很难完全适应,结果就是发现编辑器总是不按照我的意愿来:)

Emacs也很早就知道,但被网上那些人不负责任的“Emacs学习曲线恐怖”的言论恐吓着,而且也比较懒,一直没敢真正尝试。 这几天比较闲,折腾了一下Emacs,结果发现相对于Vim, 学会使用它高效完成日常工作是如此的简单,而且你学到的东西几乎不会与已有的习惯冲突, 在你不能总是用vim/emacs完成所有的工作的时候,不必在两种截然不同的操作模式中切换是非常重要的。

当然得承认, 由于历史原因,emacs默认的快捷键设计不符合人体工程学,使用起来很不舒服。 但在emacs强大的可定制性面前,这不是问题。 下面是我目前的.emacs文件:
  1. ;;go programming language mode
  2. (add-to-list 'load-path "~/.emacs.d/go/" t)
  3. (require 'go-mode-load)

  4. ;; compile command for golang
  5. ;; TODO: compiler and linker should be determined based on $GOARCH
  6. ;; TODO: support build tool like gb, gobuild etc.
  7. (add-hook 'go-mode-hook
  8. (lambda ()
  9. (setq app-name (file-name-sans-extension buffer-file-name))
  10. (setq obj-name (concat app-name ".8"))
  11. (setq exe-name (concat app-name ".exe"))
  12. (set (make-local-variable 'compile-command)
  13. (concat "8g -o "
  14. obj-name " " (buffer-file-name) " && 8l -o " exe-name " " obj-name
  15. ))))

  16. ;;use ergoemacs keyboard layout
  17. (setenv "ERGOEMACS_KEYBOARD_LAYOUT" "us")
  18. (load "~/.emacs.d/ergoemacs-keybindings-5.3.7/ergoemacs-mode")
  19. (ergoemacs-mode 1)

  20. ;;use M-b as prefix command instead of C-x
  21. (setq newmap (make-sparse-keymap))
  22. (set-keymap-parent newmap ctl-x-map)
  23. (global-set-key "\M-b" newmap)

  24. ;;my keyboard shortcuts
  25. (global-set-key (kbd "M-b c") 'kill-emacs)
  26. (global-set-key (kbd "M-b M-b") 'list-buffers)
使用了李杀同志()精心设计的符合人体工程学的键盘绑定,并且把C-x前缀换成了M-b。 你会发现,在简单的定制之后,很多vim所谓的优势emacs并不缺少,比如用很少的手指移动和按键次数完成丰富的功能。

最后, 强烈推荐李杀的emacs系列教程, 你会发现用好Emacs比Vim容易很多:D
阅读(6631) | 评论(1) | 转发(0) |
1

上一篇:【转载】程序员那些悲催的事儿

下一篇:没有了

给主人留下些什么吧!~~

TrollWarlord6862015-03-09 14:42:21

用的是Mac吧