Как изменить размер вкладки на GitHub?

275

Когда я просматриваю файлы на GitHub, вкладки отображаются в виде 8 пробелов.

Пример:

пример

Можно ли изменить эту конфигурацию на 2 или 4 пробела?

Миша Морошко
источник
6
Вы также можете проверить ответы, представленные в выпуске GitHub № 170pre { tab-size: 4 }
KyleMit
1
Я думаю, что вы должны изменить принятый ответ на @rofrol об использовании .editorconfig, я думаю, что его ответ включает в себя лучшие текущие методы для настройки конфигурации таким образом, чтобы другие люди увидели код так, как вы его хотели видеть, и изменение того, как код других людей выглядит, когда вы читаете его.
f1lt3r
@ f1lt3r Я не согласен. Если люди действительно хотят просматривать мой код с 8 пробелами, им больше власти. Я не хочу ограничивать их таким образом, чтобы я мог просмотреть это с 4 пробелами на github для себя. Если ответ изменится, это должен быть ответ Мортенпи
Ассимилятор
@Assimilater - ответ rofrol никому не помешает просматривать любую желаемую ширину. Согласитесь, что ответ Мортенпи хорош, хотя и довольно неприятно добавлять параметры для каждого файла, который вы просматриваете.
f1lt3r
3
Может кто-нибудь объяснить логику использования 8 пробелов по умолчанию? Я не могу представить ни одного сценария, в котором 8 пробелов выглядели бы чем-то иным, кроме смешного - но это все же по умолчанию на github? Что дает?
PandaWood

Ответы:

24

Обновить

Да . Как заявил mortenpi, это можно сделать с помощью дополнительного параметра запроса. Смотрите его ответ для более подробной информации.

Оригинальный ответ

Можно ли изменить эту конфигурацию на 2 или 4 пробела?

Нет, он доступен только как часть функции редактирования через туз редактор и изменение не сохраняется.

Это сообщение в блоге дает больше информации о встроенной IDE.

Однако, если вы знаете URL-адрес большого двоичного объекта (файла), который хотите просмотреть, вы можете легко переключиться в режим редактирования, изменив сегмент большого двоичного объекта на сегмент редактирования и используя раскрывающийся список, чтобы выбрать предпочитаемый размер вкладки.

TabSize

nulltoken
источник
20
Отличная идея, но проблема в том, что как только вы переходите в режим EDIT, вы также ПОДТВЕРЖДАЕТЕ указанный архив. После 50 или около того правок,
доступных
2
Согласовано. Но это может быть хорошим стимулом, чтобы начать вносить свой вклад ;)
nulltoken
13
Как упомянул @chrisdembia, это больше не правильно; github позволяет изменять размер вкладки, передавая значение в качестве параметра запроса (например, ?ts=4)
dule
Есть ли у сообщества способ переопределить выбранный ответ?
chrisdembia
1
@chrisdembia Спасибо за напоминания;) Обновил ответ, чтобы указать на Моренти.
nulltoken
355

Вы можете добавить ?ts=2или ?ts=4к URL, чтобы изменить размер вкладки.

Пример: https://github.com/jquery/jquery/blob/master/src/core.js?ts=2

Кажется, что значение может быть любым от 1 до 12. Однако оно не работает с Gists или необработанными представлениями файлов.

Источник: GitHub Шпаргалка

mortenpi
источник
97
Хорошо, что это возможно, но было бы неплохо, если бы был простой способ выбрать ширину вкладки, а не запоминать параметр URL.
aross
75
Также было бы неплохо, если бы github позволил вам сохранить это в качестве предпочтения, чтобы вам не нужно было возвращать его обратно в URL.
FrustratedWithFormsDesigner
3
@PhilDennis Работает для меня с Chrome (в Linux).
Мортенпи
1
@ NikolaMihajlović Это немного неуловимо, но аргумент ts должен быть перед # фрагментом в URL. Например github.com/jquery/jquery/commit/...
mortenpi
2
Хорошее решение. к сожалению, не работает на diff в PR.
bbjay
280

