Jak zmienić rozmiar tabulacji w GitHub?

275

Gdy przeglądam pliki w GitHub, zakładki pojawiają się jako 8 spacji.

Przykład:

przykład

Czy można zmienić tę konfigurację na 2 lub 4 spacje?

Misza Moroszko
źródło
6
Możesz także sprawdzić odpowiedzi podane w numerze GitHub nr 170pre { tab-size: 4 }
KyleMit,
1
Myślę, że powinieneś zmienić zaakceptowaną odpowiedź na odpowiedź @rofrol dotyczącą używania .editorconfig, myślę, że jego odpowiedź zawiera najlepsze najlepsze metody zarówno ustawienia konfiguracji w taki sposób, aby inne osoby widziały kod tak, jak chciałeś, i zmienianie wyglądu kodu innych osób podczas jego czytania.
f1lt3r
@ f1lt3r Nie zgadzam się. Jeśli ludzie naprawdę chcą zobaczyć mój kod z 8 spacjami więcej mocy dla nich. Nie chcę ich ograniczać w ten sposób, aby samemu wyświetlić 4 miejsca na githubie. Jeśli odpowiedź się zmieni, powinna to być odpowiedź Mortenpiego
Assimilater,
@Assimilater - odpowiedź rofrol nie ograniczyłaby nikogo do oglądania dowolnej szerokości. Zgadzam się, że odpowiedź Mortenpi jest dobra, choć dość frustrująca, aby dodać parametr do każdego pliku, na który patrzysz.
f1lt3r
3
Czy ktoś może wyjaśnić logikę używania domyślnie 8 spacji? Nie mogę sobie wyobrazić żadnego scenariusza, w którym 8 pól wyglądałoby na coś innego niż śmieszne - a jednak jest to domyślne ustawienie w github? Co daje?
PandaWood

Odpowiedzi:

24

Aktualizacja

Tak . Jak stwierdził Mortenpi, można tego dokonać poprzez dodatkowy parametr zapytania. Zobacz jego odpowiedź, aby uzyskać więcej informacji.

Oryginalna odpowiedź

Czy można zmienić tę konfigurację na 2 lub 4 spacje?

Nie. Jest dostępny tylko jako część funkcji edycji za pomocą edytora Ace, a zmiana nie jest utrzymywana.

Ten post na blogu zawiera więcej informacji na temat osadzonego IDE.

Jeśli jednak znasz adres URL obiektu blob (pliku), który chcesz przejrzeć, możesz łatwo przejść do trybu edycji, zmieniając segment obiektu blob za pomocą segmentu edycji i użyj menu rozwijanego, aby wybrać preferowany rozmiar karty.

tabSize

nulltoken
źródło
20
Świetny pomysł, ale problem polega na tym, że kiedy przejdziesz do trybu EDYCJA, również FORKOWANE wspomniane archiwum. Może stać się nieco nadmierne po około 50 edycjach tylko do przeglądania;)
tomByrer
2
Zgoda. Ale to może być dobra zachęta, aby zacząć wnieść swój wkład ;)
nulltoken
13
Jak wspomniano w @chrisdembia, nie jest to już poprawne; github pozwala zmienić rozmiar tabulacji, przekazując wartość jako parametr zapytania (np. ?ts=4)
dule
Czy społeczność może zastąpić wybraną odpowiedź?
chrisdembia
1
@chrisdembia Dzięki za przypomnienia;) Zaktualizowałem odpowiedź, aby wskazywała na odpowiedź morenti.
nulltoken
354

Możesz dołączyć ?ts=2lub?ts=4 do adresu URL, aby zmienić rozmiar tabulatora.

Przykład: https://github.com/jquery/jquery/blob/master/src/core.js?ts=2

Wygląda na to, że wartość może wynosić od 1 do 12. Nie działa to jednak na widokach Gists ani surowych widokach plików.

Źródło: Ściągawka GitHub

