多个缓冲区,相同文件,不同设置


10

是否可以同时在不同的设置下编辑文件?更准确地说,我想在Vim的同一实例中有多个缓冲区,它们具有相同的内容(更改一个缓冲区会立即影响另一个缓冲区的内容),但是光标位置,标记,语法高亮等都不同。

常见的用例包括独立编辑同一文件的不同部分(例如,无需在一个实例中进入可视模式而在另一实例中中断当前的可视模式选择),以及编辑混合格式的文件(例如HTML和Javascript)而无需切换设置。(第二个用例的另一种方法是根据光标位置自动更改设置,但这超出了此问题的范围。)

一位编辑的提及无疑会引起震惊,称其为“间接缓冲区”。

Answers:


2

使用多个窗口查看同一缓冲区,使您可以在缓冲区的不同部分上查看,编辑,选择...。

语法高亮是更复杂的事情,具体取决于您想要的是什么。Vim已经支持使用不同的语法突出显示缓冲区的不同部分。例如,如果您具有html文件类型缓冲区,则<style>标记将突出显示为CSS,<script>标记将突出显示为javascript,等等。这是通过使用:syn include命令并定义应应用语法的相关语法区域来完成的。

一种替代方法是使用:ownsyntax命令指定用于特定窗口的语法突出显示。

标记是症结所在。小写标记专用于缓冲区,大写标记是全局的,但没有任何窗口特定的标记。


1
如果我使用多个窗口,这是否意味着它们必须一直在屏幕上显示?如果我关闭一个窗口而另一个窗口显示相同的缓冲区,会发生什么情况,该窗口中的光标位置丢失了?是否有:ownsyntax其他设置,例如缩进,编译器命令等?
吉尔斯(Gilles)'所以别再邪恶了'

@Gilles您可以有两个窗户,没有永远的屏幕一起通过将它们放置在单独的标签,从而保持窗口特定的设置,光标位置等,这力量的帮助,根据您的具体使用情况。
Rich
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.