Sử dụng Mosh mà không từ bỏ cuộn / lịch sử địa phương?


63

Có cách nào để sử dụng moshmà không từ bỏ cuộn ngược cục bộ không?

Về cơ bản, trong một số trường hợp, chuyển vùng IP thực sự hữu ích và cần thiết, nhưng việc mô phỏng thiết bị đầu cuối bổ sung và dự đoán khóa dường như chỉ thoát khỏi các dòng bộ đệm cuộn cục bộ và lịch sử phiên.


Câu trả lời:


43

Filippo Valsorda có một giải pháp cho OS X kết hợp iTerm 2, tmux và mosh .

Giải pháp của anh ấy sử dụng một cửa sổ / tab duy nhất để kết nối với một vỏ từ xa. Shell tồn tại ngắt kết nối (ví dụ, lỗi kết nối, thay đổi IP, khởi động lại máy tính xách tay) và hỗ trợ cuộn lại bằng bàn di chuột, sao chép-dán và màu sắc.

Hãy cẩn thận là bạn phải xây dựng mosh từ nguồn, cuộn ít trôi chảy hơn nguồn gốc và kéo chuột được chuyển tiếp, do đó bạn phải giữ Tùy chọn để chọn.

  • iTerm

    Trong cài đặt Cấu hình thiết bị đầu cuối, Bật báo cáo chuột xterm và đặt Loại thiết bị đầu cuối báo cáo thành xterm-256color .

  • tmux

    Đặt ~/.tmux.conftrên máy chủ như sau. Với các cài đặt này, nếu bạn cố gắng đính kèm và không có phiên nào, một phiên mới sẽ được tạo. Các cài đặt cũng cho phép tương tác chuột (và do đó cuộn trên bàn di chuột).

    new-session
    set-window-option -g mode-mouse on
    set -g history-limit 30000
    

    Lưu ý: Trên các tmux gần đây (ví dụ> 2.1), như được báo cáo bởi tmux -V, các tùy chọn chuột khác nhau (ngăn thay đổi kích thước chuột, chế độ chuột, v.v.) đã được viết lại thành một tùy chọn duy nhất mouse, do đó bạn phải thay đổi dòng thứ hai ở trên để set-window-option -gchuộton thay thế.

    Cuộn chuột này cũng sẽ hoạt động khi bạn ở chế độ cuộn bàn phím (ví dụ Ctrl- bsau đó [), được mô tả trong bài viết Cách cuộn trong tmux .

  • mosh

    Bản dựng ổn định của mosh đã cũ và không hỗ trợ báo cáo chuột (và cuộn trên bàn di chuột). Để cài đặt phiên bản mới nhất, hãy làm như sau:

    OS X (khách hàng của bạn)

    brew install --HEAD mobile-shell
    

    Linux / UNIX (máy chủ)

    git clone https://github.com/keithw/mosh.git
    cd mosh/
    sudo apt-get build-dep mosh
    ./autogen.sh && ./configure && make
    sudo make install
    

Bây giờ, để kết nối, chỉ cần gõ như sau:

mosh HOST -- tmux a

5
Đây được coi là hình thức tốt để dán thông tin quan trọng từ liên kết nội tuyến.
HalosGhost

2
mặc dù câu trả lời này đã bị hạ thấp vì lý do kỹ thuật, nhưng đây có lẽ là cách tốt nhất (duy nhất?) để có được cuộn ngược tốt trên máy khách cục bộ bằng mosh.
jayhendren

@jayhendren: hoặc đơn giản là bạn có thể sử dụng Eternal Terminal .
Dan Dascalescu

Không cần phải hạ mình. Nhận xét của tôi là từ năm 2014. Bản phát hành đầu tiên của Eternal Terminal là vào năm 2017.
jayhendren

15

Giả lập thiết bị đầu cuối được nướng khá sâu vào thiết kế của mosh , vì vậy, không. Mosh hoạt động bằng cách có cả máy khách và máy chủ đều duy trì ý tưởng cục bộ của nó về màn hình hiện tại "trông như thế nào" và điều đó đòi hỏi máy chủ phải thực hiện mô phỏng thiết bị đầu cuối. Đây là cách khách hàng có thể làm mới nội dung của màn hình sau khi nó vắng mặt một lúc và mất một số dữ liệu.

Tôi nghĩ rằng một ứng dụng có tính năng chuyển vùng IP của mosh nhưng không có mô phỏng đầu cuối sẽ trở thành một ứng dụng hoàn toàn khác (nhưng đơn giản hơn). Đối với một ứng dụng như vậy, việc mất dữ liệu (bao gồm cả khi máy khách không nối mạng trong một thời gian) sẽ dẫn đến mất hoặc hỏng nội dung màn hình. Đây là một giới hạn có thể chấp nhận nếu người dùng đang sử dụng một ứng dụng trong đó điều này không quan trọng lắm (ví dụ: shell) hoặc một ứng dụng có tính năng sơn lại (ví dụ: visử dụng Control-L).

Tuy nhiên, những người triển khai Mosh đang lên kế hoạch hỗ trợ cuộn lại trong ứng dụng , để bù cho thực tế là thiết bị đầu cuối cục bộ của bạn không thể làm điều đó nữa. Tôi đoán điều này sẽ phải hoạt động giống như screenbộ đệm cuộn ngược lại: được điều khiển bằng tổ hợp phím, không phải thanh cuộn và chuột.


4

Eternal Terminal ( https://mistertea.github.io/EternalTerminal/ ) là một giải pháp thay thế cho Mosh hỗ trợ cuộn ngược gốc và vẫn cho phép chuyển vùng IP. ET không thực hiện dự đoán đánh máy, vì vậy nó có thể không phù hợp nếu bạn có kết nối độ trễ cao (nếu bạn đang sử dụng máy bay không người lái hoặc từ điện thoại di động), nhưng cá nhân tôi làm mọi thứ tôi muốn và hỗ trợ cuộn lại.


điều đó thật tuyệt vời
Soorena

ET là tuyệt vời và cần nhiều sự vận động hơn .
Dan Dascalescu

1

Bỏ chọn "Cuộn màn hình thay thế" trong Terminal-> Preferences-> Profiles-> Bàn phím đã sửa nó cho tôi.


1
Câu trả lời này không có ý nghĩa, bạn thậm chí nhận được một thực đơn như vậy ở đâu?
cnst

3
Cài đặt prefs đó tồn tại, nhưng việc bỏ chọn nó khiến cho cuộn chỉ hoạt động trong cửa sổ cục bộ của tôi, tức là cuộn xuống để xem các dòng có ở đó trước khi tôi sử dụng lệnh mosh. nó không hiển thị cho tôi bất cứ thứ gì đã di chuyển khỏi đầu phiên từ xa.
mARK

2
Đã thử điều này, nhưng nó không cho phép bạn cuộn trong phiên mosh
magodiez
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.