Mortenpi
źródło
97
Dobrze, że jest to możliwe, ale byłoby miło, gdyby istniał łatwy sposób wyboru szerokości karty, zamiast konieczności pamiętania parametru adresu URL.
aross
75
Byłoby również miło, gdyby github pozwolił ci to zapisać jako preferencję, abyś nie musiał ciągle umieszczać go z powrotem w adresie URL.
FrustratedWithFormsDesigner
3
@PhilDennis Działa dla mnie z Chrome (w systemie Linux).
mortenpi,
1
@ NikolaMihajlović To trochę subtelne, ale argument ts musi znajdować się przed fragmentem # w adresie URL. Np. Github.com/jquery/jquery/commit/…
mortenpi
2
fajne rozwiązanie. niestety nie działa na różnice w PR.
bbjay,
279

Ustaw domyślny rozmiar wyświetlanej zakładki dla swojego repozytorium

Gdy masz .editorconfig w swoim repozytorium, będzie go przestrzegać podczas przeglądania kodu w GitHub.

indent_style = tab i indent_size = 4 pokazuje tabulatory z 4 kolumnami zamiast 8 https://github.com/isaacs/github/issues/170#issuecomment-150489692

Przykład .editorconfig dla wielu rozszerzeń, które działają w produktach 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

Zmień sposób wyświetlania kart w innych repozytoriach

Zainstaluj Stylus w przeglądarce, niż zainstaluj GitHub: karty o większym rozmiarze w kodzie .

Istnieją również rozszerzenia Google Chrome:

