Как сделать вкладку символом 4 пробела вместо 8 пробелов в нано?

Когда я нажимаю TAB в редакторе nano, курсор будет прыгать с 8 пробелами, подобными этому:

def square(x):
        return x * x
def cube(y):
        return y * y * y

как я могу установить ширину стопа табуляции в 4 пробела для отображения следующим образом:

def square(x):
    return x * x
def cube(y):
    return y * y * y

Ответ 1

Если вы используете nano с языком типа python (как в вашем примере), также полезно преобразовать вкладки в пробелы.

Измените файл ~/.nanorc (или создайте его) и добавьте:

set tabsize 4
set tabstospaces

Если у вас уже есть файл с вкладками и вы хотите преобразовать их в пробелы, я рекомендую команду expand (shell):

expand -4 input.py > output.py

Ответ 2

Флаг командной строки

От man nano:

-T cols (--tabsize=cols)
    Set the size (width) of a tab to cols columns.
    The value of cols must be greater than 0. The default value is 8.
-E (--tabstospaces)
    Convert typed tabs to spaces.

Например, чтобы установить размер закладки в 4, замените вкладки пробелами и отредактируйте файл "foo.txt", вы должны выполнить команду:

nano -ET4 foo.txt

Файл конфигурации

От man nanorc:

set tabsize n
    Use a tab size of n columns. The value of n must be greater than 0.
    The default value is 8.
set/unset tabstospaces
    Convert typed tabs to spaces.

Измените свой ~/.nanorc файл (создайте его, если он не существует) и добавьте к нему эти команды. Например:

set tabsize 4
set tabstospaces

Nano будет использовать эти настройки по умолчанию при каждом запуске, но флаги командной строки переопределяют их.

Ответ 3

В nano 2.2.6 строка в ~/.nanorc для этого кажется

set tabsize 4

Настройка tabspace дала мне ошибку: "Неизвестный флаг" tabspace "

Ответ 4

Для будущих зрителей в моем файле /etc/nanorc есть строка, близкая к строке 153, в которой указано "set tabsize 8". Возможно, это слово должно быть tabsize вместо tabspace. После того, как я заменил 8 на 4 и раскоментировал строку, она решила мою проблему.