我希望我的 vim 缩进按如下方式工作:如果我有
? ? int function(int x,?int y, int z) {
Run Code Online (Sandbox Code Playgroud)
然后按回车键,我想得到以下信息:
? ? int function(int x,
? ? _____________int y, int z) {
Run Code Online (Sandbox Code Playgroud)
在哪里 ”?” 是制表符,“_”是空格。
换句话说,我想使用制表符,但是如果我在不添加缩进级别的地方有一个换行符,那么非缩进的行应该与空格对齐。
这允许我使用制表符进行缩进,但保留非缩进级别的格式,以便即使更改制表符大小也能保留格式。
到目前为止,我还没有找到一种方法可以通过 Vim 实现这一点。Preserveindent 和 copyindent 不是我要找的。他们尊重 expandtab,我只想使用 expandtab 进行缩进,并使用空格进行对齐。
目前,这在 vim 中看起来不可行。您可以使用制表符或空格,但不能同时使用两者。这并不奇怪,因为制表符上的空格时间对语言非常敏感。考虑一下:在 python 中,你会如何对待:
x = fn(abc, 'def', {
ghi: jkl,
mno: pqr,
})
Run Code Online (Sandbox Code Playgroud)
您应该在某个时候返回标签页吗?这将是理想的,但非常上下文相关,并且不能真正跨语言工作。另一个有趣的例子,在 haskell 中:
data Something = Something { flag1 :: Bool
, flag2 :: Bool }
deriving (Eq, Ord, Show)
Run Code Online (Sandbox Code Playgroud)
祝一切顺利。
不幸的是,我得出的结论是,这种功能需要特定于语言的扩展。不过,如果您知道这样做的好方法,我很想听听。
| 归档时间: |
|
| 查看次数: |
998 次 |
| 最近记录: |