rofrol
źródło
2
Wygląda na to, że github nie szanuje pliku Editorconfig dla plików bez nazw (.gitconfig itp.). Wiesz, dlaczego to błąd? Ex github.com/rmandvikar/git-setup/blob/tabs/.gitconfig
hIpPy
7
Pliki kropkowe nie wydają się być szanowane przez [*](na github). Musiałem dodać kolejny wpis za pomocą [.*].
PotatoFarmer
Zdecydowanie powinna to być zaakceptowana odpowiedź! Dziwi mnie, że Github faktycznie przestrzega zasad konfiguracji edytora.
Maurício Giordano
1
Nie jest przestrzegany w zobowiązaniach :-(
Nikola Mihajlović
1
@rofrol Myślę, że się pomyliłem. Rozmiar tabulatorów działa poprawnie w kodzie i różnicach, ale nie we README.mdfragmentach kodu. To jest nowa obserwacja; Nie wiem, czy README.mdfragmenty kodu kiedykolwiek miały rozmiar tabulacji inny niż 8 spacji.
Redsandro
68

Można to zrobić za pomocą rozszerzenia przeglądarki. Zainstaluj Stylowy (w przeglądarce Firefox lub Chrome ), a następnie zainstaluj ten styl użytkownika: „ GitHub: karty o większym rozmiarze w kodzie ”.

Może nie działać w niektórych językach. Na przykład przeglądałem plik JavaScript i nie zauważyłem żadnych zmian. Więc usunąłem styl autora i wstawiłem do niego następujące linie:

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

I działało na Chrome ( zrzut ekranu ).

Jak widać na zrzucie ekranu, włączyłem również tryb panoramiczny i zmieniłem schemat kolorów na Solarized. Mam więc trzy style użytkownika działające na stronach GitHub poprzez rozszerzenie Stylowe dla Chrome . Mam nadzieję, że to komuś pomoże.

aledujke
źródło
18
Napisałem ten styl użytkownika . Cieszę się, że przydało ci się. Naprawiłem go i przetestowałem w Chrome, a teraz działa bez Twojej modyfikacji.
Rory O'Kane
2
Może ci się spodobać mój styl użytkownika „ Cały kod ma rozmiar zakładki 4 ”, który zmienia rozmiar zakładki <code>elementów na wszystkich stronach internetowych.
Rory O'Kane
1
Github zamienia co \t8 na 8 &nbsp;. Merde.
Rudie,
2
Tak, nie robili tego wcześniej i nie mam pojęcia, dlaczego robią to teraz :( Myślę, że rozwiązaniem może być ktoś, kto pisze skrypt, który zastępuje powiedz ... 4 kolejne & nbsp; dwa lub cokolwiek innego. Ale to musi być chyba „skrypt użytkownika”
aledujke,
1
Nasz styl GitHub Dark Stylish pozwala ustawić rozmiar zakładki. I jest aktywnie utrzymywany.
Mottie
0

Jeśli lubisz skrypty użytkownika, zrobiło to dla mnie:

// ==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 });
Denis Howe
źródło
Wolałbym tę alternatywę, ale wydaje się, że działa ona mniej więcej losowo: jeśli dane nie zostały załadowane przed uruchomieniem skryptu użytkownika (np. Lista plików, a następnie kliknij, aby otworzyć plik), to nie działa.
Ten
-3

Zrobiłem to, aby je naprawić http://valjok.blogspot.com/2014/07/indentation-correction-for-exposing.html .

Inną opcją jest umieszczanie wszystkich elementów w karcie , wymaganą liczbą spacji

<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
źródło
-6

Jeśli jest to opcja dla projektu, nad którym pracujesz, zmiana edytora, aby traktować tabulatory jako spacje, rozwiąże problem.

Na przykład w programie Visual Studio Code konfiguracja wygląda następująco:

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

W Sublime jest to:

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

Do niedawna nalegałem na nierozstawione zakładki. Po przełączeniu naprawiono dziwne renderowanie Github i nie zauważyłem żadnych istotnych wad w moim przepływie pracy.

Bryce Johnson
źródło
-20

Najlepszym rozwiązaniem jest, jeśli to możliwe, przekonanie opiekunów kodu źródłowego, którego szukasz, aby zastąpić wszystkie tabulatory prawidłową liczbą spacji.

Używanie tabulatorów stanowi dziś problem w kodzie, biorąc pod uwagę, że często widuje się go w Internecie, gdzie decyzja „ile spacji na tabulator” zależy od tego, gdzie jest wyświetlany.

Tom Swirly
źródło
7
To jest prawidłowa odpowiedź i nie zasługuje na to, aby być ocenionym. Istnieje o wiele za dużo oprogramowania, które nie pozwala zmienić szerokości zakładki dla „zakładki są konfigurowalne”, aby były czymkolwiek innym niż pobożnym życzeniem. A jeśli kiedykolwiek wciśniesz coś na odległość, która nie jest wielokrotnością preferowanej szerokości tabulatora, masz teraz kombinację tabulatorów i spacji, a dostosowanie rozmiaru tabulatora już nie działa.
zwolnienie
8
Przeczytaj artykuł w Wikipedii o pochodzeniu 8-spacji. „Rozwinął się wspólny poziomy tabulator składający się z ośmiu znaków, pomimo tego, że pięć znaków ma pół cala i typowe wcięcie akapitowe czasu, ponieważ jako potęgę dwóch łatwiej było obliczyć binarnie dla ograniczonej dostępnej elektroniki cyfrowej”. Twoja odpowiedź używa okrągłego rozumowania (tzn. Standard składa się z ośmiu znaków, ponieważ taki jest standard), aby zamknąć drzwi pytania. Pytający nie jest zadowolony z tego standardu i ma niewiele powodów.
Adam
4
@mrjedmao Tak, możesz to zrobić ?ts=4.
Ben
5
Wolę tabulator niż spację, ponieważ przyspiesza moją edycję od 4 do 8 razy, kiedy przesuwam kursor po białej spacji.
4
„Z wyjątkiem osoby płacącej programistom, hmm?” Czy IDE twojego mózgu używało funkcji przesuwania po linii, aby pominąć następujące zdanie? Wyraźnie stwierdziłem, że egzekwowane konwencje projektu mają pierwszeństwo przed indywidualnymi preferencjami. || „Dlaczego robisz to sobie, skoro wszyscy redaktorzy mają funkcję przesuwania po słowie / polu / linii?” Tak, sugerujesz, że łatwiej jest korzystać z funkcji edytora do nawigacji po kodzie niż po prostu nacisnąć jeden klawisz, aby przejść całą kolumnę. Co więcej, nie wszyscy redaktorzy mają takie funkcje, a niektóre nawet działają inaczej. Przestań myśleć, że cały świat używa Sublime.