

Vim vs. EmacsVim入坑路径Vim配置/插件的资源
Vim便利切换的问题Vim打开文件乱码问题Vim字体设置Vim Mapcrontab -e修改失败Vim中文分词支持的问题
Vim vs. Emacs一上来就要说一个『宗教性』问题,很危险啊! ? 这节不会说2个编辑器有什么不好,再者自己并不熟悉Emacs,只说自己了解到的一点感觉。
Vim:编辑器之神;Emacs:神的编辑器。 ?
上面的这句调侃不重要,重要的是效率:heavy_exclamation_mark:
个人没入Emacs圈,牛掰编辑器先入的是Vim。自己作为一个Emacs圈外人,对于两者对比的感觉是:
Vim,从 编辑理念 出发并思考很深,通过面向编辑的语言进而脚本化/编程化的能力实现平台化。
Vim提供了一套面向编辑的语言:
diw:delete in word,删除光标所在单词;dd:删除行(重复命令是对行操作)。x:删除一个字符,5x:重复5次删除字符(即删除5个字符)。norm命令或是宏把指令脚本化。这里不展开了。Emacs,平台理念 很深,以平台化思路承载和带动编辑理念。
Emacs打造成Vim,当然Emacs也提供一套自己编辑风格,基于组合快捷键,现在各种软件都提供快捷键来加速操作,尤其是程序员的IDE更是重度依赖熟练的使用快捷键。Emacs的平台特质可以看看文章:
Vim,也提到了一点:vi追求的是快捷——启动程序迅速,编辑文本高效,功能专注,而Emacs追求的是功能的丰富强大以及集成带来的方便,在Emacs里头可以发邮件,上新闻组,听MP3,浏览网页,玩游戏,几乎可以login -> emacs -> logout了 :-),vi和Emacs都是程序员的编辑器,相比而言,Emacs更是提供了一种程序员的生活氛围。Vim到Emacs到EvilEmacs只是个强大的平台,提供各种定制来满足每个人的不同需求。所以Thanks Evil,我已把Emacs 打造成了理想的『Vim化的Emacs Editor』,我可以纵情使用更方便的方式来工作。spacemacs,已经是最火的Vim/Emacs配置发行版了,我还一直没有去上手 ?,真是山外有山而学无止境啊~ ?Editing is a rewording activity. -- Alan J. Perli
编辑是推敲改写的过程。 —— 艾伦·杰·佩利(计算机程序设计领域的科学家,首届图灵奖的获得者)
人类智慧输出包含了『录入』和『编辑』操作。
目前,『键盘录入』/『键盘编辑』是主流方式。
键盘操作效率的关键是『打字指法』/『盲打』。
对于录入,当然还有语音录入等等(期待脑电波的录入方式成为现实 ?)。
对于中文,还多一样,即『输入法』,如五笔、拼音。
『编辑器』 对于 编辑 的重要性 不言而喻。
综上,智慧输出包含了:
上面『打字指法』和『编辑器』的顺序重要的,如果你还不能 盲打,那么不要想着要找一个的编辑器就能高效了! ?

Vim入坑路径Vim整体评论性文章,觉得值得入门上手。Vim名声在外,问题其实是入门门槛。vimtutor,上手了解些基本操作。这时候心理上要注意:
Vim环境生存下来。首先要避免为了退出Vim要去重启机器吧~Vim实用技巧 - 以思维的速度编辑文本》边操作,完成实践和理念储备。spf13-vim发行版,舒适强大专业的Vim环境配置。spf13-vim可能的一些坑。surround。Vim is awesomeVIM is awesome — But don’t overdo itVim练级攻略 - coolshell.cn | 英文原文 Learn Vim ProgressivelyVimVim/Vim使用感觉/上手的高效配置/好用的插件。Vim / 程序员的编辑器 —— VimVim的风格、能力和一致性设计。Vim使用效率的 12 个技巧Vim PluginsVim不是IDE?』系列:
Vim 配置? - 知乎VIM 能配置到多强大的程度? - 知乎Vim 和 Emacs,却对 IDE 嗤之以鼻? - 知乎Emacs的文章(能有瑜亮般的对手而相互竞争与学习,比起高处不胜寒的孤寂可以说是幸运!)
Vim到Emacs到EvilEmacs只是个强大的平台,提供各种定制来满足每个人的不同需求。所以Thanks Evil,我已把Emacs 打造成了理想的『Vim化的Emacs Editor』,我可以纵情使用更方便的方式来工作。Emacs是一种信仰!世界最强编辑器介绍》vimtutor
内容比较精简且有中文版的:
Vim Cheat Sheet中文版 - vim.rtorr.comvi/Vim Cheat Sheet and Tutorial中文版(右图,点击看大图)内容比较丰富的:

