vim将ex范围设置为当前段落,无视觉/标记等

vim将ex范围设置为当前段落,无视觉/标记等,vim,Vim,我想对当前段落应用一个命令,但我想将其自动化,这样我就不需要在手边直观地选择/标记段落 我想要像这样的东西 :{,}s/this isn't/important/g 指定要应用“s”(在本例中)的范围 最后,我想使用范围接受命令来重新格式化段落 有人知道怎么做吗?我缺少的是更好的方法吗?它存在于Vim中,Vim的意思是段落 要在视觉模式下选择段落,例如,要对其应用其他命令,请使用vip或vap :'{,'}s/this isn't/important/g 见: 如果要排除段落周围的第一行

我想对当前段落应用一个命令,但我想将其自动化,这样我就不需要在手边直观地选择/标记段落

我想要像这样的东西

:{,}s/this isn't/important/g  
指定要应用“s”(在本例中)的范围

最后,我想使用范围接受命令来重新格式化段落

有人知道怎么做吗?我缺少的是更好的方法吗?

它存在于Vim中,Vim的意思是段落

要在视觉模式下选择段落,例如,要对其应用其他命令,请使用
vip
vap

:'{,'}s/this isn't/important/g
见:


如果要排除段落周围的第一行和最后一行空行,就像文本对象“v_ip”一样,可以使用以下方法:

:'{+1,'}-1
对于类似:sort的内容,这不会将最后一行添加到顶部。我使用此映射按长度对当前段落进行排序:

nn <leader>s mx:'{+1,'}-1!awk '{print length(), $0\|"sort -n"}'\|cut -d' ' -f2-<cr>`x
nn s mx:'{+1'}-1!awk'{print length(),$0\|“sort-n”}'\| cut-d'-f2-`x

是的,这就是我错过的。谢谢。记住,{通常是当前段落之前的空白行,}通常是空白行之后。但是,如果段落位于缓冲区的顶部,“{是第一行。对于像:s///这样的东西,这个差异并不重要;对于像:sort这样的东西,它当然重要。
nn <leader>s mx:'{+1,'}-1!awk '{print length(), $0\|"sort -n"}'\|cut -d' ' -f2-<cr>`x