¿Puedo agregar un delimitador de párrafo personalizado?

8

Los párrafos están delimitados por líneas vacías, tanto en vim como en tex, pero a veces deseo que vim trate a una entidad como un párrafo y no como tex. ¿Puedo, por ejemplo, hacer que vim trate líneas que contienen solo un "%" como delimitador de párrafo?

Toothrot
fuente
1
Vea mi respuesta a una pregunta similar aquí: vi.stackexchange.com/a/6043/4932 también consulte este complemento: github.com/vim-scripts/Improved-paragraph-motion
fruglemonkey
1
El complemento se ve muy interesante, pero recibí un error al cargarlo:Error detected while processing /Users/lawrence/.vim/plugged/Improved-paragraph-motion/plugin/ipmotion.vim: line 50: E492: Not an editor command: ^M line 51: E15: Invalid expression: exists('g:loaded_ipmotion')^M line 145: E171: Missing :endif
Toothrot
1
@fruglemonkey, por lo que puedo entender, el error estaba en el complemento. los mensajes de error desaparecieron después :set ff=unix.
Toothrot
2
El complemento afecta solo} y {movimientos, no objetos de texto.
Toothrot
1
Sí, pero de lo contrario puede crear asignaciones que permitirán que se comporte 'como' un objeto de texto. ¿Por qué quieres un delimitador de párrafo personalizado? ¿Qué acción quieres realizar que requiera una?
fruglemonkey

Respuestas:

2

No se puede hacer de forma nativa %un delimitador pagraph, como macros de párrafo son macros nroff (un punto, dos personajes: .xx)

Sin embargo, puede agregar .%%(o cualquier otra combinación que desee) como delimitador de párrafo al agregarlo, haga la paragraphsopción:

:set paragraphs=IPLPPPQPP\ TPHPLIPpLpItpplpipbp%%

Ver :help paragraph:

A paragraph begins after each empty line, and also at each of a set of
paragraph macros, specified by the pairs of characters in the 'paragraphs'
option.  The default is "IPLPPPQPP TPHPLIPpLpItpplpipbp", which corresponds to
the macros ".IP", ".LP", etc.  (These are nroff macros, so the dot must be in
the first column).  A section boundary is also a paragraph boundary.
Note that a blank line (only containing white space) is NOT a paragraph
boundary.
Also note that this does not include a '{' or '}' in the first column.  When
the '{' flag is in 'cpoptions' then '{' in the first column is used as a
paragraph boundary posix.
Wolfie
fuente