Зміна вкладки в git-gui


15

Мені було цікаво, чи можна змінити вкладку в git-gui з 8 символів на 4. Єдине, що я знайшов - це, core.whitespace = tabsize=4але це впливає лише на розл.

Причина, чому я запитую, полягає в тому, що я повільно припиняю використання вкладок і замість цього використовую 4-пробільні відступи. Це, однак, може дати заплутані результати при перегляді різниці в git-gui, оскільки розмір вкладок становить близько 8 символів.

Я знаю, що простий :retabу Vim вирішує мою проблему, але досить часто мені доводиться працювати над великими файлами з багаторічною історією, які можуть мати зміни в окремих галузях. Тому я не завжди можу просто перетворити всі вкладки.

Відповіді:


5

Станом на git-gui-0.20 та git 2.4.0 ( commit ) існує параметр конфігурації, який додано для налаштування відображеного розміру вкладок у git gui.

Додайте це до своєї ~ / .gitconfig

[gui]
    tabsize = 4

або змінити його через меню конфігурації git-gui (Редагувати -> Опції ...)


Спасибі. Я оновив свій Git (був на рівні 1,8: -O) і бачу цей варіант. Мені все-таки доводиться стикатися з поєднанням вкладок і пробілів раз у раз, тому це чудово.
Htbaa

10

Я провів деякі дослідження.

Конфігурація не core.whitespaceмає нічого спільного з тим, як відображаються вкладки. Він використовується лише для git для розпізнавання помилок пробілів, пов’язаних з вкладками. Наприклад: коли indent-with-non-tabввімкнено та core.whitespaceвстановлено значення tabwidth=4, а рядок буде відступ з використанням 4 пробілів або більше, то git повідомить про помилку.

Для git, крім функцій виявлення помилок пробілів, пов'язаних з вкладками, символ вкладки - це символ, як і будь-який інший символ. Його порівнюють, і він потрапляє на будь-який інструмент, який використовується для відображення символів. Це означає, що для налаштування відображеної ширини вкладок вам потрібно налаштувати "передні кінці" git. У випадку git diffцього було б "менше" (інструмент unix "менше"). У випадку git guiцього буде саме git-gui.

Налаштувати менше легко. Ви можете встановити конфігурацію git таким чином, core.pagerщоб менше відображати вкладку, використовуючи 4 пробіли (менше має параметр -xnдля встановлення ширини табуляції на n).

Налаштувати git-gui виявилося значно важче. Git-gui написаний Tcl / Tk. Я знайшов варіант Tcl / Tk, щоб налаштувати ширину вкладок у текстових віджетах. Я також знайшов рядок, git-gui.shде виглядає, як текстовий віджет ініціалізується.

Це рядок 3346 файлу git-gui.shв git версії 1.7.5:

catch {$ui_diff configure -tabstyle wordprocessor}

Я змінив це, відповідно до посібника з Tcl / Tk, на:

catch {$ui_diff configure -tabs "[expr {4 * [font measure $font 0]}]" -tabstyle wordprocessor}

Це, мабуть, не мало ніякого ефекту. Я спробував різні значення для, -tabsі вони мали деякий вплив на відображену ширину вкладок, тому, здається, правильний рядок для зміни.

На жаль, Tcl / Tk, схоже, не має поняття ширини вкладок у вигляді символів, натомість ширина вкладки повинна бути встановлена ​​в пікселях чи сантиметрах.

Зауважте, що у мене немає досвіду роботи з Tcl / TK, тому, можливо, я просто пропускаю тут щось просте.

У всякому разі, тепер ви знаєте, з чого почати копати. Не забудьте повідомити про це, якщо у вас є робоче рішення. Удачі.


Дякую за ваше дослідження. Мені доведеться залишити трохи часу для цього, щоб спробувати. Баунті - це ваше, як заслужено. Коли і якщо я зрозумію, як це зробити, я обов'язково повідомлю тут.
Htbaa

@Htbaa: Я думаю, що вам належить натиснути кнопку "премія за винагороду", щоб присудити виграш. Прийняття відповіді не дає нагороди.
lesmana

Спасибі. Готово! Я був майже впевнений, що щедрості віддали.
Htbaa

5

Я розробив дослідження, проведені лесманою .

Лінія

catch {$ui_diff configure -tabstyle wordprocessor}`

Згадане Лесмена слід замінити наступним:

catch {$ui_diff configure -tabs "[expr {[get_config gui.tabsize] * [font measure font_diff 0]}] left" -tabstyle wordprocessor}

Після цього можна настроїти розмір вкладки, використовуючи опцію "tabsize" у розділі [gui] файлу конфігурації git (він же gui.tabsize). Погані новини:

  1. Деякі вкладки після останнього символу без пробілів перетворюються на прості пробіли. Це схоже на помилку в tcl.
  2. Потрібно перезапустити git-gui після зміни розміру шрифту, щоб отримати правильні вкладки. Хто знає, як це вирішити?

Тестували:

  • версія git-gui 0.13.0.8.g8f85
  • версія git 1.7.4.1
  • версія tcl 8.4.16-2 (пакет Ubuntu 11.04 i386)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.