当我在nano编辑器中按TAB键时,光标会像这样跳跃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

当前回答

命令行标记

来自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在启动时默认使用这些设置,但是命令行标志将覆盖这些设置。

其他回答

在nano 2.2.6中,线在~/。Nanorc做这件事似乎是

set tabsize 4

设置tabspace会出现如下错误: 未知标志“tabspace”

设置制表符大小为nano

cd /etc
ls -a
sudo nano nanorc

链接:https://app.gitbook.com/@cai-dat-chrome-ubuntu-18-04 / s / chuaphanloai / setting-the-tab-size-in-nano

如果您将nano与python之类的语言一起使用(如您的示例所示),那么将制表符转换为空格也是一个好主意。

编辑~/。Nanorc文件(或创建它)并添加:

set tabsize 4
set tabstospaces

如果你已经有了一个带有制表符的文件,并且想要将它们转换为空格,我建议使用expandcommand (shell):

expand -4 input.py > output.py

对于那些无意中遇到这个老问题的人…

有一件事我认为需要解决。

~ /。Nanorc用于将用户特定的设置应用到nano,因此如果您正在编辑需要使用sudo nano权限的文件,那么这将不起作用。

当使用sudo时,您的自定义用户配置文件将不会在打开程序时加载,因为您不是从您的帐户运行程序,因此~/中没有任何配置更改。Nanorc将被应用。

如果这是你发现自己的情况(想要运行sudo nano并使用自己的配置设置),那么你有三个选择:

运行sudo nano时使用命令行标志 编辑/root/. conf文件。nanorc文件 编辑/etc/nanorc全局配置文件

请记住/etc/nanorc是一个全局配置文件,因此它会影响所有用户,这可能是问题,也可能不是问题,这取决于您是否拥有多用户系统。

此外,用户配置文件将覆盖全局配置文件,因此如果您要编辑/etc/nanorc和~/。Nanorc不同的设置,当你运行nano时,它会从~/加载设置。但是如果你运行sudo nano,它会从/etc/nanorc.加载设置

/root/也一样。当运行sudo nano时,将覆盖/etc/nanorc

使用标志可能是最好的选择,除非你有很多选项。

命令行标记

来自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在启动时默认使用这些设置,但是命令行标志将覆盖这些设置。