Bir ZSH otomatik tamamlama işlevi yazmakta zorlanıyorum. Amacım otomatik tamamlama ta 'nın ve tk 'de listelenen projelerle ilk argümanı tmux list-sessions ve tmuxinator list.
İşte şimdiye kadar sahip olduğum şey:
tmux list-sessions şuna benzeyen verileri çıkarır:
dotfiles: 1 windows (created Tue Apr 15 21:54:51 2014) [123x48]
goodbye: 1 windows (created Tue Apr 15 21:51:34 2014) [123x48]
hello: 1 windows (created Tue Apr 15 21:42:03 2014) [123x48]
tmuxinator list çıktılar:
tmuxinator projects:
dotfiles landonschropp.com
İşte benim girişimim:
tmux-list-sessions-autofill() {
# get the tmux and tmuxinator sessions
TMUX_SESSIONS=$( tmux list-sessions | cut -d: -f1 )
TMUXINATOR_SESSIONS=$( tmuxinator list | tail -n +2 | gsed -e 's/\s\+/\n/g' )
# remove duplicates
SESSIONS=$( echo "$TMUX_SESSIONS\n$TMUXINATOR_SESSIONS" | sort | uniq )
# set the autocomplete values
reply=( $(echo $SESSIONS) )
}
compctl -K tmux-list-sessions-autofill ta
compctl -K tmux-list-sessions-autofill tk
tmux list-sessions | cut -d: -f1Proje isimleri dışındaki her şeyi kaldırır.tmuxinator list | tail -n +2 | gsed -e 's/\s\+/\n/g'ilk satırı kaldırır ve boşluk ile yeni satırları değiştirir.echo "$TMUX_SESSIONS\n$TMUXINATOR_SESSIONS" | sort | uniqyinelenen çizgileri kaldırır.- kullanıyorum
gsedçünkü ben OS X’de vesedbiraz vidalı.
Benim işlevim işe yarıyor ama Gerçekten mi yavaş. Ben bir kabuk komut dosyası acemi, bu yüzden bunu başarmak için daha etkili bir yol olduğundan eminim. Darboğazım nerede ve nasıl düzeltebilirim?
time tmux list-sessions 0.05s aldı time tmuxinator list 0,716 aldı. time tmuxinator list | tail -n +2 ve time tmuxinator list | tail -n +2 | gsed -e 's/\s\+/\n/g' önemli bir gecikme eklemedi. Sanırım bunun için tmuxinator'da bir sorun açacağım. Yardım için teşekkürler!
;)
tmux list-sessionsvetmuxinator listgecikmeye neden olur mu? İlgilenirimtime tmuxinator list,time tmuxinator list | tail -n +2vetime tmuxinator list | tail -n +2 | gsed -e 's/\s\+/\n/g'. Analog komutla, gecikmeye bir komutun neden olup olmadığını ya da yalnızca toplamda sonuçlanıp sonuçlanmayacağını izleyebilirsiniz.