我最近改用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一键删除函数和定义?
答案 0 :(得分:1)
如您所说,da{
从函数内部仅删除花括号及其内容,而没有前面的声明或后面的分号。但是...如果我们切换到逐行...?
:help exclusive-linewise
下有一个半隐藏的部分,标题为粗体,但没有标签可以跳转到:“强制动作为线条,角色或粗俗”,表示我们可以切换到非通过在操作符之后立即使用 v (按字符), V (按行)或 Ctrl-V (按块)进行默认选择。所以...
dVa{
答案 1 :(得分:0)
如您所链接的文章所述,d]]
将光标放在函数定义的开头将删除整个函数。