O vim pode tratar uma seção dobrada como um movimento?

3

Eu tenho uma seção dobrada em um documento de texto. Posso usar a dobra como um movimento no vim, da mesma forma que uma palavra ou o WORD é um movimento com w/W ?

Por exemplo, daw exclui ao redor de uma palavra , então

This is a |t|est

com o cursor em || e no modo normal se eu executar o comando daw se tornará

This is |a|

Posso fazer isso com uma seção dobrada (usando foldmethod=marker e código de látex) ?

\begin{equa|t|ion}%{{{
a = 10
\end{equation}%}}}

após o fold fold ser deletado. Isso é possível em outros modos foldmethod ?

Para minha pergunta, sei que posso simplesmente dobrar a seção e excluir a "linha", mas eu queria saber se a dobra em si pode ser tratada como um movimento.

    
por Simon Walker 05.04.2013 / 14:04

3 respostas

4

Eu não estou ciente de tal coisa no Vim. Mas pode-se usar [z e ]z para pular para o começo e fim de uma dobra.

Isso parece fazer o truque:

xnoremap iz :<C-U>silent!normal![zV]z<CR>
onoremap iz :normal viz<CR>

Você pode usá-lo como iw e amigos:

ciz
diz
viz
yiz
    
por 05.04.2013 / 15:48
1

Dê uma olhada no plug-in vim-textobj-fold . Ele fornece objetos de texto para dobraduras, o que eu acho que é exatamente o que você está pedindo.

    
por 05.04.2013 / 16:52
1

Vinculando isso aqui desde que achei útil:

link

Resposta curta é que você pode fazer isso:

" Create text objects using [z and ]z
vnoremap if :<C-U>silent!normal![zjV]zk<CR>
onoremap if :normal Vif<CR>
vnoremap af :<C-U>silent!normal![zV]z<CR>
onoremap af :normal Vaf<CR>

Isso lhe dá if e af , que funcionam como ip e ap .

    
por 29.05.2018 / 14:22