Pregunta:
Con vimwiki puede plegar encabezados y listas de la siguiente manera:
Ejemplo de encabezados y plegado de listas:
= My current task =
* [ ] Do stuff 1
* [ ] Do substuff 1.1
* [ ] Do substuff 1.2
* [ ] Do substuff 1.2.1
* [ ] Do substuff 1.2.2
* [ ] Do substuff 1.3
* [ ] Do stuff 2
* [ ] Do stuff 3
Pulse zM :
= My current task = [8] --------------------------------------
Pulse zr :
= My current task =
* [ ] Do stuff 1 [5] --------------------------------------
* [ ] Do stuff 2
* [ ] Do stuff 3
Pulsa zr una vez más:
= My current task =
* [ ] Do stuff 1
* [ ] Do substuff 1.1
* [ ] Do substuff 1.2 [2] -------------------------------
* [ ] Do substuff 1.3
* [ ] Do stuff 2
* [ ] Do stuff 3
El plegado de encabezado ( = Header =
) funciona para mí, pero el plegado de lista ( * [ ] list
) no.
Vimwiki dice esto sobre el plegado de listas, pero no entiendo qué significa exactamente:
NOTA: Si usa la sintaxis predeterminada de vimwiki, plegar los elementos de la lista funcionará correctamente solo si todos están sangrados con el ancho de turno actual. Para MediaWiki,
*
o#
deben estar en la primera columna.
Mi vimrc es el siguiente:
call vundle#begin()
Plugin 'vimwiki'
call vundle#end()
set nocompatible
filetype plugin on
syntax on
set foldmethod=syntax
Respuesta:
Listas plegables en VimWiki
De acuerdo con la documentación en vimwiki versión 2.1 (la última que encontré), hay algunos métodos de plegado, y de ellos solo uno funciona para plegar elementos de lista.
La configuración está en la variable g:vimwiki_folding
. from :help g:vimwiki_folding
:
Habilita / deshabilita la funcionalidad de plegado (contorno) de vimwiki. El plegado en vimwiki puede utilizar el método de plegado 'expr' o el método de plegado de 'sintaxis' de Vim.
Value Description '' Disable folding. 'expr' Folding based on expression (folds sections and code blocks). 'syntax' Folding based on syntax (folds sections; slower than 'expr'). 'list' Folding based on expression (folds list subitems; much slower).
Predeterminado:
''
Dado que su vimrc está configurando foldmethod=syntax
explícitamente, y no menciona la configuración g:vimwiki_folding
, supongo que está obteniendo la configuración de sintaxis, que solo admite secciones.
Agregar
let g:vimwiki_folding='list'
a su vimrc y debería funcionar.
También puede ejecutar ese comando y luego volver a abrir el archivo (por ejemplo, con ': e') y observar el trabajo de plegado.
Ancho de cambio
También preguntaste sobre la sangría del ancho de turno. En Vim, el shiftwidth
se utiliza en comandos de cambio y sangría automática (por ejemplo, >>
). El valor predeterminado es 8 y es igual al tabstop
. Si no se mete con esa configuración, estará bien con sus listas con sangría.
Si los cambia pero no los tiene iguales, estará bien siempre que su lista tenga sangría con >>
y <<
, o los comandos glm
y gll
específicos de VimWiki, que usan la configuración de shiftwidth
y así sería compatible con el plegado.