2011-10-24 30 views
7

Tôi đã cài đặt Mercurial (1.4.3-1) trên ubuntu và nó không hoàn thành tab trong bash theo mặc định. Cách đơn giản nhất để kích hoạt tính năng này là gì?Bật hoàn thành tab bash cho Mercurial (hg)

+2

Bạn thực sự nên xem xét sử dụng một phiên bản Mercurial mới hơn. Có kho lưu trữ PPA có sẵn cho Ubuntu mà bạn có thể kích hoạt để có được hành vi tự động cập nhật bình thường của Mercurial trong một thời trang liền mạch mà sẽ không có bạn nhiều hơn một năm sau hiện tại: https://launchpad.net/~mercurial-ppa/+ lưu trữ/phát hành –

Trả lời

2

Cài đặt gói hoàn thành bash trong Linux của bạn (phụ thuộc vào Phân phối Linux bạn đang sử dụng).

Sau đó đi đến /etc/bash_completion.d/ và tạo ra một tập tin gọi là hg

và đặt nội dung của kịch bản này (dưới đây) vào tập tin hg tạo

http://fts.ifac.cnr.it/cgi-bin/dwww/usr/share/doc/bash/completion-contrib/hg

+1

Thật không may là liên kết ở trên dường như không hoạt động nữa - kết quả là 403. – robjohncox

12

Bạn cần phải

  • Cài đặt gói cập nhật cho Mercurial, xem Mercurial PPA. Điều này sẽ cung cấp cho bạn một tập tin /etc/bash_completion.d/mercurial với mã hoàn thành cho Mercurial. Bạn có thể mã nguồn tệp này trực tiếp để bật hỗ trợ hoàn thành cho Mercurial.

Bạn cũng có thể kích hoạt tính năng hỗ trợ hoàn thành cho tất cả các chương trình:

  • Cài đặt bash-completion gói: aptitude install bash-completion.

  • Nguồn /etc/bash_completion trong tập tin ~/.bashrc của bạn:

    # Use bash-completion, if available 
    if [ -f /etc/bash_completion ]; then 
        . /etc/bash_completion 
    fi 
    

    này sẽ cho phép hoàn thành cho tất cả các lệnh, trong đó có Mercurial.

0

Kể từ khi nó không được gắn thẻ và cũng không có tên "ubuntu" và vì googling với fedora cũng dẫn ở đây, tôi sẽ thêm một biến thể của câu trả lời Martin hoạt động bằng cách tham khảo /etc/bash_completion.d/mercurial.sh thay vì /etc/bash_completion trong ~/.bashrc của bạn:

# Use bash-completion, if available if [ -f /etc/bash_completion.d/mercurial.sh ]; then . /etc/bash_completion.d/mercurial.sh fi

Không chắc nếu hệ điều hành làm cho sự khác biệt này cần thiết, nhưng công trình này cho tôi trên Fedora 11 đến 20.

Chỉnh sửa: Fedora 11 và Fedora 20. (Chưa kiểm tra 12-19.)

2

Kịch bản vị trí bash_completion đã thay đổi, do đó bạn cần phải làm

curl https://www.mercurial-scm.org/repo/hg/raw-file/tip/contrib/bash_completion -o ~/.hg-completion.bash && source ~/.hg-completion.bash 

thay vì

curl http://www.selenic.com/hg/raw-file/tip/contrib/bash_completion -o ~/.hg-completion.bash && source ~/.hg-completion.bash 
+0

Câu trả lời này là nền tảng chéo và không cần Ubuntu. Tôi đã sử dụng nó trên OS X. Nó sẽ hoạt động ở mọi nơi bạn có 'bash',' curl' (và 'hg' ;-). – lkuty

+0

Đã hoạt động đối với tôi trên OSX. Cảm ơn bạn! – Brodan

+0

Bạn nên cập nhật điều này để bao gồm việc thêm 'source ~/.hg-completion.bash' vào' .bashrc' của bạn để bạn không phải chạy nó trong mỗi shell mới. – Brodan

Các vấn đề liên quan