Può VIM essere fatto per espandersi solo schede a sinistra del testo?
-
18-09-2019 - |
Domanda
Utilizzando vim, vorrei efficace, sono expandtabs
fuori se io sono a sinistra del testo sulla linea e su se sto a destra di qualsiasi carattere non di spaziatura. (Vorrei utilizzare schede per il rientro e spazi per l'allineamento.)
si può fare?
Soluzione
Sì. Utilizzare il rel="nofollow plug-smart Tabs .
Questo script consente di utilizzare le impostazioni della scheda normali per l'inizio della linea, e hanno le schede espansi come spazi in qualsiasi altro luogo. Questo distingue in modo efficace 'trattino' da 'allineamento'.
<tab>
Utilizza le impostazioni scheda Editor per inserire una scheda all'inizio della riga (prima del primo carattere non-spazio), e inserisce spazi altrimenti.
<BS>
Utilizza impostazioni della scheda editor per eliminare le schede o schede 'espanso' Ala smarttab
Per rendere Vim in fila gli argomenti delle funzioni, aggiungere
set cindent
set cinoptions=(0,u0,U0
per .vimrc
. Il plugin codificherà gli spazi in quanto tale:
int f(int x,
......int y) {
--->return g(x,
--->.........y);
}
Questo rende l'allineamento di "x
" e "y
" indipendente dalla dimensione scheda (tabstop
).
Altri suggerimenti
Provare qualcosa di simile a questo:
function! TabMaybeIndent()
if strpart(getline('.'), 0, col('.') - 1) =~ '^\s*$'
return "\<Tab>"
else
return " "
endif
endfunction
set noexpandtab
imap <Tab> <C-r>=TabMaybeIndent()<CR>