Hoàn thành tab Bash mở rộng phạm vi ~ ~ thành trò chơi / nhà / ___ khi không làm điều đó trước đây


13

Trước đây, nếu tôi gõ ~/biTab, trước đó, nó sẽ biến thành ~/bin. Tuy nhiên, hôm nay nó bắt đầu biến ~/biTabthành /home/username/bin.

Tôi thà có nó trước đây, nhưng tôi không chắc chuyện gì đã xảy ra ... Tôi đã thêm một tập lệnh để chỉnh sửa hoàn thành bash của mình nhưng tôi đã gỡ bỏ nó khỏi ~./bashrcmáy chủ và khởi động lại máy chủ.

Có ai biết điều gì sẽ gây ra điều này? Hoặc làm thế nào tôi sẽ thay đổi nó trở lại?

EDIT Vì vậy, tôi đã tìm ra những gì có thể gây ra điều này ... nó phải làm gì /etc/bash_completionvà những thứ tương tự. Khi tôi làm bind -v, nó cho thấy mở rộng dấu ngã bị tắt.

Vì vậy, tôi nghĩ rằng nếu tôi chỉnh sửa nó (giống như một bản hack), nó sẽ biến mất. Nhưng điều đó không thực sự thỏa mãn bất cứ điều gì - làm thế nào thay đổi này thậm chí xảy ra ở nơi đầu tiên? Tôi không bao giờ chạy bất cứ thứ gì như sudo, và sau nhiều lần tắt máy và khởi động lại hành vi này vẫn tồn tại.

Câu trả lời:


8

Bạn không đề cập đến phân phối nào bạn đang sử dụng (vui lòng bao gồm thông tin đó trong câu hỏi của bạn), nhưng tôi đã thấy hành vi tương tự sau khi chạy các bản cập nhật trên hệ thống của mình.

Dự đoán tốt nhất của tôi là khi bạn chạy bản cập nhật hệ thống hoặc nếu nó chạy tự động, gói "hoàn thành bash" đã được cập nhật có thêm hành vi này. Trong các dẫn xuất Red Hat, bạn có thể tìm thấy tài liệu gói trong /usr/share/doc/PACKAGENAME. Theo tôi /usr/share/doc/bash-completion-1.3/CHANGES, những thay đổi mới được liệt kê thông qua định dạng nhật ký thay đổi.

Thay vì sửa đổi /etc/bash_completion, có khả năng bị ghi đè ở lần nâng cấp gói tiếp theo, bạn có thể tạo ~/.inputrcđể vô hiệu hóa mở rộng dấu ngã. Tôi đã xác nhận bash_completion-1.3.6 sẽ tôn vinh điều này trên hộp Fedora 16 của tôi.

set expand-tilde off

BIÊN TẬP

Số dặm của bạn có thể thay đổi với ~/.inputrc. Bash có các chức năng có thể ghi đè hành vi đó tùy thuộc vào những gì bạn cố gắng hoàn thành (ví dụ: chương trình so với tệp hoặc thư mục). Thảo luận này về Super User SE giải quyết một câu hỏi tương tự khi tự động hoàn thành một vimlệnh. Trong trường hợp này, người đăng ban đầu đã giải quyết vấn đề của anh ta bằng cách thêm một chức năng tùy chỉnh vào anh ta ~/.bashrc.


1
Bit cuối cùng cũng phụ thuộc vào bản phân phối. Một số bản phân phối (ví dụ: Gentoo) thực sự làm đúng và không ghi đè lên các tệp /etcnếu chúng đã bị thay đổi.
njsg

1
Dẫn xuất Red Hat cũng làm như vậy. Tệp tệp cấu hình thay thế xxxsau đó được gọi xxx.rpmnewnếu cấu hình thay đổi không quan trọng; nếu những thay đổi trong cấu hình thực sự cần thiết, thì bản gốc được đổi tên xxx.rpmsavexxxlà tệp từ gói.
vonbrand

mở rộng-tilde không hoạt động, cuối cùng tôi chỉ xóa mã đã mở rộng từ máy tính của tôi. Nó có thể sẽ phá vỡ các nâng cấp hệ thống nhưng: |
Justin L.
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.