Ngăn Vim xóa thiết bị đầu cuối sau khi thoát


15

Nếu tôi làm:

$ less file

Và nhấn qđể thoát less, tôi vẫn thấy văn bản giống như trên màn hình khi tôi lessvẫn đang chạy.

Tuy nhiên, nếu tôi làm

$ vim file

:q, thiết bị đầu cuối của tôi bị trống ...

Ảnh chụp màn hình của thiết bị đầu cuối của tôi sau khi thoát lessvim:

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Tôi có thể bằng cách nào đó ngăn chặn điều này? Điều này chỉ có trên hệ thống Linux của tôi. Hệ thống FreeBSD tôi thực sự hoạt động như mong đợi (sử dụng cùng một phần mềm / cài đặt tất cả các xung quanh, TERMxterm-colorcho cả hai, vim -u NONEkhông tạo sự khác biệt).

Ví dụ về những gì tôi muốn có:

nhập mô tả hình ảnh ở đây

Câu trả lời:


18

Theo mặc định, VIM, khi kết thúc, sẽ gửi chuỗi được cấu hình với tùy chọn t_teđến thiết bị đầu cuối lưu trữ để báo cho nó xóa màn hình. Để tránh nó chỉ cần :set t_te=gửi không có gì đến thiết bị đầu cuối và tránh xóa màn hình. Xem :help termthêm thông tin về khả năng của thiết bị đầu cuối.


2

Khi bạn đang sử dụng xterm, bạn có thể sử dụng bộ đệm màn hình chính và thay thế của nó để hoán đổi màn hình, như trong phần này từ .vimrc của tôi

if &term == "linux"
    set t_ti=^[[?1049h
    set t_te=^[[?1049l
endif                                                       

Lưu ý: không phải^[ là văn bản bằng chữ, nó là ký tự thoát, sử dụng + theo sau để chèn nó.CtrlvEsc

Các lệnh vim này thêm các lệnh có liên quan có thể thiếu từ mục nhập terminfo linux. Thêm thông tin tại

:help xterm-screens

Hừm, dường như vẫn không làm gì cả? Nó hoạt động như thể tôi sử dụng set t_te=, nhưng tôi nghĩ nó phải làm nhiều hơn thế?
Martin Tournoij
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.