Vim可以显示两个缩进空格,同时在文件中保留四个空格吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vim可以显示两个缩进空格,同时在文件中保留四个空格吗?相关的知识,希望对你有一定的参考价值。

我想在其他人的项目上工作,他使用4个空格进行缩进。我使用2,我的屏幕不够大,无法轻松编辑4个空间。

我是否可以将Vim配置为显示2个缩进空格,但是将4写入文件?

答案

这与here的问题相反。

是的你可以!如果你有“隐藏”选项,你可以尝试一下。

:syntax match spaces /  / conceal cchar= "Don't forget the space after cchar!
:set concealcursor=nvi
:set conceallevel=1

以下是这些命令的作用:

  • 将2个空格的替换字符设置为1个空格
  • 保持光标隐藏在正常,可视和插入模式下的文本
  • 启用一个字符隐藏文本

你仍然需要将你的tabstopsofttabstopshiftwidth设置为4,但它看起来和感觉就像是2!但是,当你编写文件时,它真的是4

如果你想隐瞒隐瞒,你可以做以下两件事之一:

  1. 删除隐藏规则:syntax clear spaces
  2. 允许隐藏文本在光标:set concealcursor=下展开
另一答案

该帮助有一个不同制表符宽度的类似用例的示例,请参阅:help retab-example

使其适应减半/加倍空间:

:autocmd BufReadPost,BufWritePost  * %substitute/^( +)1/1/e
:autocmd BufWritePre               * %substitute/^ +/&&/e
另一答案

如果他使用真正的空格而不是标签(它听起来像),不,你不能让vim显示2个空格,其中有4个。但是,你可以告诉vim以下命令用标签字符替换所有4空格组,然后将它们显示为2个空格。

:set tabstop=4 ! display a tab as 4 columns
:set shiftwidth=4
:set noexpandtab
:gg=G   ! convert the whole file to tabs
:set tabstop=2 !display a tab as 2 columns
:set shiftwidth=2

当您准备好提交作品时

:set tabstop=4
:set shiftwidth=4
:set expandtab
:%retab

应该将其转换回来。

以上是关于Vim可以显示两个缩进空格,同时在文件中保留四个空格吗?的主要内容,如果未能解决你的问题,请参考以下文章

vim选中多行缩进(python多行缩进)

vim设置缩进

sublime text写python代码时,tab缩进只有两个空格,怎么改成4个

如何使用 xsltproc 将 XML 缩进四个空格?

是否可以在 Vim 中显示缩进指南?

如何强制 Sublime Text 每个制表符缩进两个空格?