Vim Cheat-Sheet (右图,点击看大图)Cheat Sheet有几个就够用了,别多看了你~ 当然还有更多Vim Cheat Sheet ?
Vim user manual/reference,即是Vim的内置帮助系统,内容丰富!!Vim的内置帮助 :h :h 'option' :h command :h :ex_command :h ctrl-wVim帮助系统的帮助,即如何使用Vim的帮助系统: :h helphelpVim书籍豆列
Vim实用技巧 - 以思维的速度编辑文本》 | Practical Vim, Second Editionvi和Vim编辑器(中文版) | 《Learning the vi and Vim Editors》,行文稳健(很合我的风格):
vi/ex)再说明Vim,从历史发展的过程更能深入理解功能适用场景。vi/Vim的周边信息,如vi/Vim的名家名言,各个变种,vi/Emacs的文化等等Vim | 中文译文Vim方方面面资料汇总。Vim配置/插件的资源spf13-vim - a distribution of Vim plugins and resources - Vim的配置集合和配置框架。
spf13-vim首先是个Vim配置框架,水准尽显!vimrc - Over the last 10 years, I have used and tweaked Vim.
Vim配置上的积累,绝对值得参考学习!Janus: Vim Distribution
Vim配置版本!Vim、tmux和iTerm 2的整套配置。
Vim + Emacs distribution(本人没有入Emacs圈子,作为广度了解一下)
spacemacs - A community-driven Emacs distribution - The best editor is neither Emacs nor Vim, it's Emacs and Vim!
star数也可见一斑!另外还要注意,相比spf13-vim(2010-04-20新建的仓库),spacemacs出来时间还更短(2012-12-17新建的仓库)SpaceVim - A community-driven vim distribution inspired by spacemacs! Vim Awesome - a comprehensive, accurate, and up-to-date directory of Vim plugins,Vim插件浏览站点YCM
YCMYoutube视频地址,讲解了入门Vim时
Vim是个持续的过程,可以不断提高能力,进而逐步提升效率。Vim!因为 工作紧急需要的效率 与 Vim刚开始学习时摸索的低效 有矛盾!Vim命令记忆法还给出实用的Tips:
Hack(定制)你的键盘
Seil修改Caplock键成ECS键karabiner修改键盘重复前延迟和加速重复频率,以快速地在Vim中导航.vimrc - 你的新朋友!
dotfiles),或是借鉴 https://github.com/thoughtbot/dotfilesvimtutor定期适量的学习 / 通过游戏http://vim-adventures.com/来学习~Youtube视频地址,2007-02-13,Vim作者 Brian Moolenaar 在Google做的演讲,讲解了编辑器的选择、达到高效编辑的方法和理念。
Vim比Emacs更好』这个问题,但你可能会觉得Emacs并不爽~ ?Notepad这样简陋的编辑器,你浪费了大量的生命! ?Vim吧~ ? 除此再没有其它的出路!(There is NO other RULE!)这部分的总结页:
附原文:
@oldratlee 这是我最喜欢的一节 ?
附原文:
How not to edit effectively
欢迎高手指点!请提交Issue。
Vim便利切换的问题问题说明:
本来Vim是有模式的(Normal/Command/Insert/Replace/Visual/...),再加上中文需要输入法切换(你处在中文输入还是英文输入状态),中文编辑需要在脑子记住当前是哪个状态的,个人觉得这很蛋疼。
理想的状态期望:
Normal/Command模式时,自动切换到英文输入法。Insert模式时,还原文字输入时所用的输入法状态(中文输入/英文输入)。解决方法:
解法参见@CodeFalling的完美解决 Mac 下 Vim/Emacs 的输入法切换问题:
fcitx-remote-for-osxVim插件fcitx-vim-osxPS: Thanks for your PERFECT works! @CodeFalling
Vim打开文件乱码问题问题说明:
Vim打开文件是乱码,常见的原因是编码识别错误。
解决方法:
可以在.vimrc配置文件中设置好Vim的用于尝试识别的编码序列,依次使用序列中的编码直到这个编码可以正确显示文件中的字符:
" 需要配置到 .vimrc 中
set fileencodings=ucs-bom,utf-8,gb18030,utf-16le,big5,euc-jp,euc-kr,latin1如果仍然识别成乱码(比如文件包含多种编码的字符,一定会有乱码),可以在命令模式显式指定编码重新打开文件,命令如下:
" 用UTF8编码重新打开加载当前文件
:e ++enc=utf-8
" 用GBK编码重新加载
:e ++enc=gbk
" GB18030字符集是GBK的超集,为了方便键入使用GBK名
" 可以进一步在 .vimrc 中配置Mapping,省得繁琐的键入
nnoremap <Leader>eu :e ++enc=utf-8<CR>
nnoremap <Leader>eg :e ++enc=gb18030<CR>更多原因解析和处理方法参见@滇狐的文章VIM文件编码识别与乱码处理,讲得深入浅出、鞭辟入里!
PS:
像Vim一样,字符编码也是一个很具计算机风味的话题,这里不解释,如果不清楚可以自己搜索研究一下。
问题说明:
如题。
解决方法:
" 设置写文件时使用UTF8编码
:set fileencoding=utf-8
" 写文件(完成文件编码转换)
:w
" 为了方便键入,使用短选项名fenc并写成一行
:se fenc=utf8 | w
" 文件转换成GBK编码
:se fenc=gbk | w
" GB18030字符集是GBK的超集,为了方便键入使用GBK名
" 可以进一步在 .vimrc 中配置Mapping,省得繁琐的键入
nnoremap <Leader>eU :set fileencoding=utf-8 | w<CR>
nnoremap <Leader>eG :set fileencoding=gb18030 | w<CR>参考资料: How can I change a file's encoding with vim? - vi.stackexchange.com
Vim字体设置问题说明:
合适字体可以方便识别,提高效率和心情,不能说不重要! ?
Vim命令,字体由终端配置。GUI Vim由Vim自己来配置。Mac下,终端常用的是iTerm/terminal应用,GUI Vim用的是MacVim应用。
解决方法:
详见单独一页的说明:设置Vim字体。
Vim Map问题说明:
下面的场景下,会想查看所有的Vim Map:
Vim可以定制自己命令,为了不重写已有的快捷键(Map)Map了解决方法:
redir > map.txt | silent map | redir END
" 如果文件已经存在加上!来覆盖输出的文件
redir! > map.txt | silent map | redir ENDcrontab -e修改失败问题说明:
crontab修改后,报crontab: temp file must be edited in place出错信息,crontab没有修改。
$ crontab -e
# ... I do my thing in vim & :wq
"crontab.9ZcXiFaawt" 6L, 203C written
crontab: temp file must be edited in place解决方法:
在.vimrc配置文件中设置,对于crontab文件不使用备份文件:
" 需要配置到 .vimrc 中
autocmd BufNewFile,BufRead crontab.* set nobackup | set nowritebackup更多说明参见:
Vim中文分词支持的问题问题说明:
不像英文,中文的词的分离没有像空格这样明显分隔,词相关的移动变得很麻烦。
解决方法:
目前还 没有 找到解法。总得来说,这个问题不大,可以替代的做法:
Hack/加速系统的按键重复后,可以简单地用hjkl在小/大范围内快速导航。CTRL-D/CTRL-F)。fz/Fz/tz/Tzn/NVim分词的相关资源
Vim与中文分词 - google groupVim模式下能增加中文分词的支持么?Vim&Emacs的中文分词相关讨论
