vim 转 Emacs? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
lwj0012
V2EX    Linux

vim 转 Emacs?

  •  
  •   lwj0012 2014-12-10 14:04:17 +08:00 6199 次点击
    这是一个创建于 4041 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一直都用vim写代码,C C++ Python...

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

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

    请问下各位emacser是如何起步的,如果有同学同时拥有vim和emacs使用经验的,不妨分享下。
    31 条回复    2014-12-10 22:03:43 +08:00
    boom11235
        1
    boom11235  
       2014-12-10 14:09:57 +08:00
    你可以在emacs中装个evil插件,立马拥有vim的三种模式..
    ozking
        2
    ozking  
       2014-12-10 14:11:18 +08:00
    先熟悉基本快捷键,然后把el-get搞起来,其他找什么就去EmacsWiki
    nicai000
        3
    nicai000  
       2014-12-10 14:16:54 +08:00
    当然相差大, 另外没有需求为什么要转变, 太闲?
    tftk
        4
    tftk  
       2014-12-10 14:24:55 +08:00
    我就看看不说话。
    Muninn
        5
    Muninn  
       2014-12-10 14:33:16 +08:00
    闲...
    lululau
        6
    lululau  
       2014-12-10 14:35:12 +08:00
    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>br />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  
       2014-12-10 14:39:07 +08:00
    什么时候开始写clojure/lisp/haskell了再转也不迟。
    ffffwh
        8
    ffffwh  
       2014-12-10 14:41:12 +08:00 via Android
    前后转了七7次大概,才转成功。
    lwj0012
        9
    lwj0012  
    OP
       2014-12-10 15:01:58 +08:00
    @boom11235
    @lululau
    @xudshen
    @RyanKung
    @RyanKung
    @ffffwh
    的确是有点闲的蛋疼,仔细想了下觉得没有必要转了,还是用vim吧~
    谢谢~
    caiych
        10
    caiych  
       2014-12-10 15:10:08 +08:00
    ……也有一段时间想转……然后发现跟tmux配置快捷键冲突就算了……
    jason52
        11
    jason52  
       2014-12-10 15:16:30 +08:00
    @lululau 小手指疼怎么解决。我觉得复制黏贴多了小手指都会疼。
    ozking
        12
    ozking  
       2014-12-10 15:18:37 +08:00
    @jason52 把Ctrl换到A的左边
    xiaogui
        13
    xiaogui  
       2014-12-10 15:24:01 +08:00
    在用 Atom ~~
    iT2afL0rd
        14
    iT2afL0rd  
       2014-12-10 15:51:27 +08:00
    @jason52 换HHKB
    shellfly
        15
    shellfly  
       2014-12-10 16:17:25 +08:00
    说几个平时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  
       2014-12-10 16:41:27 +08:00
    @caiych 你是配置tmux为emacs模式了? emacs + tmux 目前还没有什么冲突的
    icecoffee
        17
    icecoffee  
       2014-12-10 17:31:04 +08:00
    曾经试过转emacs,发现每天就在查各种快捷键和搞配置了。然后就决定vim将就用下去吧。。。
    lch21
        18
    lch21  
       2014-12-10 17:32:29 +08:00
    emacs 可以在buffer中操作命令行,相当有用
    Hongmin
        19
    Hongmin  
       2014-12-10 17:42:17 +08:00
    emacs自带很完善的新手学习和进阶教程。。。
    jianghu52
        20
    jianghu52  
       2014-12-10 18:26:21 +08:00
    我这种只会用st的人,就出来丢人现眼了
    phoneli
        21
    phoneli  
       2014-12-10 19:34:51 +08:00
    先vim一个月,后emacs一年多,最后还是vim且很满意。
    yangxin0
        22
    yangxin0  
       2014-12-10 20:13:25 +08:00   1
    我用emacs快四年了, 其中经历过各种配置折腾, 现在emacs几乎是裸配置, 只有一个自定义配色,和修改了相关快捷键。 入门的话最好的方式建议真正用emacs来写代码, 写代码的时候不要图快,把结构在脑袋里面想清楚了,在用emacs一个个字母的敲出来。我个人的建议不要去看什么自动补齐这些花哨的功能, 很多人真的是写了又删,删了又写, 或者时间不够直接push了。
    sectic
        23
    sectic  
       2014-12-10 20:14:55 +08:00 via Smartisan T1
    emacs 的 magit 是我用过最舒服的git客户端。
    gno23x
        24
    gno23x  
       2014-12-10 20:40:41 +08:00
    @yangxin0 裸配置?配置有放github吗,想看一下裸配置长啥样的。 :)
    yangxin0
        25
    yangxin0  
       2014-12-10 20:42:44 +08:00
    (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  
       2014-12-10 20:45:16 +08:00 via iPad
    @shellfly 你说的这些vim也基本都有
    duhastmich
        27
    duhastmich  
       2014-12-10 20:52:19 +08:00
    转到emacs后就是magit用不惯,还在用fugitive
    vietor
        28
    vietor  
       2014-12-10 21:02:04 +08:00 via Android
    写lisp会上瘾浪费精力,建议别转
    shellfly
        29
    shellfly  
       2014-12-10 21:16:37 +08:00
    @TimLang 但感觉不怎么好用么
    xiaohanyu
        30
    xiaohanyu  
       2014-12-10 21:48:50 +08:00
    https://github.com/xiaohanyu/oh-my-emacs 世界上最好的 dotemacs 项目。

    有详细的文档,集成 evil ,兼顾 vim 和 emacs
    expkzb
        31
    expkzb  
       2014-12-10 22:03:43 +08:00
    xcode中装vim扩展,insert模式时可以用emacs快捷键,一起用的感觉蛮好的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2476 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 12:02 PVG 20:02 LAX 04:02 JFK 07:02
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86