0

我的 vimrc 中有这个函数可以跳转到该行的第一个非空白字符:

function! SmartHome()
  let s:col = col(".")
  normal! ^
  if s:col == col(".")
    normal! 0
  endif
endfunction

这在 tmux 会话之外运行良好。但是在 tmux 会话中,它只会跳转到该行的第一个字符——这是错误的!

我以这种方式映射了这个函数:

" smart home function
nnoremap <silent> <Home> :call SmartHome()<CR>
inoremap <silent> <Home> <C-O>:call SmartHome()<CR>

我该如何解决这个问题?

4

1 回答 1

0

我可以通过从我的 .bashrc 文件中删除以下行来解决这个问题

export TERM=xterm-256color

这是因为 xterm 和来自 tmux 的屏幕“喜欢”协议不会发送/期望 HOME 键的相同值:

$ tput -T screen khome | xxd
0000000: 1b5b 317e                                .[1~
$ tput -T xterm khome | xxd
0000000: 1b4f 48                                  .OH
于 2013-07-25T07:03:40.597 回答