有可能让vim显示不同缩进量的前导空格吗

  • 本文关键字:空格 缩进 vim 显示 有可能 vim
  • 更新时间 :
  • 英文 :


令人惊讶的是,更多的自选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做这样的事情吗?我知道写一个post-open/pre-save命令来替换内容是完全可能的,这可能同样有效。。。但我更好奇的是,在vim中,是否有可能让它看起来,就好像前导空格比实际少(或多)?

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

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

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

作为一个纯粹的视觉功能,我觉得它不是很有用,我更喜欢你似乎知道的打开后/保存前的解决方案。

最新更新