Как да използвам само раздел (не интервал) във vim

Предпочитам да използвам tab отколкото white space (може да е малко по-различно от повечето други)

Но открих, че когато натисна Enter в края на реда, това ще добави някои бели интервали, но не и tab. Така че трябва да ги изтрия и да натисна tab.

Искам да знам как да настроя vim като:

  1. използвайте само tab за отстъп на редовете
  2. разделът изглежда като 4 интервала, но всъщност е раздел
  3. когато натиснете enter в края на ред, новият ред се започва само с табулатори

Търсих това известно време в Google, но не намерих добър отговор. Благодаря ви предварително


АКТУАЛИЗАЦИЯ

Отговорът, предоставен от @Alok, работи добре в повечето случаи. Но току-що открих, че понякога зависи от типа на файла. Например, ако редактирате haml файл и има haml.vim във вашия vimfiles/indent/, тогава всички раздели ще бъдат преобразувани в space. Така че, ако искате да е само tab, трябва да промените (или изтриете) съответния файл с отстъп.


person Freewind    schedule 10.09.2010    source източник
comment
Вместо да модифицирате инсталираните файлове, опитайте да зададете основните си настройки в $HOME/vimfiles/after/indent/haml.vim. Вижте :help after-directory за повече информация.   -  person Nefrubyr    schedule 10.09.2010
comment
Обичайно е да имате различни предпочитания за табулация/пространство за различните типове файлове. Вижте моето скрийнкаст на Vimcasts.org, което показва как да зададете предпочитания за интервали за различни типове файлове. Това решение използва вашия vimrc, но ако искате да настроите много различни файлови типове, може да предпочетете да използвате следната директория, както е предложено от Nefrubyr.   -  person nelstrom    schedule 10.09.2010
comment
Трикът /after/indent също работи, за да се отървете от тези досадни интервали във файловете на python, проблемният файл, който трябва да разгледате, е ftplugin/python.vim, просто копирайте реда с setlocal и го копирайте в празен файл, както е предложено от @Nefrubyr , редактирайте го и възстановете разума.   -  person Paul    schedule 31.12.2016


Отговори (1)


Настройките, които търсите са:

set autoindent
set noexpandtab
set tabstop=4
set shiftwidth=4

Като един ред:

set autoindent noexpandtab tabstop=4 shiftwidth=4

autoindent може да се замени с smartindent или cindent, в зависимост от вашия вкус. Вижте също filetype plugin indent on.

http://vim.wikia.com/wiki/Indenting_source_code

person Alok Singhal    schedule 10.09.2010
comment
Както каза @freewind, не работи добре при работа с .haml файлове. В моя случай използвам vim janus и просто добавям предложения един ред, но той не работи за haml файла. Някаква идея? - person alexventuraio; 05.08.2017
comment
Добавете и softtabstop=-1. - person Walf; 16.08.2017
comment
Ако използвате neovim, погледнете :help option, защото поне autoindent и noexpandtab са опции по подразбиране. - person SergioAraujo; 09.09.2018
comment
Има ли някакъв бърз начин за редуване напред и назад между използването на раздели или интервали? Трябва ли да отворя нов SO мисия? - person fde-capu; 12.11.2020