There is a bug in neovim which means that mapping the keys ^, |, and _ do not work in raw xterm (except when in tmux).
neovim/neovim#18941
neovim/neovim#20190
neovim/neovim#21944
The workaround is to map the shifted versions -- e.g. <S-^>.
It might be a good idea to add that workaround under a has('nvim') block.