3

У меня есть сложенный раздел в текстовом документе. Могу ли я использовать складку как движение в vim, точно так же, как слово или WORD - это движение с 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 ответа3

5

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

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

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

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

ciz
diz
viz
yiz
1

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

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 .

1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .