efivim
efivim copied to clipboard
Terminal/rendering and swapfile issues
These are the issues I'm currently experiencing:
- The swap file is never deleted. When exiting, even normally with
:q, then re-running vim, it complains as if it crashed.
Terminal/display issues:
- The "recover the file" message is broken (screenshot).
- Once started, only the first lines (around 40% of the terminal rows) are displayed (screenshot). The other ones until the end of the screen are blank/the lines that were previously displayed.
- Arrow keys, pgup/down don't work, HJKL work.
- When scrolling down, everything's fine (kind of). When scrolling back up, only the first line is refreshed.
- The status line works in general, but when switching modes it does not show the current mode.
- In insert mode:
- Return does not add a new line.
- When typing in an existing line, text looks like it's being replaced. However, once saved and reopened, you can see it actually did it right (text is inserted)
- Other than this, typing works fine in general; however, after switching back to normal mode, the last character disappears. After saving, deleting the leftover swap files and reopening, the last character is sometimes replaced with the first character of the line.
- When yanking/pasting, the pasted line is displayed on top of the destination line instead of adding a new line. Once saved and reopened the result is fine.
I also tried visual block mode and it seems working.
Tested both natively and on VirtualBox, the same issues occur.
hi, thanks for your interest.
- swapfiles: no clue whats wrong with them, i never really tried them
- rendering issues: probably incomplete or broken terminal emulation, see
mch_write() - input issues: same thing, no special handling is done for special keys (such as arrows), i just use edk2's read() function - see
mch_inchar()
all of this can be found in vim's system-specific compat shim, i.e. for efivim - https://github.com/mischief/efivim/blob/master/src/efivim.c
if you have a rendering error, you can try spamming control-l or type :redraw.
i would happily accept a patch if you would like to fix any of these problems.
I've got a lot of stuff going on at the moment, I'll see if I can fix some of the issues as soon as I have time.