如何在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中编辑多列中的文本的主要内容,如果未能解决你的问题,请参考以下文章