我想将一个命令应用于当前段落,但我想自动化它,所以我不需要事先在视觉上选择/标记段落。
我想要像
这样的东西:{,}s/this isn't/important/g
指定要应用's'(在本例中)的范围。
最终我想使用范围接受命令来重新格式化段落。
有谁知道怎么做?我缺少一种更好的方法吗?
答案 0 :(得分:6)
:'{,'}s/this isn't/important/g
请参阅:
:h '{
答案 1 :(得分:2)
如果您要排除段落周围的第一行和最后一行空行(就像文本对象“ v_ip”一样),则可以使用以下方法:
:'{+1,'}-1
对于:sort之类的东西,这不会将最后一行添加到顶部。我使用此映射按长度对当前段落进行排序:
nn <leader>s mx:'{+1,'}-1!awk '{print length(), $0\|"sort -n"}'\|cut -d' ' -f2-<cr>`x
答案 2 :(得分:1)
在Vim中存在Text object selection,p
表示段落。
要以可视模式选择段落,例如,要对其应用其他命令,请使用vip
或vap