美文网首页
删除一个函数

删除一个函数

作者: sweetBoy_9126 | 来源:发表于2022-08-19 21:08 被阅读0次

%

匹配括号,适用于[]{}() 等
使用前提:当前光标必须在括号上,比如当前光标在 (,按 %光标就会定位到 ),也就是说会在当前光标的括号基础上匹配它的结束括号

vim-indent-object

基于缩进

ii

当光标在函数体内或对象内,选中的是函数内内容或对象内的内容
示例1:

function a()  {
  const b = 1
  if (b > 1) {
    console.log(111)
  }
}

光标在 a 函数内,使用 vii 选中函数体内部
注意如果光标在 if语句内部使用 vii 选中的就是 if 语句内部的代码

示例2:

{
    path: '/',
    name: 'layout',
    component: Layout,
    children: [
      {
        path: 'shop',
          component: ShopAplication
      }
    ]
  },

在光标在大括号内选中大括号内的代码,光标在children 内部的大括号时,选中的是 内部大括号里的代码

ai

选中它的上一层缩进下代码,不包括上一缩进的结束符
示例:

function a()  {
  const b = 1
  if (b > 1) {
    console.log(111)
  }
}

选中的是

function a()  {
  const b = 1
  if (b > 1) {
    console.log(111)
  }

aI

选中它的上一层缩进包括它本身缩进的所有代码
示例:

function a()  {
  const b = 1
  if (b > 1) {
    console.log(111)
  }
}

选中的是

function a()  {
  const b = 1
  if (b > 1) {
    console.log(111)
  }
}

缺陷

  1. 基于缩进,所以光标必须在函数体或者对象内部
  2. 如果光标在最外层,那会把所有同级别的都删掉
    比如:
function a() {
  console.log(1)
}

function b() {
  console.log(2)
}

光标在 function a() { 或者 function b() { 上,就会把这两个函数都选中

删除一个函数的方式

  1. dap
    基于段落,如果函数里有空行,就不起作用

  2. dai
    将 ai 映射成 aI

  • settings.json
    "vim.operatorPendingModeKeyBindings": [
        {
            "before": ["a", "i"],
            "after": ["a", "I"]
        }
    ],
    "vim.visualModeKeyBindings": [
        {
            "before": ["a", "i"],
            "after": ["a", "I"]
        }
    ],

缺陷:上面说过只能把光标放在函数体内部才可以

  1. V$%d
    光标必须在函数最外层上,先用 V 选中这一行,然后把光标移动到这一行的结尾也就是 {,使用 %匹配另一侧的},最后用 d 删掉

改键:

  • settings.json
"vim.normalModeKeyBindings“: [
         {
            "before": ["<Leader>", "d", "f"],
            "after": ["V", "$", "%", "d"]
        },
]

问题:
如果函数里的参数过多换行了,那我们使用一次 V%的话只能匹配到函数参数的括号,所以我们需要再按一次%才可以全选中
比如:

function b(
  name,
  age,
  height
) {
  console.log(123)
}

使用一次 V$% 匹配到

function b(
  name,
  age,
  height
)

相关文章

网友评论

      本文标题:删除一个函数

      本文链接:https://www.haomeiwen.com/subject/ujwugrtx.html