如何在vim中编辑多列中的文本

Posted

技术标签:

【中文标题】如何在vim中编辑多列中的文本【英文标题】:how to edit text in multiple columns in vim 【发布时间】:2011-07-05 02:39:13 【问题描述】:

如何在 Vim 中编辑我的代码,将其显示在任意数量的列中?

我的笔记本电脑和台式机显示器是宽屏的(我怀疑过去 5 年或 10 年制造的大多数显示器都是如此!)。当我全屏打开任何编辑器时,一半以上的屏幕完全是空的。我希望能够通过将屏幕的其余部分分成两列或三列来有效地使用它,这样我就可以在一个屏幕中看到我的更多代码。

坦率地说,令我惊讶的是,除了 Microsoft Word 之外,我从未在任何编辑器中看到过此功能。

我发现以下页面 (http://vim.wikia.com/wiki/View_text_file_in_two_columns) 似乎可以满足我的要求,但我并不真正理解他们的建议。我确实设置了列和滚动绑定,但这似乎没有任何作用。

我通常不使用 Vim,但如果我可以访问此功能,我会很高兴地切换。我目前在 Ubuntu 10.10 (gnome) 上。 Vim 的默认版本似乎是 7.2 (/usr/bin/vim.gnome)。

【问题讨论】:

这属于超级用户吗? 显然属于“程序员常用的软件工具”。 @brillout “寻找最新的”答案是什么意思?您有特定的疑问/问题吗?如果以下答案对您没有帮助,最好开一个新的。 接受答案的解决方案不可靠,两个窗格的滚动一直不同步。我很惊讶没有更好的解决方案。会喜欢可靠的东西!它可以有效地使我的阅读空间翻倍...... @brillout IMO,也许最好打开一个新问题,在那里你可以参考这个问题,并描述为什么这里的答案对你没有帮助,并举例说明问题。这个问题已经有一个公认的答案,也许它对你不起作用,但 OP 已经接受了它,这意味着它已经完成了。 【参考方案1】:

我认为你想要做的是拆分窗口......

键入:Vexplore 以垂直拆分窗口。

然后使用 Ctrl + W + 箭头键 导航到另一个窗口。 :Sexplore 可以让你水平分割窗口。

要在调整大小后均匀空间,可以键入 Ctrl + W + =

【讨论】:

:*explore 和 :split 似乎允许我同时打开两个不同的文件。我实际上想将同一个文件拆分为多个列。就像长行会自动流到下一行一样,我希望长文本会溢出到下一列。 @Shahbaz:是的,可以这么说,它会打开一个浏览器。但是您可以根据需要打开同一个文件两次或多次。【参考方案2】:

只需按CTRL-W v,您正在处理的文件就会被分成两个独立的列。多次重复CTRL-W v

将滚动绑定:set scrollbind 设置为要同步滚动的列。

例如:

vim afile         # Open a file
^w v              # split it
gg                # go to top
:set scrollbind   # bind this one
^w l              # go to the new split
L                 # go to bottom of this split
zt                # make it the top line
:set scrollbind   # bind with this one

现在,当您在一列上移动时,另一列滚动,好像第一列将文本溢出到第二列。

【讨论】:

哇,这太接近了!我可以在两列中看到同一个文件,它们一起滚动。但是,我不希望两列中的镜像,我希望第一列中的文本流入下一列。假设我的文件只有 1 到 10k 的数字。我希望在第一列中看到 1-60,在第二列中看到 61-120,等等。 @Shahbaz:我有一个错字。它做你想做的事。我想我以后会更新一个更完整的功能。 这似乎符合您的描述:vim.wikia.com/wiki/View_text_file_in_two_columns 这个解决方案不可靠,两个窗格的滚动总是不同步。我很惊讶没有更好的解决方案。会喜欢可靠的东西!它可以有效地使我的阅读空间翻倍.. 你可以创建一个更复杂的函数来处理你的边缘情况,但重点仍然是使用scrollbind【参考方案3】:

这是我使用的:http://vim.wikia.com/wiki/View_text_file_in_two_columns。

有点笨拙...有时滚动同步会偏移或断开连接,迫使您重新排列视图(在 cmd 模式下,CTRL+W,q 关闭一个列窗口,&\vs添加一个。)。

但它在 90% 的时间里都很好用。我经常使用它。

【讨论】:

以上是关于如何在vim中编辑多列中的文本的主要内容,如果未能解决你的问题,请参考以下文章

如何在Vi/Vim编辑器中启用语法高亮显示

如何在 Vim/Vi 中快速查找和替换文本内容

如何在 Vim 中将所有文本转换为小写

Vim编辑器基础入门技巧分享

Linux环境下vi/vim编辑器常用命令

如何在Vim编辑器中密码保护文件