nanoでタブ文字を8スペースではなく4スペースにする方法は?


152

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

Nanoはかなり基本的なエディターです。これをサポートしていない可能性が十分にあります。
ミリムース

ummはnanoだけでなく、ターミナルでpythonインタープリターを使用すると、8スペースずつインデントされます。
堕落した悪魔

2
これはSuperUserで回答され、重複として閉じる必要があります
millimoose

6
@millimoose、ターミナルのタブストップを変更してもnanoには影響しません。この質問は、nanoについて、またはPythonのタブストップの設定について具体的に説明する必要がありますが、両方についてtabではなく、コマンドを使用してインタラクティブにタブストップを設定しても、すべてのプログラムに影響するわけではありません。
Chris Page

回答:


253

Pythonのような言語でnanoを使用する場合(例の、タブをスペースに変換することもお勧めします。

〜/ .nanorcファイルを編集(または作成)して、以下を追加します。

set tabsize 4
set tabstospaces

すでにタブのあるファイルがあり、それらをスペースに変換したい場合は、expandコマンド(シェル)をお勧めします。

expand -4 input.py > output.py

私はmintを使用していますが、/ etc / nanorcでtabsizeを8から4に設定してファイルに戻ると、タブに8つのスペースが残っています。そのnanorcファイルを〜/にコピーしようとしました。しかし、それは機能せず、ターミナルを閉じて再度開きましたが、nano -T4を使用しない限り、タブに4つのスペースを取得できません。ありがとう
アレックス

@Alexは、ファイルの先頭がドットで.nanorcはないことを再確認しますnanorc。これは、ユーザーのホームディレクトリ、つまりに配置する必要があります/home/your-username/.nanorc
Sven Rojek

1
おかげで、私は/ etc内の.nanorcとは異なる別の.nanorcを作成し、ホームディレクトリに配置したところ、うまくいきました。これは、興味がある人のために新しい.nanorcに含めた唯一の3行です。nowrapを設定し、tabsize 4を設定し、tabstospacesを設定します
Alex

4
これがあなたのおもちゃであれば、この変更をシステム全体で利用できるようにすることができます/etc/nanorc。グローバルファイルを編集するだけです。あなたが楽しむかもしれないそこにいくつかの他のオプションがあります。
fcm

@Alexeyさん、こんにちは。このLinuxシェルコマンドはすべてのファイルに対して機能しますが、必ず別の出力ファイルを指定してください。指定しないと、ファイルが空になります。
Sven Rojek 2017年

91

コマンドラインフラグ

から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は起動時に常にデフォルトでこれらの設定を使用しますが、コマンドラインフラグはそれらを上書きします。


うーん...〜/ディレクトリに.nanorcファイルが見つかりません
Fallen Satan

1
分かった、気にしないで。nanorcは/ etcディレクトリにあります。感謝します
倒れたサタン

5
@FallenSatan、システム全体のカスタマイズを実行する必要がない限り、通常、/ etc / nanorcの編集は避けてください。〜/ .nanorcがまだ存在しない場合は作成し、そこにカスタマイズを置きます。
クリスページ

1
上記の回答では、「set tabspace 4」ではなく「set tabsize 4」という行を追加する必要があることに注意してください
Thomas N

1
sudo nanoは明白な理由で〜/ .nanorcを取りません。したがって、コマンドラインフラグは、問題に対するより実用的な解決策です。
user608800

11

nano 2.2.6では、これを行う〜/ .nanorcの行は

set tabsize 4

タブスペースを設定するとエラーが発生しました:「不明なフラグ "タブスペース"」


4

今後の閲覧者のために、私の/ etc / nanorcファイルの153行の近くに「set tabsize 8」という行があります。単語はタブスペースではなくタブサイズである必要があるかもしれません。8を4に置き換えて行のコメントを外したところ、問題は解決しました。



0

この古い質問に出くわす可能性がある人のために...

私が対処する必要があると私が思う1つの事柄があります。

~/.nanorcユーザー固有の設定をnanoに適用するために使用されるsudo nanoため、許可のためにの使用が必要なファイルを編集している場合、これは機能しません。

使用している場合sudo、プログラムを開くときに、コンフィギュレーションのいずれも変化しないので、あなたのアカウントからプログラムを実行していないとして、ロードされません、カスタム・ユーザー・コンフィギュレーション・ファイルを~/.nanorc適用されます。

これが自分の状況である場合(実行sudo nano て独自の構成設定使用したい場合)、次の3つのオプションがあります。

  • 実行時にコマンドラインフラグを使用する sudo nano
  • /root/.nanorcファイルを編集する
  • /etc/nanorcグローバル構成ファイルの編集

これ/etc/nanorcはグローバル構成ファイルであるため、すべてのユーザーに影響することに注意してください。これは、マルチユーザーシステムを使用しているかどうかに応じて、問題になる場合とされない場合があります。

また、ユーザー設定ファイルはグローバルファイルを上書きするため、編集/etc/nanorc~/.nanorcて別の設定を使用した場合、実行nanoすると設定が読み込まれます~/.nanorcが、実行sudo nanoすると設定が読み込まれます。/etc/nanorc

同じことがのために行く/root/.nanorcよりも優先されます。この/etc/nanorc実行している場合sudo nano

多くのオプションがない限り、フラグの使用がおそらく最良のオプションです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.