Wie mache ich das Tabulatorzeichen 4 Leerzeichen statt 8 Leerzeichen in Nano?

152

Wenn ich im nanoEditor die Tabulatortaste drücke , springt der Cursor mit 8 Leerzeichen wie folgt:

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

Wie kann ich die Breite des Tabulators auf 4 Leerzeichen einstellen, um Folgendes anzuzeigen:

def square(x):
    return x * x
def cube(y):
    return y * y * y
Gefallener Satan
quelle
Nano ist ein ziemlich einfacher Editor. Es besteht eine gute Chance, dass dies einfach nicht unterstützt wird.
Millimoose
umm nicht nur in Nano, sondern es wird auch um 8 Leerzeichen eingerückt, wenn ich Python-Interpreter in Terminal verwende.
Gefallener Satan
2
Dies wird auf Super - User beantwortet und sollte als Duplikat geschlossen: superuser.com/questions/110421/tab-character-width-in-terminal
millimoose
6
@millimoose: Das Ändern der Tabulatoren im Terminal wirkt sich nicht auf Nano aus. Diese Frage sollte sich speziell auf Nano oder das Festlegen der Tabulatoren für Python beziehen, jedoch nicht auf beides und nicht auf das interaktive Setzen der Tabulatoren mit dem tabBefehl, was nicht alle Programme betrifft.
Chris Page

Antworten:

253

Wenn Sie Nano mit einer Sprache wie Python verwenden (wie in Ihrem Beispiel), ist es auch eine gute Idee, Tabulatoren in Leerzeichen zu konvertieren.

Bearbeiten Sie Ihre ~ / .nanorc- Datei (oder erstellen Sie sie) und fügen Sie Folgendes hinzu:

set tabsize 4
set tabstospaces

Wenn Sie bereits eine Datei mit Tabulatoren haben und diese in Leerzeichen konvertieren möchten, empfehle ich den expandBefehl (Shell):

expand -4 input.py > output.py
Sven Rojek
quelle
Ich verwende Mint und wenn ich in / etc / nanorc die Tabsize von 8 auf 4 setze und zur Datei zurückkehre, werden immer noch 8 Leerzeichen in der Registerkarte angezeigt. Ich habe sogar versucht, diese Nanorc-Datei nach ~ / zu kopieren. Aber das funktioniert nicht, geschlossenes und wieder geöffnetes Terminal, aber ich kann immer noch keine 4 Leerzeichen auf der Registerkarte bekommen, wenn ich nicht Nano-T4 verwende. Danke
Alex
@Alex überprüfen Sie, ob Ihre Datei mit einem Punkt .nanorcnicht beginnt nanorc. Dies muss im Home-Verzeichnis Ihres Benutzers abgelegt werden, d /home/your-username/.nanorc. H.
Sven Rojek
1
Danke, am Ende habe ich eine andere .nanorc erstellt, die sich von der in / etc unterscheidet, sie in das Home-Verzeichnis gestellt und das hat funktioniert. Dies sind die einzigen 3 Zeilen, die ich in die neue .nanorc für alle Interessierten aufgenommen habe: setze nowrap, setze tabsize 4 und setze tabstospaces
Alex
4
Wenn dies Ihr Spielzeug ist, können Sie diese Änderung systemweit verfügbar machen. Bearbeiten Sie einfach die globale Datei /etc/nanorc. Es gibt noch ein paar andere Möglichkeiten, die Sie genießen können.
fcm
Hallo @Alexey. Dieser Linux Shell-Befehl funktioniert für alle Dateien, aber stellen Sie sicher, dass Sie eine andere Ausgabedatei angeben, da sonst Ihre Datei geleert wird.
Sven Rojek
91

Befehlszeilenflag

Von 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.

Um beispielsweise die Tabulatorgröße auf 4 festzulegen, Tabulatoren durch Leerzeichen zu ersetzen und die Datei "foo.txt" zu bearbeiten, führen Sie den folgenden Befehl aus:

nano -ET4 foo.txt

Konfigurationsdatei

Von 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.

