Vim是否可以在文件中保留四个空格的同时显示两个空格进行缩进?
我想做其他人的项目,他用4个空格来缩进。我使用2,我的屏幕不够大,无法轻松地使用4个空格进行编辑Vim是否可以在文件中保留四个空格的同时显示两个空格进行缩进?,vim,indentation,Vim,Indentation,我想做其他人的项目,他用4个空格来缩进。我使用2,我的屏幕不够大,无法轻松地使用4个空格进行编辑 我可以将Vim配置为显示2个缩进空格,但将4写入文件吗?如果他使用真空格而不是制表符(听起来像),则不可以,在有4个空格的地方,Vim不能显示2个空格。但是,您可以告诉vim以下命令用制表符替换所有4个空格的组,然后将它们显示为2个空格 :set tabstop=4 ! display a tab as 4 columns :set shiftwidth=4 :set noexpandtab :gg
我可以将Vim配置为显示2个缩进空格,但将4写入文件吗?如果他使用真空格而不是制表符(听起来像),则不可以,在有4个空格的地方,Vim不能显示2个空格。但是,您可以告诉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
应该把它换回来 该帮助提供了不同选项卡宽度的类似用例的示例,请参见
:help retab example
将其调整为减半/加倍空间:
:autocmd BufReadPost,BufWritePost * %substitute/^\( \+\)\1/\1/e
:autocmd BufWritePre * %substitute/^ \+/&&/e
这与所问的正好相反
是的,你可以!如果你有“隐藏”选项,你可以试试这个
:syntax match spaces / / conceal cchar= "Don't forget the space after cchar!
:set concealcursor=nvi
:set conceallevel=1
以下是这些命令的作用:
- 将2个空格的替换字符设置为1个空格
- 在正常、可视和插入模式下,隐藏光标下的文本
- 启用用一个字符隐藏文本
选项卡停止
、软选项卡停止
和移位宽度
设置为4
,但它看起来和感觉上都像是2
!但是,当您编写文件时,它实际上是4
如果要关闭隐藏功能,可以执行以下两种操作之一:
:语法清除空格
或:设置隐藏光标=
太好了!它是在所有文件上运行,还是仅在当前文件上运行?在所有文件上都运行
*
。请参阅:帮助autocmd patterns
,了解如何影响它。是否有相反的方法?将2个空格设置为4个空格?@Uri请参见。注意,我还没有试过。