---- On Sat, 23 Apr 2016 11:52:38 -0500 Ryan Roden-Corrent <r...@rcorre.net> wrote ---- > Hi all, > > On st 0.6 (and HEAD), pressing F5 capitalizes the word under the cursor. > This isn't a huge deal, but it interferes with the vim plugin ctrlp > (https://github.com/ctrlpvim/ctrlp.vim). F5 is supposed to refresh the file > list, but instead it closes the search menu and capitalizes the word under > the > cursor. When you press F5, st encodes it as the sequence ^[[15~, where ^[ indicates the escape key. If that sequence isn't mapped to something in vim, then vim interprets it just as if you'd typed those keys by hand. So ^[[15~ corresponds to 1) hitting escape 2) running the command `[1`, which is invalid and does nothing 3) running the command `5~`, which toggles the case of the next 5 characters.
The issue is most likely a problem with $TERM. Vim doesn't know that ^[[15~ means F5 without being told. That's the purpose of $TERM and terminfo, to tell vim that when it sees ^[[15~, that's the terminal sending F5. So you need to 1) ensure that TERM=st-256color, 2) ensure that st-256color exists in /usr/share/terminfo/s/st256-color or in ~/.terminfo. If you use ssh, they must be on the machines you ssh into as well. If you run `infocmp` and the output says st-256color and kf5=\E[15~, then your terminfo is good. Also `:set termcap` inside vim should show the same thing for t_k5, and `:map` should show <F5> bound to something. Setting TERM=xterm happens to work but it's not proper. It's telling programs that st speaks the same control sequences as xterm, which is not quite correct.