user189942
user189942

Reputation: 361

How to edit .vimrc file to replace tab with spaces?

I am writing a Python script which writes some formatted data into a YAML file. I am using tabs for formatting the text, but I want the tabs to be converted into spaces when written into the YAML file. This is because my YAML file does not take tabs as valid indentation tokens.

I have tried this:

Step 1: Go to your home directory

cd ~

Step 2: Create the file

vim .vimrc

Step 3: Add the configuration stated below

set smartindent

set tabstop=4

set shiftwidth=4

set expandtab

:retab

But this does not work. The YAML file created still has tabs. The tabs are not converted to spaces.

Please suggest what changes should I make into my .vimrc file so that tabs are converted into spaces for valid indentation.

The Python script:

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          

Upvotes: 4

Views: 6360

Answers (3)

Paolo Subiaco
Paolo Subiaco

Reputation: 101

To manage YAML files correctly, edit /etc/vim/vimrc.local or .vimrc or other VIM configuration file adding the following line:

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

Upvotes: 0

byaruhaf
byaruhaf

Reputation: 4733

To convert tabs to spaces use the commands below in the order below:

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

I go this answer from watching this vim cast. Tidying Whitespace

Vim can already detect the file type yaml so you can use that to replace all TAB's in your YAML file add this your .vimrc

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

Upvotes: 6

karthik
karthik

Reputation: 7529

Create a .vimrc file in your home directory if it does not exist. Edit the file and add following lines

set tabstop=4
set shiftwidth=4
set expandtab

Upvotes: 4

Related Questions