How to use only tab (not space) in vim

Viewed 77604

I prefer to use tab than white space(may be a little different from most of others)

But I found, when I hit Enter at the end of line, it will add some white spaces, but not tab. So, I have to delete them and press tab.

I want to know how to set vim as:

  1. use only tab to indent the lines
  2. a tab looks like 4-spaces, but actually is a tab
  3. when hit enter at the end of a line, the new line is started with only tabs

I've googled for this for a while, but not found a good answer. Thank you in advance


UPDATE

The answer @Alok has provided works well in most of cases. But I just found, sometimes, it depends on the file type. For example, if you are editing a haml file, and there is a haml.vim in your vimfiles/indent/, then all the tabs will be converted to space. So if you want it to be tab only, you should modify(or delete) the corresponding indent file.

2 Answers

Late to the discussion, just for anyone who struggled to force the use of tabs. With the current version of vim (>8) it was required to set:

:set noet ci pi sts=0 sw=4 ts=4

which expands to:

:set noexpandtab
:set copyindent
:set preserveindent
:set softtabstop=0
:set shiftwidth=4
:set tabstop=4

We can also use this setup with only specific file types, taking advantage of setlocal:

autocmd FileType c,cpp,java,python setlocal noet ci pi sts=0 sw=4 ts=4

For further reference, see: https://vim.fandom.com/wiki/Indent_with_tabs,_align_with_spaces

Related