La mia impostazione attuale prevede 8 spazi; come potrei ridefinirlo?
La mia impostazione attuale prevede 8 spazi; come potrei ridefinirlo?
Risposte:
Dipende da cosa intendi. Vuoi che i caratteri di tabulazione effettivi nel tuo file appaiano di 4 spazi, oppure per "tab" intendi effettivamente un rientro , generato premendo il tasto tab, che comporterebbe il file che contiene letteralmente (fino a) 4 caratteri di spazio per ogni "tab" che scrivi?
A seconda della risposta, una delle seguenti serie di impostazioni dovrebbe funzionare per te:
Per i caratteri di tabulazione che appaiono di 4 spazi :
set tabstop=4
Se stai usando il carattere di tabulazione reale nel tuo codice sorgente probabilmente vorrai anche queste impostazioni (queste sono in realtà le impostazioni predefinite, ma potresti volerle impostare in modo difensivo):
set softtabstop=0 noexpandtab
Infine, se si desidera che un rientro corrisponda a una singola scheda, è necessario utilizzare anche:
set shiftwidth=4
Per i rientri costituiti da 4 caratteri spaziali ma immessi con il tasto Tab:
set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
Per rendere permanenti le impostazioni di cui sopra, aggiungi queste righe al tuo vimrc .
Nel caso in cui sia necessario apportare modifiche o desideri semplicemente comprendere il significato di tutte queste opzioni, ecco una ripartizione del significato di ciascuna opzione:
tabstop
La larghezza di un tabstop duro misurata in "spazi" - effettivamente la larghezza (massima) di un carattere di tabulazione reale.
shiftwidth
La dimensione di un "rientro". Viene anche misurato in spazi, quindi se la tua base di codice rientra con i caratteri di tabulazione allora vuoi
shiftwidth
uguagliare il numero di caratteri di tabulazione voltetabstop
. Questo è usato anche da cose come la=
,>
e<
comandi.
softtabstop
Impostandolo su un valore diverso da zero
tabstop
, il tasto tab (in modalità insert) inserirà una combinazione di spazi (e possibilmente tab) per simulare i punti di tabulazione a questa larghezza.
expandtab
Abilitando questo, il tasto tab (in modalità insert) inserirà spazi anziché caratteri di tabulazione. Ciò influisce anche sul comportamento del
retab
comando.
smarttab
Abilitando questo, il tasto tab (in modalità insert) inserirà spazi o tab per passare al rientro successivo del tabstop successivo quando il cursore si trova all'inizio di una riga (ovvero gli unici caratteri precedenti sono spazi bianchi).
Per maggiori dettagli su uno di questi vedere in vim (es. ):help 'optionname'
:help 'tabstop'
~/.vimrc
sono le impostazioni vim dell'utente. Molte persone lasciano da sole le impostazioni di sistema e modificano solo le impostazioni dell'utente. Nota che ~/.vimrc
non esisterà fino a quando non lo creerai sulla maggior parte dei sistemi.
set softtabstop=4
funzione! Sono stanco di provare a leggere il tuo codice con less
, o con qualsiasi altro editor tranne vim
, solo per vedere un rientro bizzarro perché hai ridefinito il tab in un numero arbitrario di spazi (anche se il resto del sistema pensa diversamente)! :-)
tabstop=8
per i rientri che consistono in 4 spazi? Non sono riuscito a capire il motivo dopo aver letto le descrizioni delle varie impostazioni. Un'altra risposta dice di usare il tabstop=4
che ha un po 'più senso per me.
tabstop
opzione controlla la larghezza di un carattere di tabulazione. Se si desidera che i trattini a consistono di 4 caratteri di spazio, piuttosto che i caratteri di tabulazione singoli che sono di larghezza 4, allora la larghezza del carattere di tabulazione non importa - sorta di . In pratica, probabilmente vuoi che la larghezza del tuo carattere di tabulazione sia diversa dalla larghezza dei rientri, al fine di ridurre la possibilità che i caratteri di tabulazione si mascherino come rientri propri. ( list
+ expandtab
può essere d'aiuto anche qui) Inoltre, le schede a 8 caratteri sono "lo standard": il tuo terminale, Python e molti altri strumenti utilizzano come impostazione predefinita a 8 caratteri.
Per definirlo su base permanente per l'utente corrente, creare (o modificare) il .vimrc
file:
$ vim ~/.vimrc
Quindi, incolla la configurazione seguente nel file. Una volta riavviato vim, verranno applicate le impostazioni della scheda.
set tabstop=4 " The width of a TAB is set to 4.
" Still it is a \t. It is just that
" Vim will interpret it to be having
" a width of 4.
set shiftwidth=4 " Indents will have a width of 4
set softtabstop=4 " Sets the number of columns for a TAB
set expandtab " Expand TABs to spaces
:retab
per convertire esistenti tab
in spaces
. vim.wikia.com/wiki/Converting_tabs_to_spaces
Esistono poche impostazioni che definiscono se utilizzare spazi o schede.
Quindi qui ci sono utili funzioni che possono essere definite nel tuo ~/.vimrc
file:
function! UseTabs()
set tabstop=4 " Size of a hard tabstop (ts).
set shiftwidth=4 " Size of an indentation (sw).
set noexpandtab " Always uses tabs instead of space characters (noet).
set autoindent " Copy indent from current line when starting a new line (ai).
endfunction
function! UseSpaces()
set tabstop=2 " Size of a hard tabstop (ts).
set shiftwidth=2 " Size of an indentation (sw).
set expandtab " Always uses spaces instead of tab characters (et).
set softtabstop=0 " Number of spaces a <Tab> counts for. When 0, featuer is off (sts).
set autoindent " Copy indent from current line when starting a new line.
set smarttab " Inserts blanks on a <Tab> key (as per sw, ts and sts).
endfunction
Uso:
:call UseTabs()
:call UseSpaces()
Per utilizzarlo per estensioni di file, è possibile utilizzare la seguente sintassi (aggiunta a .vimrc
):
au! BufWrite,FileWritePre *.module,*.install call UseSpaces()
Vedi anche: Conversione di schede in spazi .
Ecco un altro frammento di Wikia che può essere utilizzato per alternare tra schede e spazi :
" virtual tabstops using spaces
set shiftwidth=4
set softtabstop=4
set expandtab
" allow toggling between local and default mode
function TabToggle()
if &expandtab
set shiftwidth=8
set softtabstop=0
set noexpandtab
else
set shiftwidth=4
set softtabstop=4
set expandtab
endif
endfunction
nmap <F9> mz:execute TabToggle()<CR>'z
Consente di utilizzare 4 spazi per ogni scheda e una mappatura F9per attivare / disattivare le impostazioni.
Ho copiato e incollato questo nel mio file .vimrc:
" size of a hard tabstop
set tabstop=4
" always uses spaces instead of tab characters
set expandtab
" size of an "indent"
set shiftwidth=4
Le prime 2 impostazioni indicano che quando premo Tab ottengo 4 spazi. La terza impostazione significa che quando lo faccio V>
(cioè visivo e rientro) ottengo anche 4 spazi.
Non esaustivo come la risposta accettata, ma potrebbe aiutare le persone che vogliono semplicemente copiare e incollare qualcosa.
Inserisci le impostazioni desiderate nel file ~ / .vimrc - Vedi sotto per alcune linee guida e le migliori pratiche.
Esistono quattro modi principali per utilizzare le schede in Vim:
Tieni sempre "tabstop" su 8, imposta "softtabstop" e "shiftwidth" su 4 (o 3 o quello che preferisci) e usa "noexpandtab". Quindi Vim utilizzerà una combinazione di schede e spazi, ma digitando e si comporterà come una scheda appare ogni 4 (o 3) caratteri.
Nota: l' impostazione di "tabstop" su un valore diverso da 8 può far apparire il file errato in molti punti (ad esempio, durante la stampa).
Imposta 'tabstop' e 'shiftwidth' su quello che preferisci e usa 'expandtab'. In questo modo inserirai sempre spazi. La formattazione non verrà mai incasinata quando si cambia 'tabstop'.
Imposta 'tabstop' e 'shiftwidth' su quello che preferisci e usa una | modeline | per impostare questi valori quando si modifica nuovamente il file. Funziona solo quando si utilizza Vim per modificare il file.
Impostare sempre "tabstop" e "shiftwidth" sullo stesso valore e "noexpandtab". Questo dovrebbe quindi funzionare (solo per i rientri iniziali) per qualsiasi impostazione di tabstop utilizzata dalle persone. Tuttavia, potrebbe essere utile avere schede dopo il primo non vuoto inserite come spazi. Altrimenti i commenti allineati saranno errati quando si cambia 'tabstop'.
Fonte:
:help tabstop
:help tabstop
in vim.
Un'altra cosa, usa
:retab
per convertire esistenti tab
in spaces
http://vim.wikia.com/wiki/Converting_tabs_to_spaces
:set sw=4
Aggiungi riga
set ts=4
nel
~/.vimrc
file per utente
o
/etc/vimrc
file per tutto il sistema
Il mio ~ / .vimrc di base con commento:
set number " show line number
set tabstop=2 " set display width of tab; 1 tab = x space with
set expandtab " transform tab to x space (x is tabstop)
set autoindent " auto indent; new line with number of space at the beginning same as previous
set shiftwidth=2 " number of space append to lines when type >>
Permanente per tutti gli utenti (quando sei solo sul server):
# echo "set tabstop=4" >> /etc/vim/vimrc
Normalmente su un nuovo server apt-get purge nano mc
e tutti gli altri per risparmiare tempo. Altrimenti ridefinirai l'editor git
, crontab
ecc
F10
in nano
ma faccio sempre qualche trucco con il salvataggio (forse F10
è una soluzione). o non funziona screen
? Non ricordo, lo odio e basta)