终端中的Vim UTF8字符

终端中的Vim UTF8字符,vim,terminal,Vim,Terminal,所以我正在终端vim中编辑一个UTF8文件,当我按下导航键时,突然出现了这些奇怪的字符。因此,所附的图像显示,从文件末尾向上移动后,一个这样的字符被打印到屏幕上。这些家伙只是打印出来的,但从未保存到缓冲区。当该行移出视图后又返回时,字符不会再次打印。这是一个完全随机的事件,似乎从未在同一地点发生过。一个例外是,我在文件的末尾,碰巧反复按下向下键 编辑:新图像用于:设置术语=cons25 当Vim对从终端仿真器接收到的按键感到困惑时,这些转义字符就会出现。箭头键作为Escape接收,后跟从a到D

所以我正在终端vim中编辑一个UTF8文件,当我按下导航键时,突然出现了这些奇怪的字符。因此,所附的图像显示,从文件末尾向上移动后,一个这样的字符被打印到屏幕上。这些家伙只是打印出来的,但从未保存到缓冲区。当该行移出视图后又返回时,字符不会再次打印。这是一个完全随机的事件,似乎从未在同一地点发生过。一个例外是,我在文件的末尾,碰巧反复按下向下键

编辑:新图像用于
:设置术语=cons25


当Vim对从终端仿真器接收到的按键感到困惑时,这些转义字符就会出现。箭头键作为
Escape
接收,后跟从
a
D
的字符:

  • ^]0A
  • ^]0B
  • ^]0C
  • ^]0D
编辑UTF-8文件与您的问题无关

以下是我的
/.vimrc
中解决该问题的内容:

nnoremap <Esc>A <up>
nnoremap <Esc>B <down>
nnoremap <Esc>C <right>
nnoremap <Esc>D <left>
inoremap <Esc>A <up>
inoremap <Esc>B <down>
inoremap <Esc>C <right>
inoremap <Esc>D <left>
nnoremap A
nnoremap B
nnoremap C
nnoremap D
重新映射A
inoremap B
inoremap C
重新映射

我不知道有更好的解决方案。

当Vim对从终端仿真器接收到的按键感到困惑时,会出现这些转义字符。箭头键作为
Escape
接收,后跟从
a
D
的字符:

  • ^]0A
  • ^]0B
  • ^]0C
  • ^]0D
编辑UTF-8文件与您的问题无关

以下是我的
/.vimrc
中解决该问题的内容:

nnoremap <Esc>A <up>
nnoremap <Esc>B <down>
nnoremap <Esc>C <right>
nnoremap <Esc>D <left>
inoremap <Esc>A <up>
inoremap <Esc>B <down>
inoremap <Esc>C <right>
inoremap <Esc>D <left>
nnoremap A
nnoremap B
nnoremap C
nnoremap D
重新映射A
inoremap B
inoremap C
重新映射


我不知道有更好的解决方案。

您的术语变量设置为什么?您使用的是
hjkl
导航还是箭头键?我使用的是xterm,箭头键给出这些字符,而
hjkl
键打印字母。
echo$TERM
。你是本地的还是远程的?当箭头键发送的控制代码与术语设置不符时,会发生这种情况。IE您正在设置一个术语
xterm
,但遥控器无法理解。在vim中尝试
:set term=cons25
,看看这是否修复了itI是否同时执行了
echo$term
:set term
,两者都表示我正在使用xterm。我在我的本地机器上。不,这会使问题恶化。我给这个问题贴了一张新图片。你的术语变量设置为什么?您使用的是
hjkl
导航还是箭头键?我使用的是xterm,箭头键给出这些字符,而
hjkl
键打印字母。
echo$TERM
。你是本地的还是远程的?当箭头键发送的控制代码与术语设置不符时,会发生这种情况。IE您正在设置一个术语
xterm
,但遥控器无法理解。在vim中尝试
:set term=cons25
,看看这是否修复了itI是否同时执行了
echo$term
:set term
,两者都表示我正在使用xterm。我在我的本地机器上。不,这会使问题恶化。我给这个问题贴上了一张新的图片。我同意你所说的,但我不明白的是为什么会突然开始。我以前从未遇到过这种情况。至于突然之间,您是否对软件进行了任何更改/更新?你有一个.vimrc文件吗?是的,我有一个.vimrc文件。我最近的更改是状态行的一些内容。对于这个答案,我对vim如何导航感到困惑,但却误解了关键点。如果我按下
j
并移动,那么在某个点上它可以读取输入,但不能对其进行操作。我假设它打印到屏幕上,并在执行某些操作时清除?还原您的最新更改是否有任何帮助?另外,你的git分支效率很低:statusline每秒更新很多次,所以你的系统调用也每秒执行很多次。是的,这就是问题所在。我猜它在状态栏上的更新太多了。我同意你说的,但我不明白为什么会突然开始。我以前从未遇到过这种情况。至于突然之间,您是否对软件进行了任何更改/更新?你有一个.vimrc文件吗?是的,我有一个.vimrc文件。我最近的更改是状态行的一些内容。对于这个答案,我对vim如何导航感到困惑,但却误解了关键点。如果我按下
j
并移动,那么在某个点上它可以读取输入,但不能对其进行操作。我假设它打印到屏幕上,并在执行某些操作时清除?还原您的最新更改是否有任何帮助?另外,你的git分支效率很低:statusline每秒更新很多次,所以你的系统调用也每秒执行很多次。是的,这就是问题所在。我猜状态栏上的更新太多了。