当我在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

当前回答

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

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

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

在nano中设置tab大小为4很容易。有一些简单的步骤可以做到:

从主目录转到“etc”目录(文件夹)。

cd /etc

有一个文件名为nanorc,需要编辑它。您可以通过运行ls -a命令查看文件列表。 用你最喜欢的编辑器(如nano或gedit等)输入文件。

sudo nano nanorc

你需要找到一个tabsize为8的行集。默认情况下,选项卡大小设置为8个空格。大约有300行。 使用此命令可以在不滚动的情况下搜索该行的位置。为此,从nano中退出(ctrl+Z)并运行

grep -n "set tabsize" nanorc

对我来说,是第159行。输出结果为:

159:# set tabsize 8

现在再次打开“nanorc”文件(如步骤2所示)。 转到步骤3中找到的行号。 在nano中按alt+shift+3查看编辑器中的行号。 你可能会发现这样一行:# set tabsize 8

取消注释行(删除#),输入4而不是8并保存(ctrl+o然后按enter)。

然后就做完了。 如果你在python脚本中使用nano,设置tab大小为4会很有帮助。

如果它不能完美地工作,也取消下一行的注释。在我的例子中,第162行是“# set tabstospaces”

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

set tabsize 4

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

对于未来的观众,在我的/etc/nanorc文件中有一行接近第153行说“set tabsize 8”。这个词可能需要是tabsize而不是tabspace。在我用4替换8并取消注释后,它解决了我的问题。

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

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

~ /。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

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