vim 中的半工作 Graphviz 点行为
Half-working Graphviz dot behavior in vim
我在 Windows 上使用 Vim 7.4,Vim Graphviz 点文件的缩进似乎无法正常工作。
如果我取消整个文件的缩进,突出显示所有文件,然后使用 =
,一切都可以缩进。但是当我打字时,所有内容都会自动转到最左边的列(没有缩进)。
这是一个示例文件,以防我输入错误:
digraph "test" {
"node1" -> "node2";
"node2" -> "node3";
}
点文件的语法突出显示效果很好,其他文件(Java、XML 等)中的缩进也是如此。
这可能是因为您没有设置 smartindent
或 cindent
。
检查
的输出
:set smartindent?
:set cindent?
如果他们分别return nosmartindent
和nocindent
,则添加
set smartindent
(或 set cindent
)将解决此问题。
来自 :h smartindent
:
Do smart autoindenting when starting a new line. Works for C-like
programs, but can also be used for other languages.
- 那为什么缩进适用于其他文件类型?这是因为为这些文件类型设置了旨在告诉 vim 如何缩进称为
indentexpr
的给定行的特殊函数(在编辑 java 文件时尝试 :verb set indentexpr?
)。 :h indentexpr
:
It is used when a new line is created, for the |=| operator and
in Insert mode as specified with the 'indentkeys' option.
When this option is not empty, it overrules the 'cindent' and
'smartindent' indenting.
- 为什么缩进适用于
=
?来自 :h =
:
Filter {motion} lines through the external program
given with the 'equalprg' option. When the 'equalprg'
option is empty (this is the default), use the
internal formatting function |C-indenting| and
|'lisp'|. But when 'indentexpr' is not empty, it will
be used instead.
我在 Windows 上使用 Vim 7.4,Vim Graphviz 点文件的缩进似乎无法正常工作。
如果我取消整个文件的缩进,突出显示所有文件,然后使用 =
,一切都可以缩进。但是当我打字时,所有内容都会自动转到最左边的列(没有缩进)。
这是一个示例文件,以防我输入错误:
digraph "test" {
"node1" -> "node2";
"node2" -> "node3";
}
点文件的语法突出显示效果很好,其他文件(Java、XML 等)中的缩进也是如此。
这可能是因为您没有设置 smartindent
或 cindent
。
检查
的输出:set smartindent?
:set cindent?
如果他们分别return nosmartindent
和nocindent
,则添加
set smartindent
(或 set cindent
)将解决此问题。
来自 :h smartindent
:
Do smart autoindenting when starting a new line. Works for C-like programs, but can also be used for other languages.
- 那为什么缩进适用于其他文件类型?这是因为为这些文件类型设置了旨在告诉 vim 如何缩进称为
indentexpr
的给定行的特殊函数(在编辑 java 文件时尝试:verb set indentexpr?
)。:h indentexpr
:
It is used when a new line is created, for the |=| operator and in Insert mode as specified with the 'indentkeys' option. When this option is not empty, it overrules the 'cindent' and 'smartindent' indenting.
- 为什么缩进适用于
=
?来自:h =
:
Filter {motion} lines through the external program given with the 'equalprg' option. When the 'equalprg' option is empty (this is the default), use the internal formatting function |C-indenting| and |'lisp'|. But when 'indentexpr' is not empty, it will be used instead.