vi的典型用例是什么?

问题描述 投票:5回答:13

我最近开始学习vi,阅读一些教程并尝试习惯它。但我仍然有一些问题。

对于小的一个文件更改似乎很好,但是一旦我开始尝试做更大的事情,它似乎缺乏。例如,我习惯于使用代码格式,导入组织,简单概述所有包以及IDE为我提供的其他内容。我看到一些关于如何使用vi作为IDE的tutorials,但它充其量感到尴尬。

现在我只是想知道,vi的典型用例是什么?它通常用于编辑小文件,还是可以用于大型项目?如果你在大型项目中使用它,你如何使它工作?或者使用带有vi键绑定的IDE会更容易吗?

vim vi
13个回答
24
投票

由于以下原因,人们使用像Vi(m)这样的非IDE编辑器进行编码,

  1. 它们不会分散注意力,让您专注于工作。
  2. 它们不会使您的屏幕区域混乱,为您提供更多的代码空间
  3. 它们更快
  4. 它们在手指的笔触处具有更好/更快/更冷的文本操作
  5. 您碰巧将手从键盘移开而不是握住鼠标,将其拖动到此处然后单击。
  6. 他们还可以灵活地支持调试器,文档查看器等其他工具。
  7. 他们还有办法解决代码折叠等问题。

对于理想的工作周期所在的普通程序员来说,编写代码,测试,调试,更多代码,测试调试.Vi提供了一个简单而强大的环境,可以更快,更高效地完成工作。

对于多年使用某些IDE的人来说,可能就像使用一些史前工具一样,但是一旦他们经历了最初的日子,那么就没有回头了。他们觉得没有更好的事情。


1
投票

Vim不太擅长代码感知。擅长的是文本操作。它为您提供了编辑文本的工具,而不是为您编辑。如果您只是进行“小”编辑并且没有阅读偶尔的“你希望你知道的vim命令”,那么你将无法理解所提供的功能。

代码格式化

格式化用=完成。您还可以将equalprg指向外部程序以为您执行格式化。

进口组织

如果您选择导入行,Vim将无法删除未使用的导入

:'<,'>sort

简单概述所有包

:vs .

这将打开一个包含当前工作目录的垂直窗口:)

总之,vim无法取代您的IDE,但它可以让您编辑文本。


0
投票

通常:根据您的工作选择您的工具! ;-)我正在使用Vim和Visual Studio。您不必只选择一个。

  • 如果需要IDE,请使用IDE。 Vim是为文本操作而制作的。
  • 它支持任何语言。尝试使用Visual Studio编辑Ruby脚本。
  • 大文件的性能比大多数IDE好得多。尝试使用IDE分析具有100k行或更多行的日志文件。
  • 它可以在许多平台上运行,如果您必须在服务器上编辑文件,则可以通过远程控制台使用它。
  • ...

IDE是专门的工具,可以解决它们的问题。 Vim是一个令人难以置信的灵活和强大的通用工具。


0
投票

这显然是一个热门话题,因此我将列出为什么我更喜欢IDE编辑器进行编码的原因。 1)我更喜欢能够折叠我的代码部分(我不知道Vi(m)是否可以)而不必记住命令或输入它。

2)我更喜欢单击编译按钮/命令,而不是必须记住我的编译命令和它的选项库

3)我更喜欢更轻松的高亮复制粘贴操作,而不必........啊!

那么现在你得到的照片。我不是敲Vi(m)我只是认为你的编码环境的元素和功能在视觉上表现得更清晰,并鼓励探索你可能不知道存在的选项。


0
投票

我更喜欢vim over vi而不愿意将它们混为一谈。 Vim提供了一些非常方便的功能,并不总是很明显。已经提到的是屏幕分裂。您也可以查看ctags或exctags。这些允许您从vim内跳转代码库。我可以将光标放在被调用的方法上,跳转到定义,跳转到该方法中的定义等。非常强大的跟踪错误。 Cscope是另一个类似的计划。

Vim还允许您在环境中运行任意shell命令,并具有强大的搜索和替换功能。

那么IDE将提供大多数这些,vim将提供哪些传统的基于GUI的IDE?这很简单,它在CLI上运行。

