在Visual Studio中使用制表符进行缩进,但使用空格保存

本文关键字:缩进 保存 空格 制表符 Visual Studio | 更新日期: 2023-09-27 18:09:39

我想知道是否有可能在Visual Studio 2013中使用制表符缩进我的c#代码,但将所有制表符自动转换为空格保存文件。我知道这可以在设置中更改,然后自动缩进用于将其修复为正确的,但这不是自动的。

这背后的原因是我目前在一个小组中工作,其中空格是缩进代码的首选方式,但这种设置对我来说不方便-在超过选项卡后必须单击退格4次(或撤消-这几乎是同样的不便,尽管没有那么多)非常烦人。

我不想干扰我的组的设置(实际上我也不能),但希望有一种更简单的方法来遍历本地代码。我们使用Git来进行项目共享,所以如果这不能在VS中完成,也许Git可以做到?


注意:我搜索了Stack和Google,但由于关于哪种缩进技术更好的争论,无法找到足够的答案。这篇文章也不应该引发另一个关于这个问题的讨论。

在Visual Studio中使用制表符进行缩进,但使用空格保存

由于您使用的是Git,您可以尝试签出制表符并在签入时转换为空格。这可能会引起自己的问题,但也可能解决您的问题。如果你感兴趣的话,这个问题应该会告诉你怎么做。它处理Python,但我想如果你用.cs代替.py,它也会对c#做同样的事情。以下是公认的完整性答案:

在您的存储库中添加一个包含以下内容的文件.git/info/attributes:

*.py  filter=tabspace
Linux/Unix

现在运行命令:

git config --global filter.tabspace.smudge 'unexpand --tabs=4 --first-only'
git config --global filter.tabspace.clean 'expand --tabs=4 --initial'
OS X

首先用brew安装coretils:

brew install coreutils

现在运行命令:

git config --global filter.tabspace.smudge 'gunexpand --tabs=4 --first-only'
git config --global filter.tabspace.clean 'gexpand --tabs=4 --initial'
所有系统

您现在可以检出您的项目的所有文件。你可以这么做:

git checkout HEAD -- **

虽然我也喜欢制表符,但我也建议找出如何根据项目的风格有效地使用工具。也许你可以找到一种方法,使退格删除集4个空格时发现?

由于您的主要问题涉及格式问题,我建议使用格式文档(Ctrl+K,Ctrl+D或编辑>高级>格式文档或格式选择)来解决这个问题。

它的速度很快,将纠正缩进为整个文件/节一次,你不必担心改变IDE的保存行为。

如果您试图在键入时将所有内容组织得很好,那么您可能无法有效地使用所提供的工具。