Установите размер отображаемой вкладки по умолчанию для вашего хранилища

Если в вашем репозитории есть файл .editorconfig, он учитывает его при просмотре кода на GitHub.

indent_style = tab и indent_size = 4 показывает вкладки с 4 столбцами вместо 8 https://github.com/isaacs/github/issues/170#issuecomment-150489692

Пример .editorconfig для нескольких расширений, который работает в продуктах JetBrains:

root = true

[*]
end_of_line = lf
insert_final_newline = true

# Matches multiple files with brace expansion notation
[*.{js,jsx,html,sass}]
charset = utf-8
indent_style = tab
indent_size = 4
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

Изменить вид вкладок в других репозиториях

Установите Stylus в вашем браузере, чем GitHub: вкладки лучшего размера в коде .

Есть также расширения Google Chrome:

rofrol
источник
2
Кажется, что github не уважает файл editorconfig для файлов без имен (.gitconfig и т. Д.). Есть идеи, почему это ошибка? Бывший github.com/rmandvikar/git-setup/blob/tabs/.gitconfig
hIpPy
7
Точечные файлы, кажется, не соблюдаются с [*](на github). Мне пришлось добавить еще одну запись с [.*].
PotatoFarmer
Это должен быть принятый ответ, безусловно! Я поражен тем, что Github действительно следует правилам настройки редактора.
Маурисио Джордано
1
Это не соблюдается в коммитах :-(
Никола Михайлович
1
@rofrol Я думаю, что я ошибся. Размер вкладки корректно работает в коде и diff, но не в README.mdфрагментах кода. Это новое наблюдение; Я не знаю, когда README.mdфрагменты кода когда-либо имели размеры табуляции, кроме 8 пробелов.
Redsandro
69

На самом деле это возможно сделать с помощью расширения браузера. Установите StylishFirefox или Chrome ), затем установите этот стиль пользователя: « GitHub: вкладки лучшего размера в коде ».

Это может не работать для некоторых языков. Например, я просматривал файл JavaScript и не заметил никаких изменений. Поэтому я удалил стиль, который был у автора, и добавил в него следующие строки:

.tab-size {
  -webkit-tab-size: 4 !important;
     -moz-tab-size: 4 !important;
       -o-tab-size: 4 !important;
          tab-size: 4 !important;
}

И это сработало на Chrome ( скриншот ).

Как вы можете видеть на скриншоте, я также включил широкоэкранный режим и изменил цветовую схему на Solarized. Итак, у меня есть три пользовательских стиля, работающих на страницах GitHub через расширение Stylish для Chrome . Я надеюсь, что это поможет кому-то.

