Uso algo como esto: 1,40 fo
pero creo que no es la forma más eficiente.¿Cuál es su método de plegado favorito (o técnica secreta) en Vim para HTML, Javascript y CSS?
¿Cuál es el tuyo?
Uso algo como esto: 1,40 fo
pero creo que no es la forma más eficiente.¿Cuál es su método de plegado favorito (o técnica secreta) en Vim para HTML, Javascript y CSS?
¿Cuál es el tuyo?
Uso foldmethod=marker
y tengo asignaciones para ingresar <!-- {{{ -->
y <!-- }}} -->
donde quiero que el pliegue comience y termine. Pongo el marcador de inicio en la línea con la etiqueta de bloque de apertura como:
<div id="topmenu"> <!-- {{{ -->
por lo que cuando se dobla inmediatamente me veo cuál es el pliegue contiene sin la necesidad de añadir comentario adicional.
Para CSS es incluso más fácil, solo uso foldmarker={,}
y todas las definiciones se doblan automágicamente mostrándome una lista muy clara de todas las clases, etiquetas e identificadores que puedo abrir cuando los necesito. En realidad todos mis archivos CSS tienen esta línea al final:
/* vim: set fdm=marker fmr={,}: */
También puede seleccionar visualmente la región que desea doblar y presionar zf
si lo prefiere.
Mejor método de plegado para vim para html: use haml instead. La mejor opción para css: use sass instead.
En serio. Lo hacen mucho más compacto.
No es una respuesta a la pregunta, pero son buenas ideas. Por curiosidad, ¿qué es el soporte de resaltado y plegado de sintaxis como en Vim para SASS y HAML? – Jay
¡Hola HAML y SASS lucen geniales! ¿Hay mucha gente usándolos? – alexchenco
Desafortunadamente, no resolverá el problema de edición de archivos escritos por otros autores. – michael
Me tapa entre guión y el marcador con esto en mi vimrc ..
let g:FoldMethod = 0
map <leader>ff :call ToggleFold()<cr>
fun! ToggleFold()
if g:FoldMethod == 0
exe 'set foldmethod=indent'
let g:FoldMethod = 1
else
exe 'set foldmethod=marker'
let g:FoldMethod = 0
endif
endfun
sangría funciona bien para la mayoría html embellecido pero yo uso marcador para la gran mesa plegable de estilo declarativo de los contenidos de los documentos. Dependiendo de quién haya escrito el archivo, uno funcionará mejor que el otro, por lo que necesita acceso rápido a ambos.
Puede hacer eso sin la variable global al marcar 'if & foldmethod == 'marker'' en su lugar. – eswald
He usado foldmethod=ignore
casi exclusivamente. Sin embargo, mi deseo de haber ignorado por defecto líneas al mayor nivel de pliegue de la encima o debajo de las líneas, en lugar de la inferior, inspirado lo siguiente:
" Default foldmethod
" Similar to fdm=indent, but lets blank and comment lines default high.
set fen fdm=expr fdi=
set foldexpr=EswaldFoldLevel(v:lnum)
function! EswaldFoldLevel(lnum)
let ignored = '^\s*\([#/*]\|$\)'
if getline(a:lnum) !~ ignored
" In the general case, just use the indent level.
" It would be nice if it didn't skip several levels...
return indent(a:lnum)/&sw
endif
let previndent = 0
let prevnum = a:lnum - 1
while prevnum > 0
if getline(prevnum) =~ ignored
let prevnum = prevnum - 1
else
let previndent = indent(prevnum)/&sw
break
endif
endwhile
let nextindent = 0
let maxline = line('$')
let nextnum = a:lnum + 1
while nextnum <= maxline
if getline(nextnum) =~ ignored
let nextnum = nextnum + 1
else
let nextindent = indent(nextnum)/&sw
break
endif
endwhile
return max([previndent, nextindent])
endfunction
(Perdón por el resaltado de sintaxis ...)
Lo uso como un complemento personalizado, dejando que los tipos de archivos individuales lo anulen. Python, por ejemplo, no quiere ver las líneas anteriores, solo las siguientes.
Eso suena bien, ¿cómo estableciste diferentes marcadores para tanto HTML y CSS? – alexchenco
Foldmarkers son diferentes ya que mantengo HTML y CSS estrictamente en archivos separados. –
/* vim: set fdm = marcador fmr = {,}: */<--- ¿esto llama al método de plegado de Vim solo para el archivo CSS individual con esta línea? – alexchenco