我需要通过 vim 删除/复制如下所示的函数,包括函数声明 (function foo())。我尝试了类似 da{ 的建议,但无法删除/复制“function foo()”部分。
function foo() {
//can be a blank line here
console.log("Hello"); //cursor is at here
//...some other code
return a;
}
答案1
只要{
与定义本身在同一行function
,就可以强制逐行运动(:help o_V
):dVa{
默认情况下,[m
motion 使用{ ... }
搜索,因此在单独一行上定义函数也无济于事。但有些文件类型会重载它(或 motion [[
,例如 Vimscript 文件类型 for :function
... :endfunction
),然后]Md[m
就可以正常工作。
另一个(逃避)答案是视觉模式,您可以逐步优化选择以覆盖您想要的内容(例如,Va{ok
包括上方的线条{
)。但这当然通常需要大量击键 :-(
像我的插件CountJump 插件或者textobj-用户插件让您定义自己的动作和文本对象。因此,只需进行少量自定义工作,您就可以定义自己需要的内容,将其分配给几个键,然后像使用内置键一样使用。