aledujke
источник
18
Я написал этот стиль пользователя . Я рад, что вы нашли это полезным. Я исправил это и протестировал в Chrome, и теперь он работает без вашей модификации.
Рори О'Кейн
2
Вам также может понравиться мой стиль пользователя « Весь код имеет размер вкладки 4 », который изменяет размер вкладок <code>элементов на всех веб-сайтах.
Рори О'Кейн
1
Github заменяет каждый \tс 8 &nbsp;. Merde.
Руди
2
Да, они не делали этого раньше, и я понятия не имею, почему они делают это сейчас :( Я думаю, что решение может быть в том, что кто-то пишет сценарий, который заменяет скажем ... 4 последовательных & nbsp; двумя или чем-то еще. Но это должно быть "usercript", я думаю.
aledujke
1
Наш GitHub Dark Стильный пользовательский стиль позволяет вам установить размер вкладки. И это активно поддерживается.
Мотти
0

Если вы в UserScripts, это сделал это для меня:

// ==UserScript==
// @name         GitHub Tabs
// @namespace    http://foldoc.org/
// @version      1
// @description  Set sensible tabs on GitHub
// @author       Denis Howe
// @match        https://github.com/*
// ==/UserScript==

document.querySelectorAll('table').forEach(t => { t.dataset.tabSize = 2 });
Денис Хоу
источник
Я бы предпочел эту альтернативу, но, похоже, она работает более или менее случайным образом: если данные не были загружены до запуска сценария пользователя (например, список файлов, затем нажмите, чтобы открыть файл), он не работает.
10
-3

Я сделал это для их исправления http://valjok.blogspot.com/2014/07/indentation-correction-for-exposing.html .

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

<div id="willReplaceTabs">
 <script src="https://gist.github.com/valtih1978/99d8b320e59fcde634ad/cf1b512b79ca4182f619ed939755826c7f403c6f.js"></script>

 <script language="javascript">
  var spaces = "  "
  willReplaceTabs.innerHTML = willReplaceTabs.innerHTML.replace(/\t/g, spaces)
 </script>
</div>
Val
источник
-6

Если это вариант для проекта, над которым вы работаете, изменение редактора для обработки вкладок как пробелов решит проблему.

Так, например, в коде Visual Studio, конфигурация выглядит следующим образом:

{
    "editor.tabSize": 2,
    "editor.insertSpaces": true
}

В Sublime это:

{
    "tab_size": 2,
    "translate_tabs_to_spaces": true
}

До недавнего времени я настаивал на неразнесенных вкладках. После переключения он исправил странность рендеринга на Github, и я не заметил каких-либо существенных недостатков в моем рабочем процессе.

Брайс Джонсон
источник
-20

Лучшее решение, если это возможно, убедить сопровождающих в исходном коде, который вы просматриваете, заменить все вкладки на правильное количество пробелов.

Использование вкладок в коде сегодня проблематично, учитывая, что вы часто видите его в Интернете, где решение «сколько пробелов на вкладке» зависит от того, где он отображается.

Том Свирли
источник
7
Это правильный ответ, и он не заслуживает того, чтобы его понизили. Существует слишком много программного обеспечения, которое не позволяет вам изменять ширину вкладок для «настраиваемых вкладок», чтобы они были чем-то иным, чем желаемое за действительное. И если вы когда-нибудь сделаете отступ на расстоянии, не кратном предпочитаемой ширине вкладки, теперь у вас есть смесь вкладок и пробелов, и настройка размера вкладки больше не работает.
zwol
8
Прочтите статью из Википедии о том, откуда взялась вкладка из 8 пробелов. «Общий горизонтальный размер табуляции из восьми символов эволюционировал, несмотря на то, что пять символов составляли полдюйма и типичный абзацный отступ времени, потому что как степень двух было проще вычислять в двоичном виде для ограниченной цифровой электроники». Ваш ответ использует круговые рассуждения (т.е. стандарт состоит из восьми символов, потому что это стандарт), чтобы закрыть дверь в вопросе. Аскер не удовлетворен этим стандартом и имеет мало оснований для этого.
Адам
4
@ Mrjedmao Это так, вы можете сделать ?ts=4.
Бен
5
Я предпочитаю табуляцию над пробелом, потому что она ускоряет мое редактирование от 4 до 8 раз, когда я перемещаю курсор через пробел.
4
"За исключением человека, который платит разработчику, а?" Использовала ли ваша мозговая среда IDE функцию перемещения по строкам, чтобы пропустить следующее предложение? Я прямо заявил, что принудительные соглашения проекта имеют приоритет над индивидуальными предпочтениями. || «Почему вы делаете это для себя, когда все редакторы имеют функцию« переход по слову / поле / строка »?» Да, вы подразумеваете, что проще использовать функцию редактора для навигации по коду, чем просто нажать одну клавишу, чтобы пройти весь столбец. Кроме того, не все редакторы имеют указанные функции, а некоторые даже работают по-разному. Хватит думать, что весь мир использует Sublime.