Posso adicionar um delimitador de parágrafo personalizado?

8

Os parágrafos são delimitados por linhas vazias, tanto no vim quanto no tex, mas às vezes desejo que o vim trate uma entidade como um parágrafo e não como tex. Por exemplo, posso fazer com que o vim trate linhas contendo apenas um "%" como delimitador de parágrafo?

Toothrot
fonte
1
Veja a minha resposta a uma pergunta semelhante aqui: vi.stackexchange.com/a/6043/4932 também confira este plugin: github.com/vim-scripts/Improved-paragraph-motion
fruglemonkey
1
O plug-in parece muito interessante, mas recebi um erro ao carregá-lo: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 15/02/16
1
@fruglemonkey, tanto quanto eu posso entender o erro estava no plugin. as mensagens de erro desapareceram depois :set ff=unix.
Toothrot 15/02/16
2
O plugin afeta apenas} e {movimentos, não objetos de texto.
Toothrot 15/02
1
Sim, mas você pode criar mapeamentos que permitirão que ele se comporte como um objeto de texto. Por que você deseja um delimitador de parágrafo personalizado? Que ação você deseja executar que exigiria uma?
Fruglemonkey 15/02/16

Respostas:

2

Você não pode nativamente fazer %um delimitador pagraph, como macros parágrafo são macros nroff (um ponto, dois personagens: .xx)

No entanto, você pode adicionar .%%(ou qualquer outra combinação que desejar) como um delimitador de parágrafo, adicionando-o, faça a paragraphsopção:

:set paragraphs=IPLPPPQPP\ TPHPLIPpLpItpplpipbp%%

Veja :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
fonte