contour-terminal / contour

Modern C++ Terminal Emulator
http://contour-terminal.org/
Apache License 2.0
2.4k stars 103 forks source link

In normal mode copy and open the "$" motion doesn't work. #1441

Closed ferdinandyb closed 3 months ago

ferdinandyb commented 8 months ago

Contour Terminal version

Contour Terminal Emulator 0.4.2-master-f73c3235

Installer source

Github: source code cloned

Operating System

Ubuntu 22.04

Architecture

x86-64

Other Software

No response

Steps to reproduce

Get into normal mode and try to open (o$) or yank (y$) to the end of the line. Note, that I'm on Hungarian keyboard so my $ is accessed via AltGr-é.

Expected Behavior

Copy or open happens.

Actual Behavior

Nothing happens.

Additional notes

The movement itself works, so $ goes to the end of the line.

christianparpart commented 8 months ago

@ferdinandyb would you mind running contour the following way?:

contour debug gui.input,vt.input

Reproduce the above in a most minimal way, then copy'n'paste the debug output in here.

I think it's not necessarily a vi input issue but rather a keyboard layout mapping issue, how characters are received from the GUI and then passed to the backend.

ferdinandyb commented 8 months ago

Here are the logs: https://0x0.st/HD0J.debug

I selected a previous command from history to echo some characters, opened normal mode, went up to the output of the echo and pressed y$. This should be the relevant part:

[2024-02-03 14:30:35.592635171.592634] [gui.input] Key Release event received:  UpArrow
[2024-02-03 14:30:37.467588312.467588] [gui.input] Character Press event received:  'y'
[2024-02-03 14:30:37.467635762.467635] [vt.input] Incomplete input: y
[2024-02-03 14:30:37.568359621.568359] [gui.input] Character Release event received:  'y'
[2024-02-03 14:30:37.574636563.574636] [gui.input] Input not handled for mods  key 0x1001103
[2024-02-03 14:30:37.629425616.629425] [gui.input] Character Press event received:  '$'
[2024-02-03 14:30:37.629484125.629483] [vt.input] Invalid command: y$
[2024-02-03 14:30:37.629497966.629497] [vt.input] Resetting pending input: y$
[2024-02-03 14:30:37.723124675.723124] [gui.input] Input not handled for mods  key 0x1001103
[2024-02-03 14:30:37.740029145.740028] [gui.input] Character Release event received:  '\xc3\xa9'
[2024-02-03 14:30:41.852474124.852473] [gui.input] Character Press event received:  'i'
Yaraslaut commented 7 months ago

So i think that we do not implement this motion in normal mode, you can get same behavior if will switch to visual mode first and then $y, or if you want whole line Shift-v and then y