是否有可能使vim显示带有不同缩进量的前导空格?

时间:2015-04-10 13:20:29

标签: vim

令人惊讶的是,

It appears更多自我选择的SO开发者更愿意通过制表符缩进而不是空格。有些人提出的论点是你可以使用制表符缩进,并使用空格来对齐。理论上这听起来很酷,但在实践中我怀疑它会比任何事情都更痛苦,因为你可以看到你拥有的角色(除非你喜欢打开那种东西)。

所以我有了一个想法 - 为什么不是编辑呢?为什么编辑器不允许您配置要用于缩进的空格数,但这些空格的外观。那就是:

正常:

class MyClass:
____def myfun():
________somevariable = 42
________volts        = 40000000 # If you're into that sort of thing. 
________________________________# Not well-formatted Python, though.

前导缩进设置为2个空格:

class MyClass:
__def myfun():
____somevariable = 42
____volts        = 400000000

用vim做这样的事情有可能吗?我知道完全有可能编写一个后打开/预保存命令来替换内容,这些内容可能会有相同的效果......但是如果可能的话,我会更好奇, vim,使它出现好像前导空格比实际更少(或更多)?

1 个答案:

答案 0 :(得分:1)

是的,您可以使用隐藏功能。演示(使用示例文本中的标记和不同的替换字符而不是效果空格):

:syntax match Indent "\%(^\%(__\)*\)\@<=__" conceal cchar=#
:set conceallevel=2 concealcursor=nvic

模式匹配行开头的每对__,并用单个#替换(隐藏)每个{{1}},有效地减少了可见的缩进。

作为一个纯粹的 visual 功能,我觉得它并不是很有用,而且更喜欢你似乎意识到的后期打开/预先保存的解决方案。