vim 在终端屏幕上显示奇怪的字符

vim 在终端屏幕上显示奇怪的字符

所以我刚刚在我的上网本上安装了 ubuntu 并切换到 openbox 窗口管理器。

当我在终端中打开 VIM 并点击j文件顶部或k文件底部时,似乎会出现一些奇怪的 Unicode 字符。请参阅下面的屏幕截图。

这在编辑文件时确实很烦人。它会屏蔽内容,直到我用光标移到它上面。

任何帮助都值得感激。谢谢

vim 奇怪的字符

答案1

这是因为 visual bell 造成的。你可以从 .vimrc 文件中删除或注释掉此行来解决这个问题

`set visualbell`

编辑:

我仍然不知道如何使用 visualbell 而不出现此问题。

答案2

这是一个老问题,但我从 Tilix 换成了 Terminator,也遇到了类似的问题。我的解决方案基于第一个链接中给出的解决方案,但我需要进行一些额外的更改(铃声和其他解决方案对我没有帮助,我需要清除屏幕)。

这被添加到我的 virmc 的末尾。

" Solve extra characters on vim screens in terminator in Linux
" Enable different cursors based on the mode from
" https://github.com/mjedmonds/dotfiles/commit/41c1d4639d7b2b047d260602f27a80695cf73f9c
" Information on cursors to complete it from
" https://vim.fandom.com/wiki/Change_cursor_shape_in_different_modes"

if has("autocmd")
  au BufNewFile,VimEnter,BufEnter,InsertLeave * 
    \ silent execute '!echo -ne "\e[2 q"' | redraw!
  au InsertEnter,InsertChange *
    \ if v:insertmode == 'i' | 
    \   silent execute '!echo -ne "\e[6 q"' | redraw! |
    \ elseif v:insertmode == 'r' |
    \   silent execute '!echo -ne "\e[4 q"' | redraw! |
    \ endif
  au VimLeave * silent execute '!echo -ne "\e[ q"' | redraw!
endif

let &t_SI = "\<Esc>P\<Esc>\<Esc>]50;CursorShape=1\x7\<Esc>\\"
let &t_SR = "\<Esc>P\<Esc>\<Esc>]50;CursorShape=2\x7\<Esc>\\"
let &t_EI = "\<Esc>P\<Esc>\<Esc>]50;CursorShape=2\x7\<Esc>\\"

相关内容