为什么Vim专家更喜欢使用缓冲区而不是标签页?
为什么Vim专家更喜欢使用缓冲区而不是选项卡?
这个问题的出现是因为以下几个原因:
1. 现代的文本编辑器和IDE普遍使用选项卡的概念来表示已加载的文件。选项卡作为信息系统,向用户展示已打开文件的状态,并作为交互设备,允许用户操作这些已打开的文件。虽然选项卡有很多限制,但它们无处不在,人们习惯并期望在各处都能看到选项卡。
2. Vim在7.0版本中引入了选项卡页作为用户创建临时"工作区"的一种方式。然而,选项卡页的特性、特定选项、特定命令或者帮助文档中并没有暗示选项卡页可以或应该作为文件代理来使用。除非考虑到选项卡页的名称和外观,否则这样的使用会造成很大的困惑。
3. 如果没有启用默认禁用且不易找到的`set hidden`选项,Vim不允许切换到另一个缓冲区而不保存当前缓冲区的更改或者放弃更改。新用户不知道这个选项,只能转向使用繁重的窗口或者找到最接近的"类似选项卡"的功能:选项卡页。
因此,"选项卡页"是一个不幸的名称选择,尤其是在一个以认为阅读文档是浪费时间的理念主导的时代。
对于Vim专家来说,缓冲区是Vim的文件代理。如果你以文件为思维方式,你就会以缓冲区为基础进行思考。
与此相反,窗口是Vim中的容器或视口,用于提供对缓冲区的视图,而不是以文件为基础。它们不能取代任何人的工作流程。
选项卡页是容器或视口,用于包含一个或多个窗口,窗口本身也是容器,用于包含缓冲区。
总之,Vim专家不是更喜欢缓冲区而不是选项卡页,他们只是按照Vim的设计使用它,并对这种设计感到满意。他们可以同时打开2个、30个或者97个缓冲区,并且非常高兴不必关心空间分布;当他们需要比较两个文件或者在当前缓冲区的一部分上工作同时将另一部分作为参考时,他们使用窗口;当他们需要在项目的另一部分独立工作一段时间而不会影响到当前视图时,他们加载一个全新的选项卡页。
因此,Vim专家认为缓冲区、窗口和选项卡页都各自有其用途,仅仅因为原则而偏好其中之一是没有意义的。
文章来源:https://stackoverflow.com/questions/102384
为什么Vim专家更喜欢使用缓冲区而不是标签?
Vim专家更喜欢使用缓冲区而不是标签的原因是因为他们发现在缓冲区中管理文件更加方便快捷。他们发现使用标签不断切换文件很繁琐,并且觉得缓冲区很难管理。然而,通过一些技巧,他们改变了之前的观点。
下面是一些使他们改变观点的技巧:
缓冲区管理:通过使用":b"命令可以快速管理缓冲区,详情可参考vim官方文档或者StackOverflow上的问题。
跳转/修改列表:使用"ctrl o"和"ctrl i"快捷键可以在跳转/修改列表中切换。使用"g ;"命令可以在跳转/修改列表中循环。
替代文件:使用"^"命令可以在当前文件和上一个文件之间进行切换。
tpope的Unimpaired插件:Unimpaired插件提供了一些方便的快捷键绑定,可以在缓冲区之间快速切换。
以下是Vim专家的典型工作流程:
打开Vim,使用":e"命令(通常带有一个正则表达式,如":e src/**/F*Bar.js")打开一个缓冲区。
意识到需要打开另一个文件时,也可以使用":e"命令。如果想在当前打开的缓冲区和新打开的缓冲区之间切换,可以使用":sp"或":vsp"命令在一个新窗口中打开。
重复上述步骤,直到打开需要频繁切换的3-5个文件,在缓冲区之间使用上述提到的技巧进行快速切换。
如果想要重新开始,关闭Vim并重新打开即可。
经过一周左右的使用,Vim专家发现这些新的工作模式使得他们更容易可视化地管理打开的缓冲区,并且只需几个快捷键就可以快速切换到任何一个缓冲区。
有时候,对于新手友好的解释只能得到很少的赞同,而过于复杂的回答却能得到更多的赞同。这是很遗憾的。我之前甚至不知道"gT"是切换标签的命令,我一直在寻找替代"ctrl+tab"的命令。所以,非常感谢那些真正愿意帮助新用户的人,而不是让他们感到愚蠢。
我承认,我对某人的回答有些不公平,他非常乐意回答我提出的问题。但是对于那些试图学习Vim的人来说,你的回答更容易理解,而他的回答在你了解更多之后更加完整。
我认为那个人的回答非常有用,并且清楚地介绍了缓冲区、窗口和标签的设计以及它们的使用方式。然而,我认为Vim用户喜欢以一种"你不懂vi"的方式回答问题,这可能令人沮丧。
我记不清我是在哪里看到的,但是"nnoremap <leader>b :ls<CR>:b<space>
"对于快速切换缓冲区非常有用,它会显示当前打开的缓冲区列表。此外,它还支持部分名称匹配(只要有一个匹配项)。
这种方法还有一个很棒的好处是Vim的自动补全功能(默认情况下,无需额外的插件)。由于你使用了多个缓冲区,当你处于插入模式并按下"ctrl N"或"ctrl P"(我通常使用P)时,它会给出一个单词列表,用于完成你正在输入的内容。它会根据当前缓冲区、分割窗口中的缓冲区以及其他打开的文件智能地补全。
这些技巧使Vim专家更倾向于使用缓冲区而不是标签来管理文件,因为它们发现这样更加高效和便捷。
为什么Vim专家更喜欢使用缓冲区而不是标签?
出现的原因:
- 专家经验:Vim专家经常打开大量的缓冲区,使用缓冲区比标签、窗口或数字更快速、减少认知负担,更容易跟踪文件。
- 方便查找文件:使用:b *part-of-filename*
命令可以快速查找需要的文件,比使用缓冲区数字、标签或窗口快速且认知负荷更少。
解决方法:
- 使用缓冲区:为了更高效地使用缓冲区,可以采取以下步骤:
- 从一个精心选择的根目录打开第一个重要的文件。
- 使用:e
命令打开后续文件。
- 使用ls
命令来获取一个良好的心理模型。
- 避免使用:q
命令,因为它会中断工作流程。
- 将:b
命令记在肌肉记忆中。
- 使用:b1
命令切换到第一个打开的文件。
- 使用:b#
命令切换到最后一个文件。
- 使用:bd#
命令关闭临时文件。
- 使用:b *part-of-filename*
命令快速查找需要的文件。
此外,文章还提到了标签和窗口的使用方法:
- 标签:用于区分不相关的文件,或者保持特定的窗口布局。
- 窗口分割:用于可视化比较信息或者快速访问重要信息。
最后,文章中还提到了为什么需要避免使用:q
命令:
- 这会中断工作流程,当工作在一个项目上时,会建立一个文件的缓冲区列表。一旦不小心使用了:q
命令,就需要逐个重新打开相关文件,而:e
命令需要具体指定文件的路径和名称,而:b
命令只需要部分记忆文件名称即可。