Может ли vim рассматривать сложенную секцию как движение?

У меня есть сложенный раздел в текстовом документе. Могу ли я использовать складку как движение в vim, точно так же, как слово или слово - это движение с w/W?

Например daw удаляет вокруг слова, так

This is a |t|est

с курсором в ||, И в normal режим, если я запускаю команду daw станет

This is |a|

Могу ли я сделать это со сложенным разделом (используя foldmethod=marker и латексный код)?

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

после того, как движение сгиба будет удалено. Возможно ли это в других foldmethod режимы?

Что касается моего вопроса, я знаю, что могу просто сложить секцию, а затем удалить "линию", но мне было интересно, можно ли рассматривать саму складку как движение.

3 ответа

Я не знаю, что такое в Vim. Но можно использовать [z а также ]z прыгать в начало и конец сгиба.

Это, кажется, делает трюк:

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

Вы можете использовать его как iw и друзья:

ciz
diz
viz
yiz

Взгляните на плагин vim-textobj-fold. Он предоставляет текстовые объекты для складывания, что, я думаю, именно то, что вы просите.

Связать это здесь, так как я нашел это полезным:

https://www.reddit.com/r/vim/comments/10cqgd/looking_for_a_languageaware_block_selection/c6cpyrg

Короткий ответ: вы можете сделать это:

" 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>

Это дает вам if а также af, которые работают как ip а также ap,

Другие вопросы по тегам