На самом деле вкладки gnome-терминала отображаются как 8 пробелов, и это очень раздражает, когда вы запускаете файлы cat или просматриваете различия, есть ли способ изменить это навсегда?
Как отображать вкладки как 4 пробела в gnome-терминале
Ответы (7)
Вместо того, чтобы выписывать явный список позиций табуляции, вы также можете использовать неявные интервалы:
tabs -n
Это установит позиции табуляции каждые n
столбца. Для получения дополнительной информации ознакомьтесь с справочной страницей для вкладок по адресу http://manpages.ubuntu.com/manpages/maverick/en/man1/tabs.1.html.
tabs
.
- person Lily Chung; 29.03.2014
Уникальное решение, которое я нашел, - это ввести терминал:
tabs 5,9,13,17,21,25,29,33,37,41
и добавьте его в ~/.bashrc, если вам нужны постоянные изменения.
PS: это, очевидно, покрывает до 10 отступов табуляции.
Вам нужно установить ширину вкладки на базовом tty, а не в самом терминале gnome.
Теоретически вы должны иметь возможность использовать «setterm -regtabs 4», чтобы установить ширину табуляции на 4 в вашем .bashrc.
Кажется, это не работает в моем дистрибутиве Linux, но работает, когда я использую ssh из удаленной системы.
Самый простой способ сбросить ширину табуляции до 8 — использовать «табуляции -8» (табы -d8, чтобы увидеть изменение).
Проблема с использованием «вкладки -4» заключается в том, что первая позиция табуляции отключена на единицу (по крайней мере, в моей системе). Например, если я наберу «вкладки -4», первая позиция табуляции будет начинаться в 4-м столбце с 3 пробелами перед ней вместо 4. Последующие позиции табуляции будут правильно разделены 4 пробелами. Обходной путь — указать позиции табуляции следующим образом:
tabs 1,+4,+4,+4,+4,...
Вы также можете сделать табуляцию -4, и она будет устанавливать табуляцию в каждом 4-м столбце.
Если вы используете bash, вот что у меня есть в ~/.bashrc:
# set tabs to width TABWIDTH
TABWIDTH=4
# for less(1) the option -x4 was added (see above);
# other programs may need their own flags
setterm -regtabs ${TABWIDTH} </dev/tty
tabs -0 </dev/tty
# this erroneously imho sets the first tab at offset 3, not offset 4:
#tabs 1,+${TABWIDTH} </dev/tty
# this works:
tabs 1`for i in {0..40}; do echo -n ",+${TABWIDTH}"; done`
unset TABWIDTH
Обратите внимание на обратные кавычки вокруг фразы «для... сделано».
edit: последний «+4» перед оператором «done», конечно же, должен был быть +${TABWIDTH}.
вкладки 1,5,9,13,17,21,25 и т. д. работают не совсем корректно. При вводе, при возврате на вкладку, gnome-terminal возвращается на 8 пробелов, а не на четыре. Похоже, здесь есть ошибка gnome-терминала. (Примечание: вы не увидите этого при вводе в оболочке, потому что она узурпирует вкладки для завершения файла. Сначала вам нужно запустить cat или dc или какую-либо другую команду, которая не использует символы табуляции для своих целей.)