如何将nano中的制表符变为4个空格而不是8个空格?

问题描述 投票:0回答:9

当我在

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
tabs terminal indentation nano
9个回答
360
投票

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

编辑您的 ~/.nanorc 文件(或创建它)并添加:

set tabsize 4
set tabstospaces

如果您已经有了一个带有制表符的文件并想将它们转换为空格,我推荐使用

expand
命令(shell):

expand -4 input.py > output.py

126
投票

命令行标志

来自

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 每当启动时都会默认使用这些设置,但命令行标志将覆盖它们。


14
投票

在 nano 2.2.6 中,~/.nanorc 中执行此操作的行似乎是

set tabsize 4

设置制表符空间给了我错误: '未知标志“制表空间”'


6
投票

设置 nano 中的选项卡大小

cd /etc
ls -a
sudo nano nanorc

enter image description here


5
投票

很容易将选项卡尺寸设置为 4 纳米。有一些简单的步骤可以做到这一点:

  1. 从主目录转到“etc”目录(文件夹)。
cd /etc
  1. 有一个文件名为nanorc,需要编辑它。您可以通过运行
    ls -a
    查看文件列表。 使用您最喜欢的编辑器(例如 nano 或 gedit 等)输入文件。
sudo nano nanorc
  1. 您需要找出一行
    set tabsize 8
    。默认情况下,制表符大小设置为8个空格。大约有300行。 您可以运行此命令来搜索该行的位置,而无需滚动。要做到这一点,请从 nano exit(ctrl+Z) 并运行
grep -n "set tabsize" nanorc

就我而言,这是第 159 行。输出是:

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

取消注释该行(删除

#
)并输入 4 而不是 8 并保存(ctrl+o 然后按 Enter)。 enter image description here

然后你就完成了。 -- 如果您对 python 脚本使用 nano,则将制表符大小设置为 4 会很有帮助。

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


4
投票

对于未来的查看者,我的 /etc/nanorc 文件中靠近第 153 行的一行显示“set tabsize 8”。该词可能需要是 tabsize 而不是 tabspace。在我用 4 替换 8 并取消注释该行后,它解决了我的问题。


2
投票

对于任何可能偶然发现这个老问题的人......

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

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

使用

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

如果您发现自己处于这种情况(想要运行

sudo nano
并且使用您自己的配置设置),那么您有三个选择:

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

请记住,

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

此外,用户配置文件将覆盖全局配置文件,因此,如果您要使用不同的设置编辑

/etc/nanorc
~/.nanorc
,当您运行
nano
时,它将从
~/.nanorc
加载设置,但如果您运行
sudo nano 
然后它将从
/etc/nanorc
加载设置。

同样适用于

/root/.nanorc
,这将在运行时覆盖
/etc/nanorc
sudo nano

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


1
投票

对于 MAC Nanos,您应该优先编辑“~/nanorc”配置文件,而不是“~/.nanorc”配置文件。


0
投票

如果您想为某种语法类型设置制表符大小,例如

python
,独立于
tabsize
tabstospaces
,有一个函数
tabgives
nanorc
已经预设如下:

# extendsyntax python tabgives "  "

只需取消注释并在引号内输入所需的选项卡即可。

© www.soinside.com 2019 - 2024. All rights reserved.