首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP开发人员为什么要使用/学习VI编辑器?

PHP开发人员为什么要使用/学习VI编辑器?
EN

Software Engineering用户
提问于 2015-06-14 06:27:01
回答 3查看 1.7K关注 0票数 -3

PHP开发人员为什么要使用/学习VI编辑器?

我的意思是,有10个最令人惊叹的编辑器,如PHPStorm,Netbeans,这提高了开发人员的生产力。

让我们考虑一下PHPStorm。我从来没有被像PHPStorm这样的编辑所惊异。

它有1000个特征。从语法提示,显示弱错误,警告,通知等。

当我们比较VI编辑器和像PHPStorm这样的编辑器提供的特性的数量时,我们看到它就像10个和1000个特性。

我的问题是:为什么我要学习使用Vi编辑器?

我是中级linux(Ubuntu)用户。

编辑:谁告诉我学习VI?=>通常是它在PHP

的工作列表中所需的技能。

谢谢。

EN

回答 3

Software Engineering用户

回答已采纳

发布于 2015-06-14 07:00:36

一个可能的原因是您可能需要从远程编辑PHP文件,而且通过SSH访问服务器比远程桌面要快得多。

但是,SSH等协议只允许您访问服务器的命令(文本)接口,即终端/命令提示符。像Netbeans这样的编辑器需要一个图形界面,是的,您可以通过远程桌面访问服务器,但是任何做过这种操作的人都知道,它的速度慢得令人痛苦,而且没有效率。

VI/VIM是一个基于文本的编辑器,它不需要图形界面,它是在大多数Unix/Linus平台上预装的,可以在终端上运行,因此,当您只能访问服务器的命令接口时,从远程编辑文件就特别方便了。VI/VIM的另一个常见用途是编辑需要根权限(我指的是Unix/Linux平台)的系统管理文件,因为VI/VIM可以使用"sudo“命令轻松运行。

票数 7
EN

Software Engineering用户

发布于 2015-06-14 07:49:23

简单的回答:因为你会需要它。

在有效的unix/linux环境中,您可能只会找到vi/vim作为编辑器。

此外,您也不允许在生产服务器上安装其他软件(比如您最喜欢的IDE)。

此外,大多数服务器环境都没有GUI (谈到unix/linux时),因此远程桌面是没有选择的。

因此,您必须通过ssh使用一个简单的编辑器(如vi)。

票数 5
EN

Software Engineering用户

发布于 2015-06-14 08:13:11

IMHO“因为您可能需要编辑生产服务器上的文件,并且生产服务器上没有IDE/GUI”不能回答。

  1. 在任何专业商店中,普通开发人员都无法访问生产服务器。如果商店的员工人数超过10人,他们就会有一个系统管理员/开发团队。
  2. 即使我们假设团队太小,没有系统管理/开发人员,那么开发人员可能也扮演着系统管理员/devops的角色,这意味着他可能需要vim (或者emacs,nano .)作为这个角色的一部分。
  3. 所有IDE都有可能(本机或通过插件)访问删除文件系统上的文件,只需通过SSH/FTP或任何可以到达服务器的通道。因此,即使商店没有部署过程,或者部署中断,您也可以轻松地编辑服务器上的文件,而无需使用vim。

开发人员为什么要使用/学习VI编辑器呢?

这就是我能想到的原因:

  1. 您在问题中提到的所有工具也可以在vim中使用。语法突出显示、xdebug等都有。您只需安装插件和配置vim以满足您的需求。显然,"phpStorm“是一个适合于PHP开发的IDE,所以它有所有现成的内容,而vim是一个可扩展的文本编辑器,这意味着您必须付出大量的努力才能使其适合您的工作流程。你可以看看这个视频显示了一个奇妙的tmux +vim设置. -你会注意到他的vim不再像你的vim了。
  2. 我认为当掌握了一个没有鼠标的键盘-工作流程是有效的更快。这需要大量的实践,但当你站在一个维姆魔术师旁边,你只会被他的速度。正常的IDEs永远无法达到IMHO的工作速度。
  3. 因为并不是所有的事情都是现成的,所以你会更深入地了解事情是如何在幕后运作的。当然,与开箱即用的解决方案相比,这当然是一项巨大的时间投资。
  4. 正如前面所概述的,与一个成熟的IDE相比,vim非常光秃秃的。这也让你有机会自己创建一个个人工作流程。所有的键绑定、宏、插件、视觉特性--编辑器的全部行为都在您的控制之下。您可以形成自己的个人工作流,而不是使用IDE提供的工作流。
  5. 使用它会带来一种古怪的、温暖的感觉--一种古老的学校生活。

总之,学习它是一笔巨大的时间投资,但它可能是有意义的,因为你获得了很多洞察力,并且能够形成你自己的工作流程。

如果您不仅是一个开发人员,而且还扮演着系统管理员或DevOps的角色,那么这显然是与服务器交互所需要的技能。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/286730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档