如何编辑.vimrc文件以将tab替换为空格?

enyaitl3  于 2023-06-23  发布在  其他
关注(0)|答案(3)|浏览(151)

我正在编写一个Python脚本,它将一些格式化的数据写入YAML文件。我使用制表符来格式化文本,但我希望制表符在写入YAML文件时转换为空格。这是因为我的YAML文件不接受制表符作为有效的缩进标记。
我试过这个:
步骤1:转到您的主目录

cd ~

步骤2:创建文件

vim .vimrc

步骤3:添加以下配置

set smartindent

set tabstop=4

set shiftwidth=4

set expandtab

:retab

但这不起作用。创建的YAML文件仍然有选项卡。制表符不会转换为空格。
请建议我应该对我的.vimrc文件进行哪些更改,以便将制表符转换为有效缩进的空格。
Python脚本:

template = open("/home/stack/horizon/openstack_dashboard/dashboards/mydashboard/mypanel/extracted_template.yaml","w")

networks = api.neutron.network_list_for_tenant(self.request,tenant_id,params={}) 

for n in range(0,len(networks)):
      n_name = networks[n]['name']
      print>>template,"\tprivate_net%d:"%n,"\n\t type: OS::Neutron::Net","\n\t properties:","\n\t  name:",n_name
7cjasjjr

7cjasjjr1#

如果.vimrc文件不存在,请在主目录中创建该文件。编辑文件并添加以下行

set tabstop=4
set shiftwidth=4
set expandtab
jaxagkaj

jaxagkaj2#

要正确管理YAML文件,请编辑 /etc/vim/vimrc.local.vimrc 或其他VIM配置文件,添加以下行:

autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab nocindent smartindent
sc4hvdpw

sc4hvdpw3#

要将制表符转换为空格,请按以下顺序使用以下命令:

:set noexpandtab
:retab!
:set expandtab
:retab!

我从观看这个vim演员得到这个答案。Tidying Whitespace
Vim已经可以检测到文件类型yaml,因此您可以使用它来替换YAML文件中的所有TAB,将其添加到.vimrc中

:autocmd FileType yaml execute  ':silent! %s#^\t\+#\=repeat(" ", len(submatch(0))*' . &ts . ')'

相关问题