在过去的2-3年里,我开始使用Vim作为我的主编辑器,我已经学会了使用窗口(分割)时,处理多个文件(因为在每一个任务,我需要大量的文件来处理)
但是几天前,我遇到了this question,它让我大吃一惊(* 和我的工作流程:)*)
所以我试着使用缓冲区而不使用窗口,这真的很难。想象一下,有多个块(文件夹),每个块都有一个model.php
和一个controller.php
。所以在任务开始时,我不知道我需要哪个块,所以几分钟后,我会打开多个model.php
和controller.php
。
现在,如果我没有我需要的每个文件在我的缓冲区,我必须先搜索缓冲区,当我看到我没有加载它,现在我必须使用资源管理器和加载文件到缓冲区.所以它是这样的:
:ls<CR>
{If the file that I need is here then}
:b num<CR>
{else}
:FZF {and finding that file}
因此,这比使用Windows要困难得多(* 我可以看到哪些文件加载在我面前 )
( 当然,查找缓冲区和按名称/编号搜索缓冲区的开销就像每次需要时都打开文件一样 )
但是正如在this question和很多其他地方所说的,缓冲区应该使你的工作流程比窗口更容易,窗口应该只用于差异等。
那么,有没有更好的方法来使用缓冲区呢?还是我做错了什么?
( 顺便说一句,我目前使用的是fzf.vim
中的:Buffers
*)
2条答案
按热度按时间rn0zuynd1#
所以我试着使用缓冲区,没有窗口,这真的很难。
这意味着你误解了相关答案的精神和文字。
概括地说,Vim与常规基于文档的应用程序中的“documents”完全等同,它是 buffers。windows,另一个在windows上:* 选项卡页 *,以便在构建工作流时给予更大的灵活性。
强迫自己使用缓冲区而不是窗口或标签页或其他任何东西都是没有意义的,因为这三者都有价值,这种态度只会降低编辑器的整体价值。使用最适合你需要的交互模型,而不是你认为自己是最纯粹的交互模型。
至于文件和缓冲区之间的混淆,文件和标签页之间的混淆,或者缓冲区和窗口之间的混淆呢?当你处理建立在其他抽象之上的抽象时,你必须有特定于一层或另一层的命令,学习分层蛋糕是如何工作的,会给你必要的直觉来决定什么时候使用什么命令。
基本上,你有三种情况:
| 案例编号|是一个缓冲区|是一个文件|
| - -|- -|- -|
| 一个|Y型|Y型|
| 2个|Y型|不|
| 三个|不|Y型|
在第1种情况下,缓冲区与文件相关联,因此您可以同时使用以文件为中心和以缓冲区为中心的命令来到达目标。
在第2种情况下,缓冲区与文件没有关联,因此您只能使用以缓冲区为中心的命令来到达目标。
在第3种情况下,没有缓冲区,因此只能使用与文件相关的命令来到达目标。
另一种思考方式是问“我已经去过那里了吗?”如果答案是“否”,那么使用以文件为中心的命令,如果答案是“是”,那么使用以缓冲区为中心的命令。如果你不知道或者不想考虑这些问题,那么就使用以文件为中心的命令作为后备。
请注意,这个答案的上下文是“缓冲区vs窗口vs选项卡页”。Abstracting yourself away from the notions of files or documents才是真实的的交易。
9cbw7uwe2#
1.当谈到“最佳工作流程”时,我们不可避免地会谈到我们的个人习惯和品味。所以,只要记住,这是你的编辑,你的工作流程和你的“最佳实践”,而不是别人的。
1.窗口/选项卡和缓冲区并不禁止相互使用。在当前窗口/选项卡中打开缓冲区并不是什么问题,即使它已经在另一个窗口/选项卡中打开过(甚至在十几个窗口/选项卡中)。
1.如果你觉得在缓冲区列表中搜索不舒服,可以尝试使用其他工具。例如,你喜欢用鼠标点击,然后运行GVim并浏览“缓冲区”菜单;或者您擅长记忆数字,则直接键入
NN<Ctrl-^>
,使所有缓冲区的数字显示在状态行中并切换缓冲区;或者你喜欢阅读文件内容,然后找到一些插件,也显示“缓冲区预览”等。