Як використовувати лише вкладку (а не пробіл) у vim


78

Я вважаю за краще використовувати tabніж white space(може трохи відрізнятися від більшості інших)

Але я виявив, що коли я натиснув Enterкінець рядка, він додасть пробіли , але не вкладку . Отже, я повинен їх видалити і натиснути вкладку .

Я хочу знати, як встановити vim як:

  1. використовуйте лише вкладку для відступу рядків
  2. вкладка виглядає як 4-пробіли, але насправді є вкладкою
  3. при попаданні enterв кінець рядка новий рядок починається лише з вкладками

Я деякий час гуглив це, але не знайшов хорошої відповіді. Заздалегідь спасибі


ОНОВЛЕННЯ

Відповідь, яку надав @Alok, працює в більшості випадків добре. Але я просто виявив, іноді це залежить від типу файлу. Наприклад, якщо ви редагуєте hamlфайл, і є haml.vimв вашому vimfiles/indent/, то все вкладки будуть перетворені space. Отже, якщо ви хочете, щоб це було tabлише, вам слід змінити (або видалити) відповідний файл відступу.


Замість того, щоб змінювати встановлені файли, спробуйте ввести свої важливі налаштування $HOME/vimfiles/after/indent/haml.vim. Докладніше див :help after-directory.
Нефрубир,

2
Загальноприйняті різні налаштування вкладки / пробілу для різних типів файлів. Перегляньте мій скринкаст на Vimcasts.org, де показано, як встановити параметри пробілів для різних типів файлів . Це рішення використовує ваш vimrc, але якщо ви хочете встановити безліч різних типів файлів, ви можете віддати перевагу використанню каталогу після, як запропоновано Nefrubyr.
nelstrom

Трюк / after / indent також працює, щоб позбутися від цих набридливих пробілів у файлах python. Файл, що порушує, - ftplugin / python.vim, просто скопіюйте рядок із setlocal і скопіюйте його в порожній файл, як запропонував @Nefrubyr , відредагуйте його та відновіть розсудливість
Пол

Відповіді:


107

Налаштування, які ви шукаєте:

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


Як сказав @freewind, він погано працює при роботі з .hamlфайлами. У моєму випадку я використовую vim janus, і я просто додаю запропонований один рядок, але він не працює для hamlфайлів. Будь-яка ідея?
alexventuraio

4
Додайте softtabstop=-1теж.
Уолф

Якщо ви використовуєте neovim, подивіться, :help optionоскільки принаймні "автовідступ та noexpandtab" є типовими параметрами.
SergioAraujo

Чи є якийсь швидкий спосіб чергування вперед і назад між вкладками або пробілами? Чи слід мені відкривати новий SO квест?
fde-capu
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.