Как переместить курсор zsh после режима ожидания оператора vi в пользовательском виджете?

Загрузите wireless -regdb 2017.12.23, распакуйте и скопируйте регламент.db и регламент.db.p7s в /lib /прошивка ;

работает нормально....100%

1
28.07.2020, 09:06
1 ответ

Мне кажется, вам придется переопределить виджеты, которые принимают движение, например те, которые привязаны к d, c, y, gu, gU, g~...

Что-то вроде:

test-widget () {
  MARK=3
  CURSOR=6
  MOVE_AFTER_MOTION=2
}
zle -N test-widget
bindkey -M vicmd ' ' test-widget

for widget in vi-{delete,change,yank,{down,oper-swap,up}-case}; do
  $widget () {
    local ret
    zle ".$WIDGET"; ret=$?
    if (($+MOVE_AFTER_MOTION)); then
      (( CURSOR += MOVE_AFTER_MOTION ))
      unset MOVE_AFTER_MOTION
    fi
    return "$ret"
  }
  zle -N $widget
done

Возможно, вам также придется подумать о том, что делать, если $NUMERICне равно 1.

0
18.03.2021, 23:16

Теги

Похожие вопросы