Questions tagged «buffers»

加载到内存中的文件的表示形式。编辑是在缓冲区上执行的。

6
有没有简单的方法可以关闭暂存缓冲区/预览窗口?
我安装的其中一个插件(可能是Supertab)为完成菜单中当前突出显示的项目提供了一个很好的文档视图: 即使我退出完成(按Enter或Space),(显然)暂存缓冲区仍保持打开状态。然后,要退出它,我这样做了<c-w>↑:q,但是我发现不得不按下Ctrl非常烦人的代码(我避免分裂的一个原因)。 关闭此暂存缓冲区的快速方法是什么?有本机的方法,还是我必须编写映射?

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

2
在不退出Vim的情况下关闭和卸载缓冲区
通常,我会将一些信息加载到临时缓冲区中,然后使用来关闭它:clo!。但这隐藏了缓冲区,而不是完全卸载它,即使我已经nohidden设置了。我觉得这很烦,因为我退出Vim时会得到关于我已经(认为我)已经丢弃的内容的额外确认。 我可以:q!改用它,但这是个坏习惯,因为如果只剩下一个缓冲区,它将完全退出Vim,这也很烦人。更糟糕的是,如果输入错误:qa!,我可能会失去很多工作。 有中间立场吗?我真的很想命令杀死当前缓冲区,但不退出Vim。我不反对用Vimscript编写它,但是如果命令已经存在,我宁愿避免使用它。

7
在vim中切换到缓冲区的最快方法?
在vim中选择缓冲区的一种方法是浏览缓冲区列表,使用标准命令:ls,或者使用一些外部插件/ vimscript代码在窗口中浏览列表。 假设我想尽可能快地直接跳转到缓冲区。 为了在顺序模式下遍历缓冲区列表,我现在使用<C-J> <C-K>快捷方式,在.vimrc中进行设置: " move among buffers with CTRL map <C-J> :bnext<CR> map <C-K> :bprev<CR> 另一种方式(直接访问)可能是通过数字切换:知道缓冲区号,可以通过输入缓冲区号后接来直接进行切换<C-^>。因此,如果要切换到5号缓冲区,请按5<C-^>。 但这似乎对我不起作用(我在Windows客户机上使用意大利语键盘在ubuntu盒上使用vim 7.4 )。我怀疑这是因为该^字符位于^ì意大利语键盘的大写字母中,所以实际上^我需要按SHIFT-^ 有任何想法吗?
43 vimrc  buffers 

5
重编号缓冲区列表
在一段时间从事项目工作之后,我开始发现连续的缓冲区号之间存在很大的差距。这是因为出于各种原因擦除了它们之间的缓冲区。不幸的是,这会使键入后跳到特定缓冲区或选择一系列缓冲区变得很尴尬:ls。有什么方法可以从一个开始重新编号所有打开的缓冲区,而不必再次打开所有文件?

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


2
如何一次重新加载所有缓冲区?
在中的功能分支上工作时git,我经常需要存储更改以将错误修复提交到主分支。完成更改后,I git stash pop会更新文件上的时间戳。 即使文件相同,但下次尝试保存时,我得到: 警告:文件自读取以来已更改!!! 您真的要写(y / n)吗? 我不想每次在磁盘上更改文件时都自动重新加载文件,仅当I时git stash pop。 现在,我分别手动重新加载每个缓冲区(:e)。我有什么办法可以在一个命令中做到这一点吗?
20 buffers  load 


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 事件规范。

4
有没有一种方法可以可靠地在文件历史记录中往返
我想转到我刚刚编辑的文件,然后再编辑类似MRU插件的文件。 :bnext并且:bprev有时可以正常运行,但大多数情况下,我只会遇到一些晦涩的文件,我不记得编辑该文件了,而被迫退回到MRU插件。 有办法解决吗? Ctrl-^在最后两个文件之间交换。在更多内容之间导航的最佳方法是什么? 我知道这可能很棘手,但我同意任何可以改善当前:bn :bp行为的方法。我经常看到的缓冲区完全不合适。也许有一个插件可以跟踪最近的文件并提供挂钩,以便我可以创建映射? 回复评论使我的想法有些清醒。我相信我想要的是能够按最新保存顺序浏览文件。这样,如果我回溯历史,顺序将不会改变,直到我保存文件,然后保存到最后一个文件,然后向后一步“返回”到之前保存的文件,即我开始的那一步。 诸如Ctrl-O Ctrl-Ipair之类的东西,可以立即切换文件而不会在当前缓冲区中跳转。u与Unetrw 类似: u Change to recently-visited directory |netrw-u| U Change to subsequently-visited directory |netrw-U|
15 buffers 


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个文件时,我觉得使用映射的速度确实比输入缓冲区名称要快(即使我可以仅键入一些字符以匹配缓冲区名称)。

3
什么是使用缓冲区的更有效方法?
最近,我一直在大幅度减少使用的插件数量,因此我只使用内置的Vim功能来寻找答案。 当我编辑许多缓冲区时,我一直注意到我的工作流程中存在一个缺陷:我在一个缓冲区上,我想切换到另一个我不记得名字的缓冲区,并且它不是替代缓冲区。因此:b#无法使用,并且使用命令的完成:b也不方便。 为此,我正在执行以下操作: 第一次使用:buffers来获取打开缓冲区的列表 记住我要使用的缓冲区编号 按下Enter以关闭缓冲区列表 使用:bX与X缓冲区的使用数量。 这个工作流程对我来说似乎很繁重,所以我在我的代码中添加了以下几行 .vimrc: " Improve the navigation in the buffers nnoremap <Leader><S-b> :B<CR> command! B call Buffers() function! Buffers() execute "buffers" let buffer=input("Enter a buffer:") execute "b" . buffer endfunction 这给了我一个命令:B(和一个映射),该命令调用该函数:buffers等待输入,最后调用:b该输入。 它工作正常,但令我惊讶的是我不得不开发这样的功能:通常Vim具有非常有效的默认工作流程,所以我想知道是否有更好的方法可以切换到一个我不知道的缓冲区。它已在我的编辑会话中打开。
13 buffers 


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.