Câu hỏi Tại sao các mũi tên lên / xuống không hoạt động khi thực hiện lệnh shell: từ bên trong Gvim?


Vấn đề này chỉ xảy ra trong Gvim. Nó không xảy ra trong phiên bản console của vim. Tôi đang chạy Gvim 7.2.245 trên máy Ubuntu 9.10.

Sau khi mở Gvim, tôi có thể gõ: sh và đến dấu nhắc trình bao. Sau đó tôi có thể thực hiện một lệnh (ví dụ: ls). Tuy nhiên, nếu tôi muốn thực hiện lệnh đó một lần nữa bằng cách nhấn phím mũi tên "lên", tôi có thể bị xáo trộn một chút giống như một số nhị phân và sau đó là chữ "ku". Tương tự, nhấn mũi tên "xuống" cho cùng một kết quả theo sau là các chữ "kd".

Nếu tôi nhấn ESC sau đó một trong các phím mũi tên, tôi CHỈ nhận được các chữ cái (ví dụ "ku") mà không có nhị phân bị cắt xén.

Có lẽ vấn đề này có liên quan đến text-terminal và vim cursor-keys hay cái gì đó. Có ai có câu trả lời cho nó không?


1
2017-12-09 03:48


gốc




Các câu trả lời:


Nó có thể đã làm với thực tế là mô phỏng thiết bị đầu cuối của vim không có hỗ trợ readline. Đường dây đọc là gì, bạn hỏi?

Đây là một chút giới thiệu từ trang web chính:

Thư viện GNU Readline cung cấp một tập hợp các chức năng để sử dụng bởi các ứng dụng cho phép người dùng chỉnh sửa các dòng lệnh khi chúng được nhập. Cả hai chế độ chỉnh sửa Emacs và vi đều có sẵn. Thư viện Readline bao gồm các chức năng bổ sung để duy trì danh sách các dòng lệnh đã nhập trước đó, để gọi lại và có thể chỉnh sửa lại các dòng đó, và thực hiện mở rộng lịch sử giống như csh trên các lệnh trước đó.

Readline là những gì cho phép bạn sử dụng các phím mũi tên để thay đổi văn bản trước khi bạn thực hiện nó trên thiết bị đầu cuối, ví dụ. Vì vậy, hành vi bạn mô tả là hoàn toàn bình thường.


2
2017-12-09 04:16



Cảm ơn đã phản ứng nhanh chóng. Không biết làm thế nào để cấu hình / xây dựng vim để có hỗ trợ readline? - Chad Braun-Duin
Điều này thực sự chỉ liên quan đến “readline”. Cho dù Gvim cung cấp một mô phỏng đầu cuối cho các tiến trình con là vấn đề thực sự. Tài liệu (:help gui-tty) dường như ngụ ý rằng Chế độ GUI của Vim không cung cấp mô phỏng thiết bị đầu cuối thực tế. Đây không phải là vấn đề khi chạy một Vim dựa trên tty (trong xterm, gnome-terminal, konsole, vv) vì các quy trình con có quyền truy cập vào cùng một trình giả lập thiết bị đầu cuối mà chính Vim sử dụng khi nó hoạt động. - Chris Johnsen