我有一个XML文件,最初使用空格缩进格式化(每个嵌套项目有2个空格).
当我使用IXMLDocument加载并保存此文件时,空格缩进将更改为制表符(代码#9).
这是代码:
var
FileName: String;
Document: IXMLDocument;
...
Document := XMLDoc.LoadXMLDocument(FileName);
Document.SaveToFile(FileName);
Run Code Online (Sandbox Code Playgroud)
我试图使用NodeIndentStr属性 - 没有结果:
Document := XMLDoc.LoadXMLDocument(FileName);
Document.NodeIndentStr := ' ';
Document.SaveToFile(FileName);
Run Code Online (Sandbox Code Playgroud)
也用过FormatXMLData- 没有结果:
Document := XMLDoc.LoadXMLDocument(FileName);
Document.XML.Text := XMLDoc.FormatXMLData(Document.XML.Text);
Document.Active := True;
Document.SaveToFile(FileName);
Run Code Online (Sandbox Code Playgroud)
如何使用空格缩进而不是制表符保存?
我已经阅读了几个问题和答案:
但它们都没有为我提供解决方案.
我真的想要应用" 缩进标签,与空格对齐 "的原则,但是当谈到自动缩进时,我没有教Vim如何做到这一点.
考虑代码,假设tabstops == 3,shiftwidth == 3
(>--表示标签,.(点)表示空格):
{
>--long a = 1,
>-->--..b = 2,
>-->--..c = 3;
}
Run Code Online (Sandbox Code Playgroud)
因此,它尽可能地缩进标签,然后用空格填充其余部分.但实际上这是一种非常糟糕的方法:当有人将使用不同的标签大小读取此代码时,代码将被搞砸.这里的标签大小等于8个字符的样子:
{
>-------long a = 1,
>------->-------..b = 2,
>------->-------..c = 3;
}
Run Code Online (Sandbox Code Playgroud)
太可怕了.问题是Vim没有区分缩进和对齐.
为了使其与标签大小无关,它应该以这种方式缩进代码:
{
>--long a = 1,
>--.....b = 2,
>--.....c = 3;
}
Run Code Online (Sandbox Code Playgroud)
然后,无论选项卡大小如何,此代码看起来都会很好.例如,8个字符:
{
>-------long a = 1,
>-------.....b = 2,
>-------.....c = 3;
}
Run Code Online (Sandbox Code Playgroud)
怎么做到这一点?
我正在尝试在Sublime Text 3中使用HTML的自动缩进功能.我在html中有一些块注释,并选择了Edit> Line> Reindent,直到它命中块注释.
尝试在这里重新举例:
<html>
<head>
<title>Testing Indent</title>
</head>
<body>
<table>
<tr>
<td>
Cell 1
</td>
</tr>
<tr>
Cell 2
<!--Block Comment Here
And a Little More Here
-->
</tr>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
它结果是这样的:
<html>
<head>
<title>Testing Indent</title>
</head>
<body>
<table>
<tr>
<td>
Cell 1
</td>
</tr>
<tr>
<td>
Cell 2
<!--Block Comment Here
And a Little More Here
-->
</td>
</tr>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
在使用smartindent的vim中:
甚至vim文档都说:
如果您没有在新行上键入任何内容,除了<BS>或CTRL-D然后键入<Esc>,CTRL-O或者<CR>,再次删除缩进.
有没有办法保留这个缩进而不删除它?
我刚试过NetBeans,我真的很喜欢它.
但让我疯狂的是可怕的自动代码格式化!
如果我做一个缺口,我想 那 压痕,但NetBeans的不断直行的工具定义的格式样式- >选项- >编辑- >格式.
例如,假设我想要执行以下操作:
namespace cn {
// this has 1 indentation
// this has 2 indentations
class Foo;
}
Run Code Online (Sandbox Code Playgroud)
NetBeans将其变为:
namespace cn {
// this has 1 indentation
// this has 2 indentations
class Foo;
}
Run Code Online (Sandbox Code Playgroud)
当键入除了以外的任何字符时,它会自动删除2个缩进中的一个/.
当使用大括号关闭时,即使这样也可能会关闭非常好的缩进.
我正在尝试为新的模板c语言编写一个新的emacs模式,我必须将其用于一些学术研究.
我希望代码在c模式下着色和缩进,但以下情况除外:
是否可以创建派生模式(来自c模式)并将其设置为忽略'%'和';'的原始目的?是否可以在没有';'的情况下使"按RET后自动缩进"功能工作?
类似的语言是否有相似的模式(带有'{}'括号,但没有分号)我可以尝试修补?
我应该尝试从头开始编写主要模式吗?
我考虑过从http://ess.r-project.org/修补R模式,但是这种模式不支持"/*comment*/"形式的注释.
我正在寻找的最重要的特性是括号缩进,即在按下RET之后在'{}'块内缩进代码(并且在没有以';'结尾的行之后没有额外缩进).部分解决方案也会有所帮助.
emacs development-environment colors indentation auto-indent
因此,几年前似乎已经提出了这个问题但是没有一个响应似乎适用于最新版本的Notepad ++ 6.2.2
我也试过使用NppAutoIndent插件无济于事.
在Sublime Text 2中,重新缩进(Edit - > Line - > Reindent)似乎在Javascript代码中存在某些注释样式时出错.只有单行C风格的注释(/* ... */)才能正常工作.
例如,考虑这个未缩进的代码:
$(window).load(function () {
/* Single-line C-style comment */
var $player = $('#player');
/* Multiple-line
C-style comment */
var $player = $('#player');
// Single-line C++-style comment
var $player = $('#player');
// Multiple-line
// C++-style comment
var $player = $('#player');
}
Run Code Online (Sandbox Code Playgroud)
重新生成整个块应该导致:
$(window).load(function () {
/* Single-line C-style comment */
var $player = $('#player');
/* Multiple-line
C-style comment */
var $player = $('#player');
// Single-line C++-style comment
var …Run Code Online (Sandbox Code Playgroud) 我喜欢MATLAB"智能缩进".Ctrl-A,Ctrl-I与我硬连线.然而,在我的一些-3000-行脚本,我有一个约100行代码段,我想不被MATLAB感动.
(为什么,你问?这就是原因:
x = ...
aaaaaaaaaaaaaaaaa ...
- ...
( ...
bbbbbbbbbbbbbb ...
+ ...
cccccccccccccccccccccc ...
);
Run Code Online (Sandbox Code Playgroud)
这是我的编码方式,这是两件事的区别,其中一件是aaaaaaaaaaaaaaaaa,另一件是一组括号,......等等.
那么,我如何教MATLAB不重新缩进这部分呢?
请查看下面的GIF:
我正在使用Visual Studio Code。通过按Enter和Ctrl+ Shift+ Enter。我可以在下一行自动缩进。
因此,我猜想有一种更方便的方法或程序包,只需按一下即可完成Enter。
auto-indent ×10
indentation ×5
html ×2
vim ×2
alignment ×1
colors ×1
delphi ×1
delphi-2010 ×1
editor ×1
emacs ×1
javascript ×1
matlab ×1
netbeans ×1
notepad++ ×1
sublimetext2 ×1
sublimetext3 ×1
text-indent ×1
xml ×1