Tmux đang thay đổi một phần nền trong vim


15

Điều này dường như chỉ xảy ra khi sử dụng vim bên trong tmux. Tôi cũng đang sử dụng iTerm 2.

Nếu tôi tạo một khung tmux mới hoặc thay đổi kích thước khung tmux, nó ngay lập tức trông như thế này:

làm rối nền trong vim

Và sau đó, cách duy nhất để khắc phục nó là cuộn xung quanh trong vim, và nó quay trở lại đây:

nền tảng tốt trong vim

Điều gì có thể gây ra điều này?


Điều này xảy ra trong tiêu chuẩn gnome-terminalquá, không có tmux.
wchargein 4/2/2015

Xem phản hồi này để biết một số cảm hứng về cách khắc phục vấn đề này: stackoverflow.com/a/37863269/5153834
Bloodrootfc

Câu trả lời:


19

Bạn có thể thử thêm phần sau vào .vimrc của mình.

if &term =~ '256color'
  " disable Background Color Erase (BCE)
  set t_ut=
endif

Các t_uttùy chọn (mặc định = y) mô tả xử lý như thế nào vim những gì nó muốn như màu nền so với cố gắng sử dụng màu nền hiện tại. Đoạn trích này xóa tùy chọn đó.

Nếu không, sau đó bạn có thể cố gắng để

set ttyfast

đó là một tùy chọn xử lý cách vim vẽ lại màn hình.


2
Đặt tùy chọn t_ut hoạt động!
aharris88 4/2/2015

Điều này đã không làm việc cho tôi. Tôi đã thiết lập ttyfastvà đã thử xóa t_utmà không có hiệu lực. Thiết lập của tôi giống với OP, ngoại trừ việc tôi đang sử dụng termguicolorsbên trong Tmux được định cấu hình để hỗ trợ màu sắc thực. Vim vẽ lộng lẫy bên trong iTerm, nhưng bắt đầu hiển thị sự kỳ lạ trên màn hình như trên khi tôi chạy bên trong Tmux. Hãy cho tôi biết nếu tôi nên mở một câu hỏi mới; Tôi nghĩ rằng tôi sẽ tiếp cận ở đây vì tôi gặp phải vấn đề tương tự.
djmoch

1

Tôi tin rằng điều này có liên quan đến ttyfastvì vậy màn hình không được vẽ lại hoàn toàn. Hãy thử đặt nó thành:

'ttyfast' 'tf'      boolean (default off, on when 'term' is xterm, hpterm,
                    sun-cmd, screen, rxvt, dtterm or
                    iris-ansi; also on when running Vim in
                    a DOS console)
            global
            {not in Vi}
    Indicates a fast terminal connection.  More characters will be sent to
    the screen for redrawing, instead of using insert/delete line
    commands.  Improves smoothness of redrawing when there are multiple
    windows and the terminal does not support a scrolling region.
    Also enables the extra writing of characters at the end of each screen
    line for lines that wrap.  This helps when using copy/paste with the
    mouse in an xterm and other terminals.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.