在Vim中选择(并删除)带有定义(包括空格)的整个函数

时间:2018-12-25 21:40:11

标签: vim visual-studio-code editor

我最近改用Vim(带有VSCode)作为编辑器。

我正在尝试删除JavaScript中具有其定义的函数。我在google上和StackOverflow上的此处查看,发现this question。不幸的是,该问题的答案仅适用于没有空格的函数。

这是我的函数的外观:

const useBattery = () => {
  const [battery, setBattery] = useState({ level: 0, charging: false });
  const handleChange = ({ target: { level, charging } }) => setBattery({ level, charging });

  useEffect(() => {
    let battery;
    navigator.getBattery().then(bat => {
      battery = bat;
      battery.addEventListener("levelchange", handleChange);
      battery.addEventListener("chargingchange", handleChange);
      handleChange({ target: battery });
    });
    return () => {
      battery.removeEventListener("levelchange", handleChange);
      battery.removeEventListener("chargingchange", handleChange);
    };
  }, []);
  return battery;
};

我尝试了几种方法,当光标位于函数中时,最好的方法是da{。此动作将删除函数主体,但不删除定义。

如果函数中有空格,是否可以使用Vim一键删除函数和定义?

2 个答案:

答案 0 :(得分:1)

如您所说,da{从函数内部仅删除花括号及其内容,而没有前面的声明或后面的分号。但是...如果我们切换到逐行...?

:help exclusive-linewise下有一个半隐藏的部分,标题为粗体,但没有标签可以跳转到:“强制动作为线条,角色或粗俗”,表示我们可以切换到非通过在操作符之后立即使用 v (按字符), V (按行)或 Ctrl-V (按块)进行默认选择。所以...

dVa{

答案 1 :(得分:0)

如您所链接的文章所述,d]]将光标放在函数定义的开头将删除整个函数。