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?

È stato utile?

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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top