Выделение (и удаление) всей функции с определением (включая пробелы) в Vim - PullRequest
0 голосов
/ 26 декабря 2018

Я недавно переключился на использование Vim (с VSCode) в качестве редактора.

Я пытаюсь удалить функцию с ее определением в JavaScript.Я посмотрел на Google и здесь, на StackOverflow и нашел этот вопрос .К сожалению, ответы на этот вопрос работают только для функций без пробелов.

Вот как выглядит моя функция:

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 голосов
/ 28 декабря 2018

Внутри функции, как вы говорите, da{ удаляет только фигурные скобки и их содержимое, без предшествующего объявления или следующей точки с запятой.Однако ... если мы переключимся на linewise ...?

Есть полускрытый раздел под :help exclusive-linewise с жирным заголовком, но без тега, к которому можно было бы перейти:CHARACTERWISE ИЛИ BLOCKWISE ", говоря, что мы можем переключиться на выбор не по умолчанию, используя v (по символам), V (по аналогии) или Ctrl-V (по блокам) сразу после оператора.Итак ...

dVa{
0 голосов
/ 26 декабря 2018

Как упоминалось в сообщении, на которое вы ссылались, d]], когда курсор находится в начале определения функции, удалит всю функцию.

...