如何在 vim 中删除/猛拉粘贴并使其正确缩进? (不是说:粘贴)

问题描述 投票:0回答:2
请注意,这

:paste /

:nopaste
和剪贴板无关。 我说的是完全在 vim 中复制和粘贴 (
d
,
y
,
p
)。

将外部块中的代码块复制并粘贴到内部块中是很常见的。 不幸的是,缩进仍然位于外部块的水平,我必须随后缩进它。

我想做的是从:

function foo() { } var bar; var bazz;

function foo() { var bar; var bazz; }

在 vim 中我通常做的是:

1)去排队

2)切换到视觉模式

3)突出显示行

4)

dd

删除行


5) 向上移动光标

6)

P

粘贴


7)进入可视模式

8)突出显示行

9)

>>

缩进行


我希望它自动缩进到正确的位置。 如果我不需要重新突出显示行然后手动缩进,这将是一个更加顺畅的工作流程。 换句话说,消除步骤 7-9。

有人知道有什么方法可以做到这一点吗?

vim auto-indent
2个回答
5
投票

例如,

nnoremap gp p`[v`]=

细分:

p to paste text `[v`] to select pasted text = to autoindent selected text



2
投票

https://github.com/sickill/vim-pasta

看起来它与上面提到的 ronakg 做同样的事情,但有一些附加功能。

© www.soinside.com 2019 - 2024. All rights reserved.