use*_*942 4 vim tabs yaml spaces
我正在编写一个 Python 脚本,它将一些格式化数据写入 YAML 文件中。我使用制表符来格式化文本,但我希望在写入 YAML 文件时将制表符转换为空格。这是因为我的 YAML 文件不将制表符作为有效的缩进标记。
我已经尝试过这个:
第 1 步:转到您的主目录
cd ~
Run Code Online (Sandbox Code Playgroud)
第 2 步:创建文件
vim .vimrc
Run Code Online (Sandbox Code Playgroud)
步骤3:添加如下配置
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
:retab
Run Code Online (Sandbox Code Playgroud)
但这是行不通的。创建的 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
Run Code Online (Sandbox Code Playgroud)
要将制表符转换为空格,请按以下顺序使用以下命令:
:set noexpandtab
:retab!
:set expandtab
:retab!
Run Code Online (Sandbox Code Playgroud)
我通过观看这个 vim 演员来得到这个答案。 整理空白
Vim 已经可以检测到文件类型 yaml,因此您可以使用它来替换 YAML 文件中的所有 TAB,并将其添加到您的 .vimrc
:autocmd FileType yaml execute ':silent! %s#^\t\+#\=repeat(" ", len(submatch(0))*' . &ts . ')'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5947 次 |
| 最近记录: |