学习Vim有什么好处?
作为程序员,我在键盘上花了很多时间,在过去的12年里,我一直在做这个,或多或less。 如果在这段时间内我从来没有习惯过这样的事情,那么由于一些最常见的代码编辑任务,这就是我在编码时遇到的这些恼人的,几乎无意识的不断的微观中断。 像从一个不同的行(甚至是同一行)简单的复制和粘贴,或者从当前位置向上或向下移动1或2行需要太多的input或涉及使用箭头键…它会得到更糟糕的是,当我想进一步移动 – 我最终使用鼠标。 现在想象这个相同的场景,但在笔记本电脑上
我一直在考虑学习VIM,但掌握它所需的时间总是让我想退一步。
我想听听那些学过它的人,如果它最终成为你不能没有的东西之一。
在工作中,我使用VS2008,C#和R#,它们使编辑代码比以前更快,更容易,但即使如此,我也觉得我可以享受不必使用鼠标。
甚至没有箭头键。
我已经使用vi和vim大约20年了,而且我还在学习新的东西。
David Rayner的Vim Tips最佳网站是一个很好的列表,不过对vim有一定的了解后,它可能会更有用。
我也想提一下viEmu站点,它有vi / vim提示的一些很好的信息,特别是文章Why,哦为什么那些nutheads使用vi? ( 存档版本 )
我能活下去吗? 容易。
它有用吗? 是。
学习的原因
-
vi保证存在于所有的Unix系统上,也存在于大多数的Linux系统上。 这种广泛的覆盖面使得学习它值得。
-
使用vi进行
sudo
编辑要快得多:$ sudo vi
-
另外,GMail使用vi-ish命令来select和移动邮件!
你不必是一个主人。
只要学习
基础:
- 如何从命令模式切换到插入模式
- 如何从插入模式切换到命令模式Esc
- 如何在命令模式下向上导航k
- 如何在命令模式下向下导航j
- 如何在命令模式下导航左边的一个字符h
- 如何正确导航一个字符
- 如何保存文件
:w
input (写入) - 如何退出而不保存(在命令模式下)
:q!
input - 如何撤消你
- 如何重做Ctrl + r
- 您可以结合写入和退出(在命令模式下)
:wq
input
从那里rest只会让你更快。
运行vimtutor只花了我30分钟,足以熟悉vim。 这是值得每一秒。
如果你是编辑大量文本的程序员,那么学习一个严肃的文本编辑器是很重要的。 你学习哪种严肃的文本编辑器不是非常重要的,主要取决于你期望编辑的环境的types。
原因是这些编辑人员经过高度优化,可以执行您将要执行的各种任务。 例如,考虑在每行的末尾添加相同的文本位。 在“严肃的文本编辑器”中,这是微不足道的,但是在其他方面却非常麻烦。
通常vim的杀手function被认为是:A)它几乎可以在你遇到过的每一个Unix上都可用,B)你的手指很less必须离开主页,这意味着你可以非常快速地编辑文本。 即使在编辑大文件时,它通常也是非常快速和轻量级的。
然而,有很多的select。 当然,Emacs是最常见的例子,如果你真的深入研究它,它不仅仅是一个高级的文本编辑器。 在使用vim / gvim多年后,我个人对TextMate用户非常满意。
切换到其中任何一个的诀窍是强迫自己按照预期的方式使用它们。 例如,在vim中,如果您手动执行多步骤过程中的每个步骤,或者如果您正在使用箭头键或鼠标,那么可能有更好的方法来完成它。 停止你在做什么,并查找它。
如果你什么都不做,学习vim和Emacs的基本导航控制,因为他们popup各地。 例如,您可以在Mac OS的任何文本input字段,大多数Unix shell,Eclipse等中使用Emacs风格的控件。您可以在less (1)命令中,在Slashdot , gmail上使用vim-style控件,等等
玩的开心!
这绝对是值得的。
有一个显而易见的理由,就是任何使用Vi(m)
都会告诉你,另外两个人似乎从未提及过。
这是明显的一个:
-
vi
是无所不在,非常强大的,通过学习一次,你就可以在任何有键盘的计算机上运用这种能力。
这些是学习Vim
鲜为人知的原因:
-
这不是你想象中的那么多。 一次运行Vim导师 (在一个shell中运行
vimtutor
,或者从Windows开始菜单中的Vim文件夹运行它),你就可以很好地完成自己的任务了,而且从这个angular度来说,这一切都是艰难的。 我已经达到了可以在工作中使用Vim
的水平,而且在不到一周的午餐时间内就没有明显的生产力。 -
这很有趣 ! 现在编辑文本就像是一个游戏 。 我积极地享受这一点 – 当你想到这件事时,这很荒谬。
还有两个不学习Vim
好理由:
-
这是令人上瘾的,你会发现你希望你可以在你所有的计算机上使用
Vim
命令,并且在你不能的时候诅咒。 幸运的是,至less在某些情况下,有办法 解决 这个问题 。 -
再一次,这是令人上瘾的,虽然不会因为实际使用
Vim
而损失任何生产力,但您将浪费数小时search优秀技巧,使您的Vim
体验更加完美,并阅读Stack Overflow上的Vim标签 。
绝对值得学习vim或emacs。 触摸式也值得学习。 在这两种情况下,原因都是一样的: 你的思维不再被代码到屏幕上的机械过程所中断 。
至于如何开始,只要潜入并开始使用vim即可。
PS emacs-vs-vi的辩论是无止境的。 我已经使用了26年的emacs。 如果我今天再次入门,我会学习vim,因为(a)它变得更好了,(b)更less的修饰键(Ctl-Alt-V,任何人),而vim的用户似乎更less打字伤害。
通过学习只有16个键的含义,你可以从vim中获得很好的function: ijkdbw9:q!%s/nN
Esc 。 你可以只用i:wq
Esc来完成这些裸骨。
前两个键你需要知道的是: Esc把你带到命令模式(你开始的模式), i
带你插入模式(正常打字)。
为了节省你的需要
- 退出打字模式( Esc )
- 键入一个冒号
:
- input小写字母
w
然后回车
要保存并退出,您需要
- 退出打字模式( Esc )
- 键入一个冒号
:
- 键入小写
wq
然后回车
为了不保存和强制退出,你需要
- 退出打字模式( Esc )
- 键入一个冒号
:
- 键入小写
q!
然后input
要了解更多信息,可以在命令行运行vimtutor
。 这是一个中等长度,结构良好的课程。
除了i
和Esc :只有jkwbd3:%s/nN
才能复制或超过一些MS Wordfunction。
-
b
带你回到一个单词( Ctrl + ← ) -
w
会带你前进一个单词( Ctrl + → ) -
9w
带你前进九个字 -
db
删除前面的单词( Ctrl + Backspace ) -
d3b
删除三个前面的单词 -
9j
向下移动9行 - /
ornithopter
Enter将带你到单词“ornithopter”的下一个实例,然后n
和N
到达下一个和之前的“ornithopter”。 - :
%s/confounded/dangfangled/
用“dangfangled” input每个“混淆”的find and replace all
(如MS Word中的find and replace all
)
任何这些应该在“命令”模式( Esc )而不是插入模式( i
)下运行。
我最近转向了VIM,我认为这是值得的。 如果你需要“完成某些事情”,你可以一直保持插入模式,其中vim(大部分)就像普通的文本编辑器一样。
我注意到,那些没有用来打扰我的东西,比如伸手去拿箭头键,现在感觉不对,太费劲了。 这绝对减less了我的手部动作和鼠标的使用,这对人体工程学和生产力都有好处
这取决于你想用VIM做什么。 学习它是没有道理的,因为许多人不能没有它。
当我在UNIX环境下工作很多时,我离不开它。 即使VIM没有安装在UNIX机器上,我至less可以使用vi。 即使机器不是您的(客户),您也可以依靠它。
现在我用C#编程,主要是在Windows环境下工作。 我在我的电脑上安装了VIM,我不需要它。
评估你是否真的需要VIM,是否支持你的“工作stream程”。 试试看。 玩吧。 如果你认为你需要它,坚持下去…学习曲线非常陡峭。
我学习了vi,因为我必须。
我疯狂的老师迫使我们学习用C编写一个terminal到AIX系统。
这是一个真正的痛苦,但值得。
今天,我只用vi进行快速编辑或小程序。
当我必须去一个项目,我宁愿使用和IDE。 在我的情况下IntelliJ的想法是非常擅长的任务,因为我可以编码几个小时,而不必抓住鼠标。
我不知道VS2008有多less快捷键,但是如果它们像Eclipse一样可以被发现,我认为你有麻烦了。
如果不在IDE之外编辑代码,并且IDE有很好的快捷方式,那么最好学习这些,然后去学习vi。
🙂
我已经使用vi / vim超过25年了。 如果你已经知道一些命令行编辑器,那么也许你不需要学习vi / vim。 但是如果你不太了解其他的命令行编辑,那么值得学习。 在vi / vim中很费力,很容易。
我现在几乎全部使用VIM。
我曾经使用Vim编辑和VS编辑器进行debugging。 这可能看起来有些疯狂,但是我发现Vi范例(macros,基于主键的编辑等)提高了我的工作效率,VS中的编辑是油漆的。
感谢Viemu ,我甚至不必再进行切换。 它还不是完美的解决scheme(代码完成有时不像在本地vim中那么优雅,macros观录制也不完美),但是它比不断地来回切换要好得多。
Vim的学习曲线可能被夸大了。 我想一旦你进入它,这是非常直观的。
我的工作迫使我拿起vim,它迅速成为第二天性。 现在我的投诉是关于没有vim仿真或插件的IDE。 我注意到esc键已经成为vim之外的我的敌人。
我在Visual Studio中find了几个vi的模拟器:
首先,良好的vi(m)知识将为您节省时间,您必须忙于紧急编辑服务器上的configuration文件。 它可以阻止在一个laggy ssh连接。
pipe理员的东西旁边vim的input法将是你最好的防御腕pipe,如果你有效地使用人体工程学键盘。
看到vim的最好方法是在家里开始一个休闲项目,拔掉你的鼠标和磁带上方的箭头键。
并阅读帮助
vi / vim的两个优点:
-
这是非常轻量级的
-
它几乎安装在每个* NIX系统上
我正在远程计算机上维护一个非常大的Linux项目。 没有select使用Eclipse或类似的基于GTK的IDE。 我在那里工作了3年。 而我只为这个项目设置了我的vim。 而且还在调整。
现在我可以从Vim做任何事情:源代码pipe理,sql,debugging,编译,浏览 – 真正快速浏览1Gb源代码。
Visual Studio或Eclipse无法处理所有这些。 如果我有select,我不会将Vim更改为其他编辑器或IDE。
我学会了Vim。 这不是太多的努力。 现在我绝对爱ci“ci(cw V:s / from / to / g
我会说vim绝对值得学习。 我去年夏天就把它拿起来了,它现在是我所有select的几乎所有东西的编辑器(java是一个伸缩性,但是当我不需要广泛的分析支持时是可行的)。 正如大家已经肯定的那样,这是一个非常有效的工具。
对于它的价值,我只从graphics教程中学到了一小部分vim的function(花了一两天的时间),还有一些从这里开始的长篇大论(长篇阅读),以及search和replacefunction,被迷住了。 我从那以后就学到了东西,但在我的闲暇时间里。 我认为这个时候的学习曲线变平了,但是当时我正在使用它,并且被其他人也包围了。
我和你的情况一样,作为Vim的初学者,我最初发现它有点令人畏惧 – 学习曲线似乎很陡峭。 从我在几个小时内学到的东西,我已经觉得没有它我就无法生活。
这里 有 几个 链接 ,我已经find了有用的Vim截屏,以显示它的能力。
Bram Moolenaar(Vim的仁慈的独裁者)在最后一个环节给出了一些build议:试图学习每一个命令和函数是没有效率的,只要弄清楚你在做什么工作得很好,找一个办法让它更有效率,然后使之成为一种习惯。
是的,一定要花时间学习至less一点'vi'和'vim'。 它旅行得非常好。
当你面对一个你没有安装能力的客户的Unix / Linux / Mac系统时,你永远不会被卡住。 即使在Windows上(如果您有安装function),“Vim”也是免费且易于安装的。 (而不是像纯粹的UltraEdit那样投资你的学习曲线,尽pipe一个优秀的编辑者可能一直都没有为你提供…)。
学习vi可以设置你学习其他工具,如“sed”,一般的正则expression式:通常可以转换的东西。
此外,如果你想成为一个适当的怪胎,你只需要知道'vi / m',否则你会看起来像一个faker 😉
我觉得学习vim绝对是值得花时间和精力的。 对我来说,这使得打字和浏览文本效率如此高,很难想象回到emacs或ctrl / shift / alt / meta键组合。
不要被vim的所有奇特function所吓倒。 一旦你使用足够的,你会弄清楚你最喜欢使用哪个命令,你会找出哪些东西,你可以忘记。
在Unix系统上,Vim的惊人无处不在,以及Vi-clone的更普遍的无处不在,足以让它值得学习。
除此之外,整个Vi风格的思维是我真正认为使我更加富有成效的东西。 对于一个不熟悉命令模式和插入模式的人来说,为了插入文本而进入一个模式似乎有些过分。 但是,当一个人使用Vim几个月,并且学到了不less技巧和窍门时,Vim似乎是一种看起来很值得的资产。
当然,Emacs人群对于Emacs风格的思维也是这样说的,但是我放弃了学习Emacs,因为Vim比较简单,为我做了这个工作。
我学会了在看完一个非常熟练的技术人员之后,喜欢用vi浏览一下,以快速剪辑进行编辑。 你真的可以用它快速编码。 我喜欢的另一个原因是,有时候我发现在一个IDE里面呆会儿真的会伤到我的手,vi提供了一个很好的改变。 正如其他人所说,它也几乎总是可用于Unix系统,甚至在糟糕的连接上运行良好。
有一件事我没有看到,就是知道vi在某些圈子里有“怪才”的好处。 我能想到至less有几个人在看到一个新的程序员启动了nedit来对文件进行一些修改的时候笑了起来。
不要被命令的数量吓倒,我还没有遇到过最多只用了几十个人的人。 我觉得它是不可缺less的,因为当我在考虑代码时,我正在考虑文本,转而思考老鼠只是把我弄糊涂了。 我认为,大伎俩应该一点一点地学习,不要犹豫地玩弄 – 撤消function对于探索它的行为是很好的。
另外,如果你深入了解,vim是可以脚本化的。 可能性是无止境的。
(是的,所有这一切也适用于emacs …)
我很高兴在我的文本板和ecplise世界,直到我不得不开始使用Linux下运行的服务器。 远程脚本和设置configuration文件是需要的!
开始时很难,但现在我可以轻松地设置和调整我的服务器。
你可能想学习vim,因为你可能不满意你已经使用的编辑器。
你可能想学习vim,因为很多人说这很酷。 看看你对这个问题有多less答案。
我将提供学习vim的额外原因。 它在文档的质量和完整性方面享有盛誉。 因此,只要您设法在帮助查询中粘贴适当的关键字,您就可以在其帮助系统中find大多数问题的答案。
快速学习vi(m)必须先了解整个devise。 Vim有一大组光标移动命令,检查几个(X是一个字符,#一个数字):
jkinput箭头0 $ w w b B ctrolD crtolU ctrolE ctrolY HML fX FX tX TX,; %gg G n N mX'X“'
还有更多的列举会很无聊。 其中许多支持命令之前的计数,如4j移动4行。
现在,回到devise中,input一个类似于d的命令,然后按下光标移动,该命令将应用于从光标位置到移动结束的文本。 例如,H移动到屏幕的顶部,dH删除到屏幕的顶部,并且cH改变(replace)到屏幕的顶部。
这个devise非常强大。 它也减less或组织,你需要学习。 确切地说,第一步是学习一些光标移动命令。 先说8或10 那么你差不多完成了。
学习新东西总是值得的,恕我直言。 我build议你打印一张备忘单,并强迫自己日复一日地使用它。
Vim绝对值得学习部分总结一下之前所说的主要原因:
- Vi / Vim可以在大多数unix系统上find。
- Vim允许您轻松编写代码而无需将手从键盘上移开。
- 如果你打算在一个基于Unix的系统中configuration任何东西,你可能会编辑一个公平的configuration文件,所以你需要学习一个基于terminal的编辑器,其中vim是最好的(对不起emacs)之一。
- Vim为几乎所有的操作系统编译/预编译二进制文件。 不需要发布“我需要为[insert OS]添加一个textmate选项”,否则您将拥有Vim!
- 有很多好的插件可以添加很多function,比如编辑器中的cvs diff,虽然其中一些需要大量修补。
还有一个方面,如果你觉得你喜欢Vim的键绑定,也有一些IDE在他们的编辑器中包含vim绑定的简单命令,例如Komodo Edit 。
为了学习Vim,请尝试在terminal中input“vimtutor”并按照说明操作。 还有一本特别好的Hacking Vim的书
不,学习vim比努力更值得。