Làm cho trường hợp hoàn thành tab của bash không nhạy cảm [trùng lặp]


40

Có thể trùng lặp:
Hoàn thành tab không phân biệt chữ hoa chữ thường trong Bash

Có cách nào để hoàn thành tab trong bash case không nhạy cảm không? Chẳng hạn, nếu tôi có một tệp được gọi Hello.txtvà cố gắng hoàn thành tab bằng cách gõ hetheo sau Tabthì nó sẽ không hoạt động. Tôi sẽ phải hoàn thành tab bằng cách gõ He(lưu ý viết hoa H) và Tab. Có cách nào để thiết lập bash để tôi không phải bảo vệ trường hợp khi tôi nhập nó và cố gắng hoàn thành tab không?


Tôi rất vui khi biết rằng điều này hoạt động trên Linux, vì câu hỏi khác là dành riêng cho OSX, @sathya
earthmeLon

Câu trả lời:


55

Tạo một tệp có tên .inputrctrong thư mục nhà của bạn và đặt dòng này trong đó:

set completion-ignore-case on

Sau đó mở một vỏ mới và thử nó. Nếu / etc / inputrc tồn tại trên hệ thống của bạn, bạn thường nên thêm dòng $include /etc/inputrc. Nhưng không có cách nào để tạo điều kiện này, vì vậy bạn chỉ nên thêm nó nếu tập tin đó tồn tại.


14
Điều này sẽ ngăn bash đọc các mặc định từ /etc/inputrc, phá vỡ mọi thứ như điều hướng với ctrl-left / right. Hãy chắc chắn để thêm $include /etc/inputrcvào của bạn ~/.inputrc.
Nicolas Marchildon

1
Bạn cũng có thể sử dụng bind -f ~ / .inputrc để tải lại thay đổi này.
giám mục

2
Tôi sẽ kết hợp bình luận @NicolasMarchildon vào câu trả lời, bởi vì nó nên ở đó
theEpsilon

Kỳ lạ thay, nó không làm việc cho tôi. Đây là của tôi ~/.inputrc: pastebin.com/WVQmrNZu
Alexey Petrenko

@AlexeyPetrenko Điều đó có vẻ ổn với tôi. Có bất kỳ nhân vật vô hình trong tập tin làm rối tung mọi thứ? Hãy thử in bằng LC_ALL=C cat -vet ~/.inputrc- bạn sẽ thấy "$" ở cuối mỗi dòng, nhưng không có gì khác buồn cười. Ngoài ra, hãy thử bind -vvà xem những gì nó hiển thị cho completion-ignore-casebiến. Cuối cùng, có một cái gì đó trong một tệp init shell khác có thể thay đổi nó không?
Gordon Davisson
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.