Jika saya melakukan ini:
alias g='git'
Saya kehilangan semua aturan penyelesaian (mis. Cabang dan remote tidak lagi diselesaikan secara otomatis ketika saya menekan TAB setelah mengetik, misalnya g push o
).
command-line
bash
git
auto-completion
Paweł Gościcki
sumber
sumber
g=git
756 kali dalam sebulan terakhir, yang berarti saya menghemat menekan tombol 'g' dan 'i' total 1512 kali. Itu, dikombinasikan dengan alias git saya, mungkin menyelamatkan saya dari puluhan ribu penekanan tombol sebulan.Jawaban:
Menyalin dan memodifikasi dari
/etc/bash_completion.d/git
, tambahkan baris berikut ke Anda~/.bashrc
:sumber
source /usr/share/bash-completion/completions/git
.bashrc.bashrc
kode di sini berfungsi, tetapi jawaban ini pasti kedaluwarsa./etc/bash_completion.d/git
sepertinya tidak ada pada 14.04. Lihat jawaban lzap di bawah ini.Penyelesaian bash-up terbaru pindah dan mengubah nama beberapa hal. Bersalju:
Gunakan ini di versi terbaru Ubuntu (mis. 14.04, juga Fedora 22+) ketika Anda menjumpai:
saat menyelesaikan.
sumber
__git_complete gc _git_checkout
(atau serupa) untuk mengatur penyelesaian untuk alias yang lebih spesifik. Cari/usr/.../git
seperti di atas untuk menemukan nama yang tepat.gc
=>git checkout
) yang bertentangan dengan aliasc
kecheckout
dalamgit
, dan mengatakangit c
. Koreksi saya jika saya salah.Di
~/.bashrc
:Via http://29a.ch/2013/8/9/fixing-bash-autocomplete-on-ubuntu-13-04
sumber
Pertama, cari perintah penyelesaian asli. Contoh:
Sekarang tambahkan ini ke skrip startup Anda (mis. ~ / .Bashrc):
The
_completion_loader
garis mungkin tidak diperlukan. Tetapi untuk beberapa situasi, fungsi penyelesaian hanya dimuat secara dinamis setelah Anda mengetik perintah dan tekanTAB
pertama kali. Jadi, jika Anda belum menggunakan perintah asli, dan coba alias +TAB
, Anda mungkin mendapatkan kesalahan seperti "bash: completion: function not found".sumber
Cara yang diperbarui untuk melakukan ini (selesai tidak akan bekerja untuk saya):
cd
- beralih ke direktori home Andawget https://raw.github.com/git/git/master/contrib/completion/git-completion.bash
source ~/git-completion.bash
ke file .bashrc Anda (jika Anda tidak membuat file ini di folder home Anda, bash akan mencarinya secara otomatis)alias g='git'
ke file .bashrc Anda.source ~/.bashrc
sumber
__git_complete g _git
Demi kelengkapan, saya ingin menambahkan jawaban menggunakan
~/.bash-completion
file, yang bersumber di akhir skrip bash-completion:Kemudian di saya,
~/.bashrc
saya hanya punya alias. Saya mencoba untuk:~/.bashrc
barang-barang saya dengan menyelesaikan-bash (simpan barang-barang di tempatnya) ✓Bagaimanapun juga
_xfunc
sumber - sumber penyelesaian git. Saya akan memperbarui jawaban ini setelah saya mengetahui cara melakukannya dengan benar (saya juga bertanya pada makan siang di sini ).sumber
Lihat di sini: https://gist.github.com/scue/576310b7c6b7714aad05
Selamat Menikmati! (^ O ^) /
sumber
Anda bisa mendefinisikan alias seperti biasa:
Kemudian instal complete-alias untuk membuat bash completion alias-aware.
sumber