Skip to content

Vi Normal movement key rebind break the visual/select mode. #1007

Description

@Thomot512
Platform and Terminal

fastfetch
                  -`                     ***@***
                 .o+`                    ------------------------
                `ooo/                    OS: Arch Linux x86_64
               `+oooo:                   Kernel: Linux 6.18.5-arch1-1
              `+oooooo:                  Uptime: 5 hours
              -+oooooo+:                 Packages: 1591 (pacman), 5 (flatpak-system), 10 (flatpak-user)
            `/:-:++oooo+:                Shell: nushell 0.109.1
           `/++++/+++++++:               Display (LC49G95T): 5120x1440 in 49", 240 Hz [External]
          `/++++++++++++++:              DE: COSMIC 1.0.0
         `/+++ooooooooooooo/`            WM: cosmic-comp (Wayland)
        ./ooosssso++osssssso+`           Cursor: Adwaita
       .oossssso-````/ossssss+`          Terminal: cosmic-term 0.1.0
      -osssssso.      :ssssssso.         Terminal Font: Noto Sans Mono (14px)
     :osssssss/        osssso+++.        CPU: AMD Ryzen 5 7600X (12) @ 5.46 GHz
    /ossssssss/        +ssssooo/-        GPU 1: AMD Radeon RX 7900 XTX [Discrete]
  `/ossssso+/:-        -:/+osssso+-      GPU 2: AMD Raphael [Integrated]
 `+sso+:-`                 `.-/+oso:     Memory: 12.96 GiB / 30.50 GiB (42%)
`++:.                           `-/+/    Swap: 20.00 KiB / 15.25 GiB (0%)
.`                                 `/    Disk (/): 57.02 GiB / 97.87 GiB (58%) - ext4
                                         Disk (/home): 478.00 GiB / 1.69 TiB (28%) - ext4
                                         Disk (/run/media/***/***): 43.93 MiB / 14.70 GiB (0%) - vfat [External]
                                         Local IP (eno1): ***.***.***.***/24
                                         Locale: en_US.UTF-8


When rebinding the vi-normal mode movement keys (hjkl) to (ijkl), the "visual mode" does not work anymore.
Indeed pressing v and then moving left and right does not select anymore.

Steps to reproduce

In your config.nu, use these keybindings.

Keybindings

$env.config.keybindings ++= [{
  name: Vi_Insert
  modifier: none
  keycode: char_h
  mode: vi_normal
  event: {
    send: vichangemode
    mode: insert
  }
}]
$env.config.keybindings ++= [{
  name: Vi_Insert_Line_Start
  modifier: shift
  keycode: char_h
  mode: vi_normal
  event: [{
    edit: movetolinestart
  }
  {
    send: vichangemode
    mode: insert
  }]
}]
$env.config.keybindings ++= [{
  name: moveUp
  modifier: none
  keycode: char_i
  mode: vi_normal
  event: {
    send: up
  }
}]
$env.config.keybindings ++= [{
  name: moveDown
  modifier: none
  keycode: char_k
  mode: vi_normal
  event: {
    send: down
  }
}]
$env.config.keybindings ++= [{
  name: moveLeft
  modifier: none
  keycode: char_j
  mode: vi_normal
  event: {
    edit: moveleft
  }
}]
$env.config.keybindings ++= [{
  name: moveRight
  modifier: none
  keycode: char_l
  mode: vi_normal
  event: {
    edit: moveright
  }
}]

I went through the docs and did not find anything about v or the visual mode.
By the way, the ViChangeMode mode: insert was also something I had to guess. I also did not find it in the docs.

Am I missing something?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions