LINUX.ORG.RU

Табуляция и отступы в vim, при расширении файла 'py'

 ,


0

2

Здравствуйте! Начал программировать на python, и возникло желание изменить количество отступов которые делает мой любимый текстовый редактор vim. По умолчанию при запуске vim и открытия в нем файла с расширением 'py' при нажатии на <Tab> ставится четыре пробела. При нажатии еще раз на <Tab> прибавляется еще четыре пробела. При этом команда 'set noexpandtab' позволяет после второго нажатия <Tab>'а получить один символ табуляции размером в восемь пробелов. Команды 'set tabstop=8', 'set softtabstop=0' или 'set softtabstop=8' не меняют ничего. Как сделать, чтобы при нажатии на <Tab> вводился символ табуляции размером восемь пробелов? При этом в файлах без расширения все команды выше работают так как написано в документации, а вот в файлах с расширением 'py' нет. Помогите! Заранее спасибо!


Ответ на: комментарий от makoven

На вкус и цвет товарища нет. Зачем спорить о том, что лучше? Это тоже самое, что и спорить что вкуснее - ванильное или шоколадное мороженное. Хотя людям на это пофиг...

clever
() автор топика
Ответ на: комментарий от JaneDoe

'Spaces are the preferred indentation method.' - написано в разделе про табуляцию и пробелы. Прошу заметить, что preferred означает привилегированный, предпочитаемый. Это слово не означает обязательный. Так что все правильно я хочу, может быть так делать не рекомендуется, но это все же правильно.

clever
() автор топика

Ура я решил! Надо оказывается отключить smarttab!(Команда set nosmarttab)

clever
() автор топика

Питон как всегда издевается над кодером своим пепом.

let g:python_recommended_style = 0
au FileType python setlocal tabstop=8 shiftwidth=8 noexpandtab

bread
()
Ответ на: комментарий от clever

Зачем спорить

Спорить ни к чему. В Риме делай как римляне, это просто.

Zeta_Gundam
()
Ответ на: комментарий от clever

Всё пистон-комьюнити отступает четырьмя пробелами. Тебя, с твоими табами на порог ни одного репа не пустят

ЗЫ: выбор редактора тоже лучше пересмотреть в сторону чего-нибудь более современного

makoven ★★★★★
()

Обрати внимание на этот плагин: https://github.com/tpope/vim-sleuth - он тебе понадобится, когда будешь работать с фанатиками вроде вышеотписавшихся.

E ★★★
()
Ответ на: комментарий от makoven

Ему может не надо ни в какую репу. И табы всегда не поздно сконвертить. Мелкий фашизм на уровне пробелов совершенно ни к чему. Ну это же пытон, тут принято страдать, я забыл.

bread
()
Ответ на: комментарий от bread

au FileType python setlocal tabstop=8 shiftwidth=8 noexpandtab

О, спасибо. У меня была обратная проблема - smarttab отключил ( не люблю лишнюю магию ), и никак не мог найти, как для отдельного типа файлов переопределить настройки

router ★★★★★
()
Ответ на: комментарий от bread

Ну это же пытон, тут принято страдать,
bread ★ (26.05.2018 17:18:40) не может в питон

Я уже и забыл почему это написал. Но Север помнит!

Мелкий фашизм на уровне пробелов

...А еще вот это глупое ограничение в 70 символов на строку — и это когда в любом магазине продаются 4K мониторы! На самом же деле правила хорошего тона берутся не с потолка, а унификация — великая сила.

Zeta_Gundam
()
Ответ на: комментарий от router

Тут еще такие грабли: плагины из системного ftplugin подгружаются позже отрабатывания автокоманд (или там гонка, точно не знаю) и могут переопределить настройки. Каноничный способ тюнинга разных типов файлов — в директории ~/.vim/after/ftplugin кинуть файл <filetype>.vim с настройками (только не забываем setlocal, map <buffer>, чтобы не сломать глобальные). Но мне лень разводит бюрократию, вроде автокоманды не подводили еще.

bread
()
Последнее исправление: bread (всего исправлений: 1)
Ответ на: комментарий от Zeta_Gundam

А еще вот это глупое ограничение в 70 символов на строку

Не глупое, а тупейшее.

bread
()
Ответ на: комментарий от makoven

Обожаю вот это про современное. Идеальный детектор.

mos ★★☆☆☆
()
Ответ на: комментарий от router

как для отдельного типа файлов переопределить настройки

предпочитаю делать такое в ftplugin/python.vim

MyTrooName ★★★★★
()
Ответ на: комментарий от JaneDoe

Сам-то хоть раз читал по ссылке?

This document gives coding conventions for the Python code comprising the standard library in the main Python distribution.

Если ты не пишешь код в стандартную библиотеку CPython-а, тебя эта ссылка волнует чуть менее, чем никак.

anonymous
()

Как сделать, чтобы при нажатии на <Tab> вводился символ табуляции размером восемь пробелов?

Это же SyntaxError, табы вперемешку с пробелами.

t184256 ★★★★★
()
Ответ на: комментарий от anonymous

С питоном табы чреваты тем, что кто-то полезет править твой код пробелами и внесет трудноуловимые баги. Так что тут разумно придерживаться конвенции. Конечно, еще разумней не делать такой хрупкий синтаксис, но что имеем. Лучше вовсе держаться подальше от этого уайтспейса.

anonymous
()
Ответ на: комментарий от anonymous

Да разве это подрыв. Я сам люблю маленькие бунтарства: например, если очередной новобранец вместо джанги выберет в продакшон sanic. Но «табы вместо пробелов» или «вим вместо редактора» это как-то мелковато

makoven ★★★★★
()
Ответ на: комментарий от anonymous

А пробелы с питоном чреваты тем, что кто-то полезет править твой код табами и внесёт трудноуловимые баги.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.