Bearbeiten Sie Ihre ~/.nanorcDatei (erstellen Sie sie, falls sie nicht vorhanden ist) und fügen Sie diese Befehle hinzu. Beispielsweise:

set tabsize 4
set tabstospaces

Nano verwendet diese Einstellungen standardmäßig bei jedem Start, aber Befehlszeilenflags überschreiben sie.

Äpfel
quelle
ähm ... ich kann die .nanorc-Datei nicht im Verzeichnis ~ / finden
Fallen Satan
1
Ok, vergiss 'es. Ich finde nanorc im Verzeichnis / etc. danke aber
Gefallener Satan
5
@FallenSatan, im Allgemeinen sollten Sie die Bearbeitung von / etc / nanorc vermeiden, es sei denn, Sie müssen systemweite Anpassungen vornehmen. Erstellen Sie ~ / .nanorc, falls es noch nicht vorhanden ist, und platzieren Sie Ihre Anpassungen dort.
Chris Seite
1
Beachten Sie, dass Sie in der obigen Antwort die Zeile "set tabsize 4" hinzufügen müssen, nicht "set tabspace 4"
Thomas N
1
sudo nano wird ~ / .nanorc aus einem offensichtlichen Grund nicht einnehmen; Das Befehlszeilenflag ist daher eine praktischere Lösung für das Problem.
user608800
11

In Nano 2.2.6 scheint die Zeile in ~ / .nanorc zu sein, um dies zu tun

set tabsize 4

Das Einstellen des Tabspace gab mir den Fehler: 'Unbekanntes Flag "Tabspace"'

Harry Detering
quelle
4

Für zukünftige Betrachter gibt es in meiner Datei / etc / nanorc in der Nähe der Zeile 153 eine Zeile mit der Aufschrift "Tabsize 8 festlegen". Das Wort muss möglicherweise Tabulatorgröße anstelle von Tabulator sein. Nachdem ich 8 durch 4 ersetzt und die Zeile auskommentiert hatte, löste es mein Problem.

Caleb
quelle
0

Für alle, die über diese alte Frage stolpern mögen ...

Es gibt eine Sache, die meiner Meinung nach angegangen werden muss.

~/.nanorcwird verwendet, um Ihre benutzerspezifischen Einstellungen auf Nano anzuwenden. Wenn Sie also Dateien bearbeiten, für deren Verwendung sudo nanoBerechtigungen erforderlich sind , funktioniert dies nicht.

Wenn Sie sudoIhre benutzerdefinierten Benutzerkonfigurationsdateien verwenden, werden diese beim Öffnen eines Programms nicht geladen, da Sie das Programm nicht über Ihr Konto ausführen, sodass sich keine Ihrer Konfigurationsdateien ändert~/.nanorc angewendet werden.

Wenn dies die Situation ist, in der Sie sich befinden (Sie möchten Ihre eigenen Konfigurationseinstellungen ausführen sudo nano und verwenden), haben Sie drei Möglichkeiten:

  • Verwenden von Befehlszeilenflags beim Ausführen sudo nano
  • Bearbeiten der /root/.nanorcDatei
  • Bearbeiten der /etc/nanorcglobalen Konfigurationsdatei

Beachten Sie, dass /etc/nanorces sich um eine globale Konfigurationsdatei handelt, die alle Benutzer betrifft. Dies kann ein Problem sein, je nachdem, ob Sie über ein Mehrbenutzersystem verfügen.

Außerdem überschreiben Benutzerkonfigurationsdateien die globale Datei. Wenn Sie also bearbeiten /etc/nanorcund ~/.nanorcunterschiedliche Einstellungen vornehmen, werden beim Ausführen nanodie Einstellungen von geladen. ~/.nanorcWenn Sie jedoch ausgeführt sudo nanowerden, werden die Einstellungen von geladen/etc/nanorc .

Gleiches gilt für /root/.nanorcdas Überschreiben /etc/nanorcbeim Ausführensudo nano

Die Verwendung von Flags ist wahrscheinlich die beste Option, es sei denn, Sie haben viele Optionen.

typedef Miles_Williams MILO
quelle