Vim
vs. Emacs
一上来就要说一个『宗教性』问题,很危险啊!
Emacs
,只说自己了解到的一点感觉。
Vim
:编辑器之神;Emacs
:神的编辑器。��
上面的这句调侃不重要,重要的是效率
个人没入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
到Evil
Emacs
只是个强大的平台,提供各种定制来满足每个人的不同需求。所以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
ProgressivelyVim
Vim
/Vim
使用感觉/上手的高效配置/好用的插件。Vim
/ 程序员的编辑器 —— Vim
Vim
的风格、能力和一致性设计。Vim
使用效率的 12 个技巧Vim
PluginsVim
不是IDE
?』系列:
Emacs
的文章(能有瑜亮般的对手而相互竞争与学习,比起高处不胜寒的孤寂可以说是幸运!)
Vim
到Emacs
到Evil
Emacs
只是个强大的平台,提供各种定制来满足每个人的不同需求。所以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-w
Vim
帮助系统的帮助,即如何使用Vim
的帮助系统: :h helphelp
Vim
书籍豆列
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
圈子,作为广度了解一下)
Vim
Awesome - a comprehensive, accurate, and up-to-date directory of Vim
plugins,Vim
插件浏览站点YCM
YCM
Youtube视频地址,讲解了入门Vim
时
Vim
是个持续的过程,可以不断提高能力,进而逐步提升效率。Vim
!因为 工作紧急需要的效率 与 Vim
刚开始学习时摸索的低效 有矛盾!Vim
命令记忆法还给出实用的Tips:
Hack
(定制)你的键盘
.vimrc
- 你的新朋友!
dotfiles
),或是借鉴 https://github.com/thoughtbot/dotfilesvimtutor
定期适量的学习 / 通过游戏http://vim-adventures.com/来学习~Youtube视频地址,2007-02-13,Vim
作者 Brian Moolenaar 在Google
做的演讲,讲解了编辑器的选择、达到高效编辑的方法和理念。
Vim
比Emacs
更好』这个问题,但你可能会觉得Emacs
并不爽~
Notepad
这样简陋的编辑器,你浪费了大量的生命!
Vim
吧~
这部分的总结页:
附原文:
@oldratlee 这是我最喜欢的一节
��
附原文:
How not to edit effectively
欢迎高手指点!请提交Issue。
Vim
便利切换的问题问题说明:
本来Vim
是有模式的(Normal/Command/Insert/Replace/Visual/...
),再加上中文需要输入法切换(你处在中文输入还是英文输入状态),中文编辑需要在脑子记住当前是哪个状态的,个人觉得这很蛋疼。
理想的状态期望:
Normal/Command
模式时,自动切换到英文输入法。Insert
模式时,还原文字输入时所用的输入法状态(中文输入/英文输入)。解决方法:
解法参见@CodeFalling
的完美解决 Mac
下 Vim/Emacs
的输入法切换问题:
fcitx-remote-for-osx
Vim
插件fcitx-vim-osx
PS: 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 END
crontab -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/Tz
n/N
Vim
分词的相关资源
题外话 本人接触VIM有好长一段时间,一直没有完全掌握vim这个据说很nice的代码编辑工具。主要的是什么原因呢,是操作习惯的问题,我们大多数时间是通过鼠标、快捷键 Ctrl + V, 删除键来进行文档编辑。还有一个是定位很不习惯,比如将光标一点到某个位置,用鼠标直接点击,太快了。在vim里面对于初学者,简直是一种折磨,即使使用H、J,K,L,也是很不习惯。 当然习惯这种事情是要慢慢习惯的,比如当
终端输入: vim 依赖: vim-runtime:i386 (= 2:7.4.000-1ubuntu2) 但无法安装它 依赖: libacl1:i386 (>= 2.2.51-8) 但是它将不会被安装 依赖: libc6:i386 (>= 2.15) 但是它将不会被安装 依赖: libgpm2:i386
23、grep/egrep正则表达式练习: 1) 显示/etc/passwd文件中不以bash结尾的行; 答: # grep -v "bash$" /etc/passwd 2) 找出ifconfig命令执行结果中的两位或三位整数; 答: # ifconfig | grep --color=auto "\<\([[:digit:]]\{2,3\}\)\>" //还有00
20、简答: 背景描述:xiaoqiang、wangcai和tangbohu三个用户的基本组都是与用户名相同的组,但是他们都以qiuxiang组为附属组。 1).当用户xiaoqiang对/testdir目录无执行权限时和无读权限时,分别意味着xiaoqiang无法完成哪些操作? 答: 无执行权限时:不能访问命令,什么都不能执行,不能删除,不能创建,使用"ll"命令能看到有哪些文件,但是看不到具体
http://www.aireadfun.com/blog/2012/12/03/study-automake/ [fpxshyy@localhost makefpxshyykit]$ tar zxvf summary-1.0.0.tar.gz summary-1.0.0/ summary-1.0.0/doc/ summary-1.0.0/doc/OVERVIEW summary-1.0.0/ma
=============================================================================== = 欢 迎 阅 读 《 V I M 教 程 》 —— 版本 1.7 = ==================================================
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。 主要功能 根据设定可以和原始vi完全兼容 多缓冲编辑 任意个数的分割窗口(横,竖) 具备列表和字典功能的脚本语言 可以在脚本中调用 Perl, Ruby, Python, Tcl, MzScheme 单词缩写功能 动态单词补完
宏是录制和播放功能。 当它与Vim命令结合使用时,它就变成了非常强大的组合。 在本节中,将讨论以下主题内容 - 开始录制 执行Vim操作 停止录制 播放录制 1. 开始录制 要开始录制,请按,然后按任何小写字母作为宏名称。 例如,在下面的示例中,使用作为宏名称。 2. 执行Vim操作 在此步骤中,可以执行任何Vim操作,例如:剪切,复制,删除,替换等。可以通过执行以下命令来查看这些操作 - 例如,
Vim users can install either vim-prettier, which is Prettier specific, or Neoformat or ALE which are generalized lint/format engines with support for Prettier. vim-prettier See the vim-prettier readme
打磨得像 IDE 一样的 Vim 编辑器。 安装 最新版本的Vim 7.4+ 使用(brew install macvim)安装,vim 版本更新 brew install macvim --override-system-vim 查看配置位置 # 进入vim输入下面字符:echo $MYVIMRC 下载vim-web 将插件以及配置下载到 ~/.vim/ 目录中,这个目录是存放所有插件和配置的地
webapp-vim 是一个网站服务器,它允许在vim中使用vim脚本开发web应用。
vim-plug 是一个小型的 vim 插件管理器。 特性: 易于安装,单个文件 易于使用,语法直观 超快 的并行安装和更新 可创建影子克隆来最小化磁盘使用以及下载时间 按需加载,大大提升启动速度 可浏览和回滚更新 Branch/tag 支持 更新后的钩子处理 支持外部管理插件 使用方法:只需要下载 plug.vim 文件并存放到 ~/.vim/autoload 目录即可。 示例: call pl