Come rendere il carattere di tabulazione 4 spazi anziché 8 spazi in nano?


152

Quando premo TAB nanonell'editor, il cursore salta con 8 spazi in questo modo:

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

come posso impostare la larghezza del punto di tabulazione su 4 spazi da visualizzare in questo modo:

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

Nano è un editor piuttosto semplice. C'è una buona probabilità che non lo supporti.
millimoose,

umm non solo in nano, ma rientra anche di 8 spazi quando utilizzo l'interprete Python in Terminal.
Fallen Satan,

2
Questa è una risposta su SuperUser e deve essere chiusa come duplicata: superuser.com/questions/110421/tab-character-width-in-terminal
millimoose

6
@millimoose, la modifica delle tabulazioni nel terminale non influisce su nano. Questa domanda dovrebbe essere specificamente su nano o sull'impostazione dei punti di tabulazione per Python, ma non su entrambi e non sull'impostazione interattiva dei punti di tabulazione con il tabcomando, che non influisce su tutti i programmi.
Chris Page

Risposte:


254

Se usi nano con un linguaggio come python (come nel tuo esempio) è anche una buona idea convertire le schede in spazi.

Modifica il tuo file ~ / .nanorc (o crealo ) e aggiungi:

set tabsize 4
set tabstospaces

Se hai già un file con le schede e vuoi convertirli in spazi ti consiglio il expandcomando (shell):

expand -4 input.py > output.py

Sto usando Mint e quando imposto tabsize da 8 a 4 in / etc / nanorc e torno al file, sto ancora ottenendo 8 spazi nella scheda, ho anche provato a copiare quel file nanorc in ~ /. ma questo non funziona, terminale chiuso e riaperto, ma non riesco ancora a ottenere 4 spazi nella scheda se non uso nano -T4. Grazie
Alex,

@Alex doppio controllo che il file inizia con un punto .nanorcnon nanorc. Questo deve essere inserito nella home directory degli utenti, ad es /home/your-username/.nanorc.
Sven Rojek,

1
Grazie, ho finito per creare un altro .nanorc diverso da quello in / etc, l'ho messo nella directory home e ha funzionato. Queste sono le uniche 3 righe che ho incluso nel nuovo .nanorc per chiunque sia interessato: imposta nowrap, imposta tabsize 4 e imposta tabstospaces
Alex

5
Se questo è il tuo giocattolo, puoi rendere disponibile questa modifica a livello di sistema, basta modificare il file globale /etc/nanorc. Ci sono alcune altre opzioni che potrebbero piacerti.
fcm

Ciao @Alexey. Questo comando di Shell Linux funziona per tutti i file, ma assicurati di specificare un altro file di output, altrimenti il ​​tuo file verrà svuotato.
Sven Rojek,

91

Flag della riga di comando

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

Ad esempio, per impostare la dimensione della scheda su 4, sostituire le schede con spazi e modificare il file "foo.txt", eseguire il comando:

nano -ET4 foo.txt

File di configurazione

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

Modifica il tuo ~/.nanorcfile (crealo se non esiste) e aggiungi quei comandi. Per esempio:

set tabsize 4
set tabstospaces

Nano utilizzerà queste impostazioni per impostazione predefinita ogni volta che viene avviato, ma i flag della riga di comando le sovrascriveranno.


umm ... non riesco a trovare il file .nanorc nella directory ~ /
Fallen Satan il

1
Ok, fa niente. Trovo nanorc nella directory / etc. grazie comunque
Fallen Satan,

5
@FallenSatan, generalmente dovresti evitare di modificare / etc / nanorc, a meno che non sia necessario eseguire personalizzazioni a livello di sistema. Crea ~ / .nanorc se non esiste già e inserisci le tue personalizzazioni.
Chris Page

1
Si noti che nella risposta sopra è necessario aggiungere la riga "set tabsize 4", non "set tabspace 4"
Thomas N,

1
sudo nano non prenderà ~ / .nanorc per una ragione ovvia; quindi il flag della riga di comando è una soluzione più pratica al problema.
user608800,

11

In nano 2.2.6 la linea in ~ / .nanorc per farlo sembra essere

set tabsize 4

L'impostazione di tabspace mi ha dato l'errore: 'Flag sconosciuto "tabspace"'


4

Per i futuri spettatori, c'è una riga nel mio file / etc / nanorc vicino alla riga 153 che dice "imposta tabsize 8". Potrebbe essere necessario che la parola sia tabsize anziché tabspace. Dopo aver sostituito 8 con 4 e decommentato la linea, ho risolto il mio problema.



0

Per chiunque possa imbattersi in questa vecchia domanda ...

C'è una cosa che penso debba essere affrontata.

~/.nanorcviene utilizzato per applicare le impostazioni specifiche dell'utente a nano, quindi se si stanno modificando file che richiedono l'uso di sudo nanoautorizzazioni, questo non funzionerà.

Quando si utilizzano sudoi file di configurazione dell'utente personalizzato non verranno caricati all'apertura di un programma, poiché non si esegue il programma dal proprio account, quindi nessuna delle modifiche alla configurazione ~/.nanorcverrà applicata.

Se questa è la situazione in cui ti trovi (voler eseguire sudo nano e utilizzare le tue impostazioni di configurazione), hai tre opzioni:

  • utilizzando i flag della riga di comando durante l'esecuzione sudo nano
  • modifica del /root/.nanorcfile
  • modifica del /etc/nanorcfile di configurazione globale

Tieni presente che si /etc/nanorctratta di un file di configurazione globale e come tale interessa tutti gli utenti, il che può essere un problema o meno a seconda che tu abbia un sistema multiutente.

Inoltre, i file di configurazione dell'utente avranno la precedenza su quello globale, quindi se si dovessero modificare /etc/nanorce ~/.nanorccon impostazioni diverse, quando si esegue nanocaricherà le impostazioni da ~/.nanorcma se si esegue sudo nanoquindi caricherà le impostazioni da /etc/nanorc.

Lo stesso vale per /root/.nanorcquesto avrà la precedenza /etc/nanorcdurante l'esecuzionesudo nano

L'uso delle bandiere è probabilmente l'opzione migliore a meno che tu non abbia molte opzioni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.