我一直考虑学习VIM,但是需要掌握它的时间总是让我望而却步。
我想听听那些已经学会它的人的想法,以及它是否成为了那些不能没有的技能之一。
在工作中,我使用VS2008、C#和R#,这些工具使得编辑代码更快、更容易,但即使如此,我认为完全不使用鼠标甚至连方向键都不需要,也可以让我轻松愉悦。
我已经使用vi和vim大约20年了,但仍在学习新事物。
David Rayner的Vim技巧精选网站是一个很好的列表,不过可能更适合你在熟悉vim之后使用。
我还想提到ViEmu网站,它有一些关于vi/vim技巧的很棒的信息,特别是文章为什么那些蠢货使用vi?(存档版本)
我能没有它而生活吗?很容易。
它有用吗?是的。
vi保证存在于所有Unix系统上,并存在于大多数Linux系统上。这种广泛覆盖使学习vi变得值得。
使用vi进行sudo
编辑更快:
$ sudo vi
GMail也使用类似vi的命令来选择和移动电子邮件!
你不必成为专家。
只需学习以下基础知识:
:w
Enter(写入):q!
Enter:wq
Enter从那里开始,剩下的就只是让你更快。
仅用30分钟完成 vimtutor 的学习,已足以让我熟悉vim。这绝对是值得的。
<esc> >i{
来修复缩进而咒骂过它... 这就像打字一样:你学习了一个键盘布局,你会坚持使用它,因为你永远无法阻止手指在不同的布局上敲错键。 - cmaster - reinstate monica这真的值得花费精力。
任何使用Vim的人都会告诉你一个明显的原因,还有两个人们似乎从未提到过的原因。以下是明显的原因:
以下是学习 Vim 的不太为人知的原因:
实际上学习成本没有您想象的那么高。只需跑一遍Vim tutor(在shell下输入vimtutor,在Windows中从“开始”菜单中的Vim文件夹运行),您就已经掌握了基本技能,而且接下来的学习会变得越来越简单。我只用了不到一周的午餐时间就能在工作中使用Vim,而且没有对我的生产效率产生任何负面影响。
它很有趣!现在编辑文本对我来说像玩游戏一样,我非常享受它——当您想一想时,这相当荒谬。
还有两个不学习Vim的好原因:
学习vim或emacs一定是值得的。同样学习盲打也很重要,因为两种情况下的原因是相同的:你的思维不会再被将代码输入到屏幕上这个机械过程所打断。
至于如何开始,只需立即开始使用vim进行所有操作。
P.S. emacs和vi之争永无止境。我已经使用emacs 26年了。如果我今天重新开始,我会学习vim,因为(a)它变得更好了,(b)它需要的修改键较少(Ctrl-Alt-V,任何人都可以),而且vim用户似乎遭受的打字伤害要少得多。
ijkdbw9:q!%s/nN
Esc,来使用vim获得良好的功能。您甚至只需使用i:wq
Esc就可以完成基本的编辑操作。i
进入插入模式(正常输入)。
要保存,请执行以下操作:
:
w
然后按下Enter要保存并退出,请执行以下操作:
:
wq
然后按下Enter如果不想保存并强制退出,请执行以下操作:
:
q!
然后按下Enter要了解更多信息,您可以在命令行中运行vimtutor
。这是一个中等长度的,结构良好的教程。
除了i
和Esc之外,您还可以仅使用jkwbd3:%s/nN
就能复制或超越一些MS Word的功能。
b
回退一个单词 (Ctrl+←)w
向前一个单词(Ctrl+→)9w
向前九个单词db
删除光标前面的一个单词 (Ctrl+Backspace)d3b
删除光标前面的三个单词9j
向下移动 9 行ornithopter
Enter 跳到下一个出现的单词 "ornithopter",然后使用 n
和 N
分别跳到下一个和上一个出现的 "ornithopter"%s/confounded/dangfangled/
Enter 将所有出现的 "confounded" 替换为 "dangfangled"(类似于 MS Word 中的查找和替换全部)以上任何操作都应该在 "命令" 模式下运行 (Esc),而非插入模式 (i
)。
我最近切换到了VIM,我认为这非常值得。如果您只需要“完成一些任务”,您可以一直停留在插入模式下,其中vim(大多数情况下)就像一个普通的文本编辑器。
我注意到以前不会困扰我的事情,比如伸手按箭头键,现在感觉不对劲并且需要花费太多精力。这显然减少了我的手部运动和使用鼠标的频率,这对人体工学和生产效率都有好处。
这取决于你想用VIM做什么。仅仅因为很多人离不开它而学习它是没有意义的。
当我在UNIX环境下工作时,我无法离开它。即使在UNIX机器上没有安装VIM,我至少可以使用vi。你总是可以依靠它 - 即使机器不是你自己的(来自客户)。
现在我编写C#并主要在Windows环境下工作。我已经在我的PC上安装了VIM ... 但我并不需要它。
评估一下你是否真的需要VIM以及它是否能够支持你的“工作流程”。试用它。玩玩它。如果你认为你需要它,坚持使用它...学习曲线非常陡峭。
我学会使用vi是因为必须学。
我的疯狂老师逼迫我们使用终端连接到AIX系统来用C语言编程。
那真是一种折磨,但是值得的。
如今,我仅在需要快速编辑或编写小程序时才使用vi。
如果要进行一个项目,我更喜欢使用IDE。在我看来,IntelliJ idea非常擅长这个任务,因为我可以连续编码几个小时而不用鼠标。
我不知道VS2008有多少快捷键,但如果它们像Eclipse一样易于发现,那么你就需要放弃vi了。
如果你在IDE外不编辑代码,并且你的IDE具有良好的快捷键,请先掌握这些快捷键,然后再去学习vi。
:)