Closed Ro5bert closed 3 years ago
@Ro5bert It would be most beneficial for all the users of vis if you shared in detail how exactly you solved this issue.
@Strahinja The issue was with my terminal, not with vis. Vis uses the fixterms terminal key encodings, which specifies that Home (resp., End) should be encoded as \033[7~
(resp., \033[8~
) or \033[H
(resp., \033[F
). If your terminal does not use one of these encodings, you'll need to change it somehow. For st users, it suffices to change the appropriate entries of the key
table in config.h
and the khome
and kend
capabilities in st.info
(see terminfo(5)).
Incidentally, the default st fails to be fixterms-compatible for other reasons. There is a patch that tries to add fixterms support, but I found it to be buggy/incomplete; in particular, it does not handle modified non-Latin1 Unicode correctly, which requires changes beyond editing the key
table. As such, I pretty much rewrote all of st keyboard input handling. My fork of st is now quite different from the original st, but if you (or anyone reading this) happens to use st, let me know and I could dig through git history and try to produce a patch that will apply to the default st.
I ran into this issue in my custom musl-based distro, but running in a text console (tty). It is using netbsd-curses as well.
@Strahinja I also have this issue in the linux tty, but it doesn't bother me much, so I haven't fixed it there. You could probably fix it by making a fixterms-compatible console keymap and loading it with loadkeys(1) (see keymaps(5)).
Yes, that would probably be the way of solving this in tty.
Interestingly enough, I don't have this issue in st + tmux in Artix Linux. I use TERM=tmux-256color
, and patches I have applied so far include:
glyph-truncation-fix
from Luke Smithst-alpha-0.8.2
st-anysize-0.8.4
st-boxdraw_v2-0.8.3
st-clipboard-0.8.3
st-disable-bold-italic-fonts
st-externalpipe-0.8.4
st-font2-20190416-ba72400
st-vertcenter-20180320-6ac8c8a
st-w3m-0.8.3
I can enter, for example, Cyrillic text in vis under tmux + st in X.Org without problems and pressing Home and End in both insert and normal modes positions the cursor to the beginning and end of line respectively. I also tested without tmux (just st under X.Org), with the same result. I use bare X.Org without any DE or DM, started from getty with startx
in $HOME/.profile
.
That's strange. libtermkey claims to "follow[] terminfo for every sequence listed there, only falling back on other methods to deal with unrecognised input", meaning it should find the correct Home/End sequences regardless of whether the terminal in use claims to be fully fixterms-compatible, so maybe this is actually a bug in libtermkey.
In tmux running in gnome terminal (TERM="screen-256color"), my home and end keys seem to generate
\033[1~
and\033[4~
, respectively. In this case, both home and end do nothing in normal mode, and they write<Find>
and<Select>
in insert mode.In xterm (TERM="xterm"), my home and end keys generate
\033[H
and\033[F
, and they work as expected in vis.Is this an issue on my end? Or is this an issue with vis? My home and end keys work fine in other contexts, including in nvim.