2009-09-07 24 views
6

A veces deseo que Vim lea archivos con formato de tabulación cuando el formato más razonable implica un ancho de tabulación no uniforme. En otras palabras, quiero una tabulación en posiciones:Configuración del espaciado de tabulación de ancho variable en Vim

5, 30, 50, 60, 70, 80

¿Cómo se puede hacer esto en Vim?

+0

Hay una función llamada tabstops variables que se ha estado dando vueltas durante mucho tiempo en vim. Simplemente se reincorporó a la rama principal en los últimos días. Lo probé un poco, tuve que parcharlo para evitar algunos errores aritméticos, pero ahora parece bastante estable. Puede que tengas suerte muy pronto. – Cascabel

Respuesta

1

Actualmente no. No con compilaciones oficiales.

Sin embargo, si está dispuesto a invertir un poco de esfuerzo de su lado, recuerdo que había un parche para algo así. Echa un vistazo a la página de parches de vim.

+0

este parche? https://groups.google.com/forum/#!topic/vim_dev/eNOQO06iRZQ –

4

Si realmente no necesita cambiar las pestañas y puede salirse con la suya simplemente insertando el número correcto de espacios, le sugiero que lo script. Aquí hay una versión rápida y sucia que podría hacer lo que quiera:

let s:tabstops = [0, 5, 30, 50, 60, 70, 80] 
fun! Find_next(pos) 
    if a:pos > min(s:tabstops) && a:pos < max(s:tabstops) 
    let my_count = 0 
    while my_count < len(s:tabstops) - 1 
     if a:pos > get(s:tabstops, my_count) && a:pos < get(s:tabstops, my_count+1) 
     return get(s:tabstops, my_count+1) 
     endif 
     let my_count = my_count + 1 
    endwhile 
    return -1 
    endif 
    return -1 
endfun 
fun! Tabbing() 
    let pos = col('.') 
    let next_stop = Find_next(pos) 
    let the_command = "normal i" 
    let my_count = 0 
    while my_count < next_stop - pos 
    let the_command = the_command . " " 
    let my_count = my_count + 1 
    endwhile 
    let the_command = the_command . "" 
    execute the_command 
endfun 
imap <TAB> j<ESC>:call Tabbing()<CR>lxi 
+0

Esta es una gran función, aunque esto no formateará un archivo existente, que es lo que necesitaba, pero ayuda a formatear mi propio archivo en el mosca. – Magnus

Cuestiones relacionadas