这允许我登录到我的开发框,运行屏幕(肯定要检查陌生的:http://www.gnu.org/software/screen/)并在我的开发框中的屏幕会话中运行多个vim会话。现在,当我离开工作时,即使在运行构建时,我也可以在离开工作时离开工作会话。当我第二天上班时,我可以从我的环境中连接,好像我从未离开过。

特别喜欢vim或vi的另一个原因是它几乎可以在任何Unix环境中找到。



7
投票

我没有做过你在python中称之为大项目的任何事情(只有很少的测试脚本),但是我只使用Vim编写大型嵌入式C应用程序而且我从未真正感觉到需要IDE。

Vim启动速度快,使用起来非常快,并且(通过一些自定义)可以完成IDE可以执行的大多数操作。它将完成代码完成,代码自动缩进和重新格式化,并且非常擅长重构。 project plugin http://www.vim.org/scripts/script.php?script_id=69可以很容易地管理包含大量文件的项目,而taglist plugin http://www.vim.org/scripts/script.php?script_id=273非常适合浏览源代码。它还允许您将C代码与python代码,汇编代码和乳胶文档并排打开,而无需为每个代码使用不同的工具。

总的来说,我认为有一个非常有价值的东西是Vim给你的很少其他编辑做的,我会发现很难失去它:我可以将一个窗口分成三个部分,如下所示:

GVIM Split Window

每个子窗口都可以显示单独的文件,或者(如屏幕截图中)显示文件的单独部分。我想emacs可以做到这一点(虽然我可能错了),但我怀疑很多IDE都可以。这对于重构和引用文件的其他部分非常有用。


6
投票

多年来我一直使用VI(M)和Emacs作为我的主要编辑器......我已经尝试过切换到IDE,但发现它们不能让我的方式不够。我总是在一段时间后回到VI(M)或Emacs。一个主要原因是我发现我的手需要在IDE中过多地放置键盘,因为它们经常需要鼠标......而且我懒得为所有东西设置我自己的快捷方式。


3
投票

这就是我使用它的原因。

  1. 启动很快
  2. 它可以在多个平台上使用,并且可以在所有Unix机器上使用
  3. 它使用起来很快(常见操作的击键,基于单词/段落的操作等)

但是,我使用IDE进行大规模的开发工作,因为我不相信它们可以因为代码感知和重构能力而被打败。我使用Eclipse,但是我将VI编辑器模拟器插入其中。有关详细信息,请参阅this answer


3
投票

虽然并不总是那么漂亮,但是(g)vim可以配置为执行IDE可以执行的所有操作......还有更多。你只需要找到right plugins

经过一段时间的习惯,相比之下,其他ide和文本编辑器将变得笨拙和低效。

vim很容易上瘾。


2
投票

我看到了一些关于如何使用VI作为IDE的教程,但它充其量感觉很尴尬。

一开始就有一件事要做:把你的美学感抛到脑后。您将永远无法在VIM中获得与在体面的IDE中相同的图形体验。

也就是说,VIM实际上确实提供了一个完整的IDE的许多功能,并且还有很多优点。我使用VIM几乎完成了所有开发工作和所有文本文档(使用Vim-LaTeX) - 尽管我实际上是为Apple的办公套件iWorks付钱。

不过有一点仍然在唠叨我:I can't get IntelliSense to work。对我来说,这是一个很大的问题,特别是在使用VB,C#或Java等语言时,存在优秀的IDE支持。

所以,VIM的学习曲线是陡峭的,但是一旦你超过了某个点,它就会变得尴尬。事实上,与VIM的编辑体验相比,你会发现它突然感觉很尴尬,因为虽然他们擅长簿记的东西,但他们很擅长编辑。


2
投票

我经常在远程系统上工作,为集群编程或在无头盒上编辑配置文件。所有这些都可以通过文件传输,常规IDE和其他文件传输来完成,但通过SSH使用VIM要快得多。


1
投票

您几乎可以在任何地方找到它(或轻松安装它) - Runs on all systems that can implement the standard C library, including UNIX, Linux, DOS, Windows, Mac, BeOS, and POSIX-compliant systems.

登录远程服务器并自信地编辑配置文件的能力是无价的。

© www.soinside.com 2019 - 2024. All rights reserved.