Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
lwj0012
V2EX  ›  Linux

vim 转 Emacs?

  •  
  •   lwj0012 · Dec 10, 2014 · 6443 views
    This topic created in 4176 days ago, the information mentioned may be changed or developed.
    一直都用vim写代码,C C++ Python...

    这两天突然想换个口味,尝试下Emacs。但是试了两天还是没有什么头绪,难道是这两个之间在使用习惯上相差太大了?

    不是按键不适应,只是好像觉得一直以来都习惯于vim的三种模式,并且hjkl包括ctrlp等插件能很快的在view模式下进行浏览,而在emacs下没有这三种模式,一下子觉得很不习惯。

    请问下各位emacser是如何起步的,如果有同学同时拥有vim和emacs使用经验的,不妨分享下。
    31 replies    2014-12-10 22:03:43 +08:00
    boom11235
        1
    boom11235  
       Dec 10, 2014
    你可以在emacs中装个evil插件,立马拥有vim的三种模式..
    ozking
        2
    ozking  
       Dec 10, 2014
    先熟悉基本快捷键,然后把el-get搞起来,其他找什么就去EmacsWiki
    nicai000
        3
    nicai000  
       Dec 10, 2014
    当然相差大, 另外没有需求为什么要转变, 太闲?
    tftk
        4
    tftk  
       Dec 10, 2014
    我就看看不说话。
    Muninn
        5
    Muninn  
       Dec 10, 2014
    闲...
    lululau
        6
    lululau  
       Dec 10, 2014
    Emacs 和 Vim 都用过,不过我是先用的 Emacs,两者最大的不同是 Vim 有多个模式,同一样一个 Key 在不同模式下可以完成不同的功能,而 Emacs 没有像 Vim 的多个模式,因此想要更多的快捷键就只能通过组合键,Vim多个模式虽然有优点,但是缺点也明显,就是要在不同模式间切换,麻烦。

    我现在主要用 Vim,很多快捷盘配置 Emacs 风格了:

    map <c-x><c-c> <ESC>:qa<CR>
    imap <c-x><c-c> <ESC>:qa<CR>
    map <c-x><c-s> <ESC>:w<CR>
    imap <c-x><c-s> <c-o>:w<CR>
    smap <c-x><c-s> <c-o>:w<CR>
    map <c-x><c-k> :bw!<CR>
    imap <c-x><c-k> <ESC>:bw!<CR>
    map <c-x>k <Nul>c<Nul>
    imap <c-x>k <esc><ESC><Nul>c<Nul>
    " map <c-x><c-b> <Nul>a
    " imap <c-x><c-b> <ESC><ESC><Nul>a
    map <c-x><c-b> <ESC>:CommandTBuffer<CR>
    imap <c-x><c-b> <ESC>:CommandTBuffer<CR>
    map <c-x>b <ESC>:CommandTMRU<CR>
    imap <c-x>b <ESC>:CommandTMRU<CR>
    map <c-x><c-f> <ESC>:CommandT<CR>
    imap <c-x><c-f> <ESC>:CommandT<CR>
    cmap <c-p> <up>
    cmap <c-n> <down>
    map <C-h> <C-w><Left>
    imap <c-e> <c-o>A
    imap <c-a> <c-o>^
    imap <c-f> <Right>
    imap <c-b> <Left>
    imap <c-n> <Down>
    imap <c-p> <Up>
    imap <c-d> <Del>
    imap <c-k> <c-o>C
    imap <esc>f <c-o>e
    cmap <esc>f <S-Right>
    imap <esc>b <c-o>b
    cmap <esc>b <S-Left>
    imap <esc>< <c-o>gg<c-o>0
    imap <esc>> <c-o>G<c-o>$
    imap <esc><bs> <esc><esc>caw
    cmap <esc><bs> <c-w>
    RyanKung
        7
    RyanKung  
       Dec 10, 2014
    什么时候开始写clojure/lisp/haskell了再转也不迟。
    ffffwh
        8
    ffffwh  
       Dec 10, 2014 via Android
    前后转了七7次大概,才转成功。
    lwj0012
        9
    lwj0012  
    OP
       Dec 10, 2014
    @boom11235
    @lululau
    @xudshen
    @RyanKung
    @RyanKung
    @ffffwh
    的确是有点闲的蛋疼,仔细想了下觉得没有必要转了,还是用vim吧~
    谢谢~
    caiych
        10
    caiych  
       Dec 10, 2014
    ……也有一段时间想转……然后发现跟tmux配置快捷键冲突就算了……
    jason52
        11
    jason52  
       Dec 10, 2014
    @lululau 小手指疼怎么解决。我觉得复制黏贴多了小手指都会疼。
    ozking
        12
    ozking  
       Dec 10, 2014
    @jason52 把Ctrl换到A的左边
    xiaogui
        13
    xiaogui  
       Dec 10, 2014
    在用 Atom ~~
    iT2afL0rd
        14
    iT2afL0rd  
       Dec 10, 2014
    @jason52 换HHKB
    shellfly
        15
    shellfly  
       Dec 10, 2014
    说几个平时Emacs比Vim好用的地方

    分屏,Ctrl+2水平分,Ctrl+3垂直分,也容易自定义成自己喜欢的组合键

    目录管理,dired-mode, 查看目录,创建目录

    查看buffers, ibuffer,同时打开几十文件都是很正常的,我一般都是一屏显示不了文件列表的时候才去关,Vim查看buffer只能跳到对应数字的buffer,多了就不好用了

    自动补全(打卡文件的时候),i-do mode,会在打卡文件的时候帮你补全,不需要想vim那样一下一下tab


    很多高级的文件编辑功能
    比如递归替换目录下所有匹配文件里的某个pattern(find-name-dired ),
    可以把所有.py文件里的 import settings 替换成from django.conf import settings
    ngn999
        16
    ngn999  
       Dec 10, 2014
    @caiych 你是配置tmux为emacs模式了? emacs + tmux 目前还没有什么冲突的
    icecoffee
        17
    icecoffee  
       Dec 10, 2014
    曾经试过转emacs,发现每天就在查各种快捷键和搞配置了。然后就决定vim将就用下去吧。。。
    lch21
        18
    lch21  
       Dec 10, 2014
    emacs 可以在buffer中操作命令行,相当有用
    Hongmin
        19
    Hongmin  
       Dec 10, 2014
    emacs自带很完善的新手学习和进阶教程。。。
    jianghu52
        20
    jianghu52  
       Dec 10, 2014
    我这种只会用st的人,就出来丢人现眼了
    phoneli
        21
    phoneli  
       Dec 10, 2014
    先vim一个月,后emacs一年多,最后还是vim且很满意。
    yangxin0
        22
    yangxin0  
       Dec 10, 2014   ❤️ 1
    我用emacs快四年了, 其中经历过各种配置折腾, 现在emacs几乎是裸配置, 只有一个自定义配色,和修改了相关快捷键。 入门的话最好的方式建议真正用emacs来写代码, 写代码的时候不要图快,把结构在脑袋里面想清楚了,在用emacs一个个字母的敲出来。我个人的建议不要去看什么自动补齐这些花哨的功能, 很多人真的是写了又删,删了又写, 或者时间不够直接push了。
    sectic
        23
    sectic  
       Dec 10, 2014 via Smartisan T1
    emacs 的 magit 是我用过最舒服的git客户端。
    gno23x
        24
    gno23x  
       Dec 10, 2014
    @yangxin0 裸配置?配置有放github吗,想看一下裸配置长啥样的。 :)
    yangxin0
        25
    yangxin0  
       Dec 10, 2014
    (menu-bar-mode t)
    (tool-bar-mode -1)
    (scroll-bar-mode -1)
    (setq display-time-24hr-format t)
    (setq kill-ring-max 200)
    (setq inhibit-startup-message t)
    (setq major-mode 'text-mode)
    (show-paren-mode t)
    (setq frame-title-format "%f")
    (setq make-backup-files nil)
    (fset 'yes-or-no-p 'y-or-n-p)
    ;;(global-hl-line-mode 1)
    (setq-default indent-tabs-mode nil)
    ;;(global-font-lock-mode -1)
    ;;(set-background-color "light grey")
    (fringe-mode -1)
    (set-fringe-mode 0)

    (defun nil-fun()
    (interactive))

    ;; key binding
    (define-key esc-map "g" 'goto-line)
    (global-set-key (kbd "C-z") 'undo)
    (global-set-key (kbd "C-x C-z") 'undo)
    (global-set-key (kbd "C-\\") 'nil-fun)
    ;;(global-set-key (kbd "<mouse-3>") 'nil-fun)
    ;;(global-set-key (kbd "<down-mouse-1>") 'nil-fun)
    (setq mac-option-modifier 'super)
    (setq mac-command-modifier 'meta)
    (global-set-key (kbd "C-j") 'newline-and-indent)

    (set-face-attribute 'default nil :font "Consolas 16")
    (dolist (charset '(kana han symbol cjk-misc bopomofo))
    (set-fontset-font
    (frame-parameter nil 'font) charset
    (font-spec :family "Microsoft Yahei" :size 13)))
    TimLang
        26
    TimLang  
       Dec 10, 2014 via iPad
    @shellfly 你说的这些vim也基本都有
    duhastmich
        27
    duhastmich  
       Dec 10, 2014
    转到emacs后就是magit用不惯,还在用fugitive
    vietor
        28
    vietor  
       Dec 10, 2014 via Android
    写lisp会上瘾浪费精力,建议别转
    shellfly
        29
    shellfly  
       Dec 10, 2014
    @TimLang 但感觉不怎么好用么
    xiaohanyu
        30
    xiaohanyu  
       Dec 10, 2014
    https://github.com/xiaohanyu/oh-my-emacs 世界上最好的 dotemacs 项目。

    有详细的文档,集成 evil ,兼顾 vim 和 emacs
    expkzb
        31
    expkzb  
       Dec 10, 2014
    xcode中装vim扩展,insert模式时可以用emacs快捷键,一起用的感觉蛮好的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2883 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 91ms · UTC 10:30 · PVG 18:30 · LAX 03:30 · JFK 06:30
    ♥ Do have faith in what you're doing.