Questions tagged «vim-windows»

Vim窗口是缓冲区的视图。标签页包含一个或多个窗口。有关与Microsoft操作系统交互的问题,请使用[microsoft-windows]。有关与桌面窗口系统交互的问题,请使用[window-management]。

4
如何保存窗口,拆分和缓冲区布局?
我在一个存储库中正在处理多项任务。我想创建用于处理它们的“工作区”。 一个“工作区”或“缓冲区布局”将使我需要处理的所有文件都在我想要的布局中打开(使用^w+v,^w+s分割窗口)。 然后,当我开始执行另一项任务时,我想保存当前的布局,移至另一项,但是我希望能够恢复到以前的布局。 实现此目标的最佳方法是什么?


5
交换两个窗口的位置
说以下是我的窗口的当前结构: + ----- + ---------------------------- | | | A | | | + ----- + | | | B | A和B的顺序不是很自然。如果B在最上面,那会更好。 但是,如果我走了<C-w>K,B将是所有窗口的最顶端,这不是我想要的。如何将B置于A之上,但不能置于A之上的任何其他窗口之上? 如果将两个窗口垂直拆分,如何将它们更改为水平拆分?

4
没有Ctrl-W的情况下如何在Vim中使用拆分?
我的终端不允许我输入Ctrl+ W,因为这是关闭终端标签的快捷方式。 我喜欢使用拆分,但是如果不使用,我将找不到任何方法C-W。这迫使我使用的标签,因为我可以在它们之间进行切换使用gt,gT或#gt其中#是一个数字,但我觉得这不是分裂不太方便,我只能看到一个文件的内容在同一时间。 我无法使用mouse=a任何一个,因为我的终端不支持该功能。 在没有Ctrl+ W组合的情况下,如何在Vim中使用拆分?

1
如何在当前窗口中打开新缓冲区?
我打开了一些带有不同窗口设置的选项卡。 我想在当前窗口中打开一个新的空白缓冲区,而没有任何其他拆分/窗口或标签 有什么办法吗? 我知道我可以像:n那时C-w j那样做,:q但这似乎有些混乱。 或类似选项卡: :tabe gT :q 我对窗口和缓冲区之间的关系总体上有些困惑-您可以打开许多不可见的缓冲区,可以清理使用这些缓冲区,bd但是如果看不见,则必须将其保存,因为您无法隐藏它们(使用:q)而不保存或放弃更改……这似乎有些奇怪。


1
如何获得Vim的实际高度和宽度?
winheight()并winwidth()返回当前窗口中的列数/行数。我正在寻找的是更接近于编辑区域或显示区域(如果在终端中运行)的实际高度和宽度的东西。这个问题winheight()和winwidth()从这些值计算出纵横比与实际长宽比脱节。 :echo winwidth('%') winheight('%') winwidth('%') * 1.0 / winheight('%') 104 51 2.039216 缓冲区的屏幕截图大小为936x918像素,显示的纵横比为1.019608。我想我可以通过使用字体大小来获取实际值,但是如何呢? 这是我如何在垂直分割中使Vim打开帮助的后续措施?。我正在尝试适应Nobe4的解决方案。

4
如何在垂直分割中使Vim打开帮助?
我通常在下拉式终端中工作,高度大约为25个字符。因为我比Windows 1更喜欢制表符,所以通常会浪费很多水平空间-大约是终端宽度的一半。 最重要的是,helpheight在打开帮助窗口时,Vim的默认设置为,只留下了几行文件内容: 有没有办法:h利用垂直分割? 我可以: 减少 helpheight 用于<C-W>L手动移动窗口 制作一个地图或自定义命令为我完成以上操作。 有没有更简单的方法? 1当我需要一起查看多个文件时,我确实使用Windows。但是通常我希望每个文件都在其自己的(心理)上下文中。

4
将文本从一个拆分窗口发送到另一个
最近,NeoVim有一个附加组件,它允许在vim缓冲区中打开终端。这具有将文本从一个vim窗口发送到另一个副本的吸引力,例如,类似于REPL的行为。 过去,我使用tmux进行这种配置。但是现在我只想使用NeoVim尝试一下。 我的问题是-如何将一个vim拆分的文本块发送到另一个?或许更确切地说-如何使选择文本,拉动文本,更改拆分然后粘贴的顺序自动化?




2
WinEnter,BufEnter,BufRead,语法,FileType事件的顺序是什么?
我已经通过了autocmd.txt帮助,但是关于此的信息是分散的,并不总是存在(例如,带有BufRead)。 懂得这一点的人能否列出这些事件的顺序-也许用括号标出条件,例如 WinEnter BufEnter (if this window is for a different buffer than the current) 等等,以便于参考? 注意(摘自下面我的评论):我不是在谈论对它们的个别解释,这没关系,而是在讨论它们如何相互影响以及发生的顺序。例如,WinEnter说“ Vim在WinEnter自动命令之后执行BufEnter自动命令”,TabEnter说“在触发WinEnter之后并且在触发BufEnter事件之前”,它们像这样分散在许多地方。有时BufRead根本没有提及它(例如,没有提及它是在BufEnter之后还是之前运行-也许专家可以从那里的其他信息中推断出它,但是我不能。 所以,我的意图是为这些事件的顺序创建一个简单的参考,非专家可以快速查找这些事件的顺序,autocmd 事件规范。

6
如何将一组缓冲区绑定到选项卡?
当我需要同时处理不同的项目时,我有以下工作流程: 我为每个项目创建一个选项卡。 在每个选项卡中,打开要编辑的文件,这将创建多个缓冲区。 可选地,如果我需要同时查看两个(或多个)文件,则可以创建拆分窗口,因此我有一个包含不同窗口的选项卡,其中显示了一个缓冲区。 我的缓冲区我真的不使用之间进行切换:ls,并:b [name or number of buffer]代替我创造了一些方便的映射,让我与缓冲区之间切换:bnext,并:bprevious 这种工作方式非常好,但让我感到困扰:缓冲区在选项卡之间共享。 如果我打开file1,并file2在tab1和file3中tab2,如果tab1我用几个时间:bnext我会看到file3在这个标签,我不想。我想要得到的工作流程如下: 启动vim(我有一个带有缓冲区的第一个选项卡): $ vim foo 将缓冲区添加到此选项卡: :e bar 打开一个新标签并切换到它: :tabnew 在此选项卡中打开一个新缓冲区: :e baz 如果我留在此缓冲区中并且:bnext还是:bprevious要留在baz缓冲区中(因为它是此选项卡中唯一的缓冲区) 如果我进入上一个选项卡:tabprevious并执行几次,则:bnext只能在foo和bar缓冲区之间切换,但看不到baz 因此,我的问题来了:是否可以将一组缓冲区绑定到一个选项卡,并使vim禁止从另一个选项卡(而不是它们要进入的那个)访问某些缓冲区? 注意:我知道使用:b [myBuffer]可以在选项卡中保留缓冲区,但是当我要编辑3或4个文件时,我觉得使用映射的速度确实比输入缓冲区名称要快(即使我可以仅键入一些字符以匹配缓冲区名称)。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.