我开始使用VIM并尝试理解它。我目前使用TextMate进行Web开发,因此我可以构建很好的命令,它可以将我当前的文档/选择显示为非常快速的Web视图,或者通过工具提示发送一些结果。
我认为将此问题提交给MacVim更合适,因为它可以访问GUI元素,所以有时可能会这样吗?
“HTML Output for Commands”是一个很好的解释。
所以我想知道它是否可以像TextMate一样将命令输出到HTML窗口?
或者我是否必须创建自己的程序来接受STDIN并将其显示为视图上的html输出?
工具提示相同吗?
我希望MacVim可以访问Cocoa库和GUI元素,或许它已经有了这样的功能吗?
对不起,如果我误解了这里的事情,我真的觉得迁移是个好主意,但显然我想保留我使用的漂亮而快速的工具,而不会失去良好的视觉吸引力。
答案 0 :(得分:4)
所以我想知道它是否可以将命令输出到html窗口,就像TextMate一样?
你可以让vim在命令行发出命令,告诉浏览器打开你正在编辑的文件。
在Mac上,在命令行或MacVim上使用vim,如果你在缓冲区中编辑一个名为“test.html”的文件,它就在你的桌面文件夹中:
:!open ~/Desktop/test.html
将在浏览器中打开或重新打开该文件。因此,当您进行更改时,您会发出更改,浏览器将使用最新版本的文件到达前台。您可以使用其他选项“打开”来指定要使用的浏览器。并且,您可以轻松添加按键以打开当前文件,即命令行中的“%”。
如果要在vim中捕获命令的输出,有几种方法可以做到这一点。如果执行命令,vim将在临时缓冲区中捕获其输出以供查看。
:!ls
显示:
:!ls Desktop Downloads Library Music Photo Tools Public VirtualBox VMs bin Documents Editors Movies Music Tools Pictures Sites Web Tools
您还可以查看Command - R like functionality in MacVim和Vim - Displaying Code Output in a New Window á la Textmate?中的内容。
我不确定“工具提示”是什么意思。通常,它指的是鼠标尖端的弹出文本,提供上下文相关的帮助。你不能通过它发送文字,所以你对这个词的使用是混乱的。
MacVim和vim确实具有类似代码段的功能,并且可以编写脚本,可以处理当前选择的文本,还有更多。重要的是要理解MacVim是常规vim编辑器之上的GUI层,因此有些事情是不会做的,因为vim的引擎并不容易。这并没有让我感到困扰,因为如果我需要一个特定的TextMate功能,我会启动它,使用那个特定的东西,然后如果我愿意的话跳回来。但是,这对我来说并不常见。
您可能希望在页面的右侧查看SO上的一些相关线程,再看一下vim的插件,如:
我一直使用上面的那些。如果我没有它们,我会想念以下的那些。
编辑:
将临时缓冲区捕获到Vim中的新缓冲区非常简单:
:redir @a
:sil !ls -al
:redir end
:vnew
"agp
第二行:sil !ls -al
可以是任何命令的执行。 :sil
告诉Vim不要将输出回显到临时缓冲区,而是静默捕获它,从而摆脱“按任意键”暂停。
:vnew
创建一个垂直拆分,其中包含一个新缓冲区。如果您想要一个新标签页,可以使用:tabnew
。
"agp
告诉它使用缓冲区@a
并将输出粘贴到当前缓冲区并将光标留在粘贴的文本下面。