vim 可以将折叠部分视为运动吗?

vim 可以将折叠部分视为运动吗?

我在文本文档中有一个折叠部分。我可以使用折叠作为运动w/W在 vim 中,单词或 WORD 是用?表示的动作。

例如daw删除围绕一个词, 所以

This is a |t|est

如果我运行该命令,光标位于||, 模式中,则将变成normaldaw

This is |a|

我可以用折叠部分来做这个吗(使用foldmethod=marker和 latex 代码)

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

之后折叠运动foldmethod将被删除。在其他模式下是否也可以这样做?

对于我的问题,我知道我可以折叠该部分然后删除“线”,但我想知道折叠本身是否可以被视为一种动作。

答案1

我不知道 Vim 中是否有这样的功能。但是可以使用[z]z跳转到折叠的开头和结尾。

这似乎可以解决问题:

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

iw你可以像朋友一样使用它:

ciz
diz
viz
yiz

答案2

看看vim-textobj-fold插件。它提供了用于折叠的文本对象,我认为这正是您所要求的。

答案3

因为我觉得它很有用,所以将其链接到这里:

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>

这将为您提供ifaf,其工作方式类似于ipap

相关内容