gpt4 book ai didi

javascript - 如何根据正在编辑的文件中的哪个部分(在 VIM 中)设置不同的制表符宽度?

转载 作者:行者123 更新时间:2023-12-02 22:46:37 24 4
gpt4 key购买 nike

在 VIM 中,我正在处理 javascript 文件,其中 JS 代码与 JSX 混合在一起。例如:

const nodeData = data.node.data;

if (nodeData.lastReadings.length > 0) {
rows.push(
<tr key="readings">
<td>Last readings</td>
<td></td>
<td></td>
</tr>,
);

nodeData.lastReadings.forEach((reading, idx) => {
if(reading.value > 0) {
rows.push(
<tr key={i}>
<td>{reading.label}</td>
<td>{reading.value}</td>
<td>{reading.actions}</td>
</tr>
)
}
});
}

现在,对于 JS 部分,我希望制表符宽度为 4 个空格,但对于 JSX 部分(此 html 看起来像代码),我希望制表符宽度为 2 个空格。是否有任何设置/插件可以让我实现这一目标?

我的VIM版本是8.0。

最佳答案

如果可以通过不同的语法组来识别不同的部分,我的OnSyntaxChange plugin允许设置自定义用户事件,当您使用/关闭此类语法时会触发这些事件。然后,您可以定义 :autocmd 来根据您的喜好操作 'softtabstop''shiftwidth' 值。

如果没有现有的语法脚本可以同时处理 JS 和 JSX,我的SyntaxRange plugin可以为缓冲区中的区域分配不同的语法。不过,这将需要独特的模式来识别此类区域的开始/结束,或者是调用其 :SyntaxInclude 命令的手动过程。

关于javascript - 如何根据正在编辑的文件中的哪个部分(在 VIM 中)设置不同的制表符宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58378687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com