Tuş atamaları
Tüm klavye kısayolları ~/.pi/agent/keybindings.json aracılığıyla özelleştirilebilir. Her eylem bir veya daha fazla tuşa bağlanabilir.
Yapılandırma dosyası, pi'nin dahili olarak kullandığı ve uzantı yazarlarının keyHint() ve enjekte edilen keybindings yöneticilerinde kullandığı aynı ad alanlı tuş bağlama kimliklerini kullanır.
cursorUp veya expandTools gibi önceden ad alanlı kimlikleri kullanan daha eski yapılandırmalar, başlangıçta otomatik olarak ad alanlı kimliklere taşınır.
keybindings.json'yi düzenledikten sonra, değişiklikleri oturumu yeniden başlatmadan uygulamak için pi'de /reload komutunu çalıştırın.
Anahtar Formatı
modifier+key burada değiştiriciler ctrl, shift, alt, super (birleştirilebilir) ve tuşlar şunlardır:
- Harfler:
a-z - Rakamlar:
0-9 - Özel tuşlar:
escape,esc,enter,return,tab,space,backspace,delete,insert,clear,home,end,pageUp,pageDown,up,down,left,right - Fonksiyon tuşları:
f1-f12 - Semboller:
`,-,=,[,],\,;,',,,.,/,!,@,#,$,%,^,&,*,(,),_,+,|,~,{,},:,<,>,?
Değiştirici kombinasyonları: ctrl+shift+x, alt+ctrl+x, ctrl+shift+alt+x, super+k, ctrl+super+k, ctrl+1, vb.
super bağlamalar, değiştiriciyi genellikle Kitty klavye protokolü aracılığıyla ayrı olarak rapor eden bir terminal gerektirir. Bu desteğin olmadığı terminallerde çalışmayabilirler.
Tüm Eylemler
TUI Düzenleyici İmleç Hareketi
| Tuş bağlama kimliği | Varsayılan | Tanım |
|---|---|---|
tui.editor.cursorUp |
up |
İmleci yukarı hareket ettirerek eski geçmişi en üstte tarayın |
tui.editor.cursorDown |
down |
İmleci aşağı taşıyın, altta daha yeni geçmişe göz atın |
tui.editor.historyPrevious |
(hiçbiri) | Önceki bilgi istemi geçmişi girişini seçin |
tui.editor.historyNext |
(hiçbiri) | Sonraki bilgi istemi geçmişi girişini seçin |
tui.editor.cursorLeft |
left, ctrl+b |
İmleci sola taşı |
tui.editor.cursorRight |
right, ctrl+f |
İmleci sağa taşı |
tui.editor.cursorWordLeft |
alt+left, ctrl+left, alt+b |
İmleç kelimesini sola taşı |
tui.editor.cursorWordRight |
alt+right, ctrl+right, alt+f |
İmleç kelimesini sağa taşı |
tui.editor.cursorLineStart |
home, ctrl+home, ctrl+a |
Satır başlangıcına git |
tui.editor.cursorLineEnd |
end, ctrl+end, ctrl+e |
Satır sonuna git |
tui.editor.jumpForward |
ctrl+] |
Karaktere ileri atla |
tui.editor.jumpBackward |
ctrl+alt+] |
Karaktere geri git |
tui.editor.pageUp |
pageUp, ctrl+pageUp |
Sayfaya göre yukarı kaydır |
tui.editor.pageDown |
pageDown, ctrl+pageDown |
Sayfaya göre aşağı kaydır |
Özel geçmiş eylemleri, çok satırlı bir istemdeki imleç konumundan bağımsız olarak her zaman geçmiş girişlerini değiştirir. Açık geçmiş bağlamaları, ana düzenleyici odaklandığında uygulama eylemlerine göre önceliklidir, dolayısıyla tui.editor.historyPrevious'den ctrl+p'ye bağlama, seçicilerdeki Ctrl+P'yi değiştirmeden bu bağlamda model döngüsünü geçersiz kılar.
TUI Düzenleyici Silme
| Tuş bağlama kimliği | Varsayılan | Tanım |
|---|---|---|
tui.editor.deleteCharBackward |
backspace |
Karakteri geriye doğru sil |
tui.editor.deleteCharForward |
delete, ctrl+d |
İleriye doğru karakteri sil |
tui.editor.deleteWordBackward |
ctrl+w, alt+backspace |
Kelimeyi geriye doğru sil |
tui.editor.deleteWordForward |
alt+d, alt+delete |
İleriye doğru kelimeyi sil |
tui.editor.deleteToLineStart |
ctrl+u |
Satır başına kadar sil |
tui.editor.deleteToLineEnd |
ctrl+k |
Satır sonuna kadar sil |
TUI Giriş
| Tuş bağlama kimliği | Varsayılan | Tanım |
|---|---|---|
tui.input.newLine |
shift+enter, ctrl+j |
Yeni satır ekle |
tui.input.submit |
enter |
Girişi gönder |
tui.input.tab |
tab |
Sekme / otomatik tamamlama |
TUI Yüzüğü Öldür
| Tuş bağlama kimliği | Varsayılan | Tanım |
|---|---|---|
tui.editor.yank |
ctrl+y |
En son silinen metni yapıştır |
tui.editor.yankPop |
alt+y |
Çekildikten sonra silinen metin arasında geçiş yap |
tui.editor.undo |
ctrl+- |
Son düzenlemeyi geri al |
TUI Pano ve Seçim
| Tuş bağlama kimliği | Varsayılan | Tanım |
|---|---|---|
tui.input.copy |
ctrl+c |
Seçimi kopyala |
tui.select.up |
up |
Seçimi yukarı taşı |
tui.select.down |
down |
Seçimi aşağı taşı |
tui.select.pageUp |
pageUp |
Listede sayfa yukarı |
tui.select.pageDown |
pageDown |
Listede sayfa aşağı |
tui.select.confirm |
enter |
Seçimi onayla |
tui.select.cancel |
escape, ctrl+c |
Seçimi iptal et |
TUI Tam Ekran Görünümü
Bu eylemler, etkileşimli mod --tui-mode fullscreen kullandığında ve birincil transkript kaydırma bölgesini hedeflediğinde geçerlidir. İki parmakla izleme dörtgeni ve fare tekerleği girişi, işaretçinin altındaki bölgeyi kaydırarak sabit düzenleyici/durum/altbilgi paneli üzerinden metne geri döner. Bir OSC 8 köprüsüne tıklamak onu varsayılan işleyicide açar. Birincil fare düğmesiyle sürüklemek metni seçer ve panoya kopyalar; Transkriptin üst veya alt kenarında tutmak otomatik olarak ekran dışı içeriğe kaydırılır.
Tam ekran transkript bağlamaları, düzenleyici bağlamalarına göre önceliklidir. Varsayılan değiştirilmemiş gezinme tuşları bu nedenle transkripti tam ekran modunda kontrol ederken, ctrl varyantları düzenleyiciyi kontrol etmeye devam eder. Tam ekran modunun dışında, her iki değişken de düzenleyiciyi kontrol eder.
| Anahtar | Varsayılan mod | Tam ekran modu |
|---|---|---|
home, end |
Editör | Deşifre metni |
ctrl+home, ctrl+end |
Editör | Editör |
pageUp, pageDown |
Editör | Deşifre metni |
ctrl+pageUp, ctrl+pageDown |
Editör | Editör |
Bu yönlendirme, sıradan eylem bağlamaları aracılığıyla yapılandırılabilir durumda kalır. Örneğin, "tui.altScreen.pageUp": "ctrl+pageUp", pageUp'nin düzenleyiciyi kontrol etmesini ve ctrl+pageUp'nin tam ekran modunda metni kontrol etmesini sağlar. Tam sayfa ciltlemelerini korurken daha küçük transkript adımları için tui.altScreen.halfPageUp ve tui.altScreen.halfPageDown ciltlemelerini yapın. "tui.altScreen.pageUp": [] ayarı bu transkript kısayolunu tamamen devre dışı bırakır. Kullanıcı bağlamaları bu eyleme ilişkin varsayılanların yerini alır.
| Tuş bağlama kimliği | Varsayılan | Tanım |
|---|---|---|
tui.altScreen.pageUp |
pageUp |
Transkripti bir sayfa yukarı kaydır |
tui.altScreen.pageDown |
pageDown |
Transkripti bir sayfa aşağı kaydır |
tui.altScreen.halfPageUp |
(hiçbiri) | Transkripti yarım sayfa yukarı kaydır |
tui.altScreen.halfPageDown |
(hiçbiri) | Transkripti yarım sayfa aşağı kaydır |
tui.altScreen.previousPrompt |
ctrl+shift+up |
Önceki işaretli mesaja atla |
tui.altScreen.nextPrompt |
ctrl+shift+down |
Sonraki işaretli mesaja atla |
tui.altScreen.top |
home |
Transkriptin başlangıcına ilerleyin |
tui.altScreen.bottom |
end |
Transkriptin sonuna doğru kaydırın ve yeni çıktıyı takip edin |
Başvuru
| Tuş bağlama kimliği | Varsayılan | Tanım |
|---|---|---|
app.interrupt |
escape |
İptal et / iptal et |
app.clear |
ctrl+c |
Düzenleyiciyi temizle (birinci) / çıkış (ikinci) |
app.exit |
ctrl+d |
Çıkış (düzenleyici boş olduğunda) |
app.suspend |
ctrl+z (Windows'ta yok) |
Arka planda askıya al |
app.editor.external |
ctrl+g |
Harici düzenleyicide açın (externalEditor, $VISUAL, $EDITOR, Windows'ta Not Defteri veya başka bir yerde nano) |
app.clipboard.pasteImage |
ctrl+v (Windows'ta alt+v) |
Panodan resim veya metin yapıştırın |
Oturumlar
| Tuş bağlama kimliği | Varsayılan | Tanım |
|---|---|---|
app.session.new |
(hiçbiri) | Yeni bir oturum başlat (/new) |
app.session.tree |
(hiçbiri) | session tree gezginini aç (/tree) |
app.session.fork |
(hiçbiri) | Mevcut oturumu çatalla (/fork) |
app.session.resume |
(hiçbiri) | Açık oturum devam etme seçicisi (/resume) |
app.session.togglePath |
ctrl+p |
Yol görünümünü değiştir |
app.session.toggleSort |
ctrl+s |
Sıralama modunu değiştir |
app.session.toggleNamedFilter |
ctrl+n |
Yalnızca adlandırılmış filtreyi aç/kapat |
app.session.rename |
ctrl+r |
Oturumu yeniden adlandır |
app.session.delete |
ctrl+d |
Oturumu sil |
app.session.deleteNoninvasive |
ctrl+backspace |
Sorgu boş olduğunda oturumu sil |
Models ve Düşünme
| Tuş bağlama kimliği | Varsayılan | Tanım |
|---|---|---|
app.model.select |
ctrl+l |
Model seçiciyi aç |
app.model.cycleForward |
ctrl+p |
Sonraki modele geç |
app.model.cycleBackward |
shift+ctrl+p |
Önceki modele geç |
app.thinking.cycle |
shift+tab |
Döngüsel düşünme düzeyi |
app.thinking.toggle |
ctrl+t |
Düşünme bloklarını daraltın veya genişletin |
Görüntüleme ve Mesaj Sırası
| Tuş bağlama kimliği | Varsayılan | Tanım |
|---|---|---|
app.tools.expand |
ctrl+o |
Araç çıktısını daraltın veya genişletin |
app.message.copy |
ctrl+x |
Son asistan mesajını veya seçilen mesajı /tree'ye kopyalayın |
app.message.followUp |
alt+enter |
Kuyruk takip mesajı |
app.message.dequeue |
alt+up |
Sıraya alınmış mesajları düzenleyiciye geri yükleyin |
Ağaçta Gezinme
| Tuş bağlama kimliği | Varsayılan | Tanım |
|---|---|---|
app.tree.foldOrUp |
ctrl+left, alt+left |
Geçerli dal bölümünü katla veya önceki bölüm başlangıcına atla |
app.tree.unfoldOrDown |
ctrl+right, alt+right |
Geçerli dal segmentini açın veya sonraki segment başlangıcına veya dal sonuna atlayın |
app.tree.editLabel |
shift+l |
Seçilen ağaç düğümündeki etiketi düzenleyin |
app.tree.toggleLabelTimestamp |
shift+t |
Ağaçtaki etiket zaman damgalarını değiştir |
app.tree.filter.default |
ctrl+d |
Ağaç filtresini varsayılan görünüme ayarla |
app.tree.filter.noTools |
ctrl+t |
Araç sonuçlarını gizleyen ağaç filtresini açın/kapatın |
app.tree.filter.userOnly |
ctrl+u |
Yalnızca kullanıcı mesajlarını gösteren ağaç filtresini açın/kapatın |
app.tree.filter.labeledOnly |
ctrl+l |
Yalnızca etiketli girişleri gösteren ağaç filtresini aç/kapa |
app.tree.filter.all |
ctrl+a |
Tüm girişleri gösteren ağaç filtresini değiştir |
app.tree.filter.cycleForward |
ctrl+o |
Ağaç filtresini ileriye doğru döndür |
app.tree.filter.cycleBackward |
shift+ctrl+o |
Ağaç filtresini geriye doğru döndür |
Kapsamlı Models Seçici
Kapsamlı modeller seçicinin içinde kullanılır (/scoped-models ile açılır).
| Tuş bağlama kimliği | Varsayılan | Tanım |
|---|---|---|
app.models.save |
ctrl+s |
Mevcut model seçimini ayarlara kaydet |
app.models.enableAll |
ctrl+a |
Tüm modelleri (veya mevcut aramayla eşleşen tüm modelleri) etkinleştirin |
app.models.clearAll |
ctrl+x |
Tüm modelleri (veya mevcut aramayla eşleşen tüm modelleri) temizle |
app.models.toggleProvider |
ctrl+p |
Mevcut sağlayıcı için tüm modelleri değiştir |
app.models.reorderUp |
alt+up |
Seçilen modeli döngü sırasında yukarı taşı |
app.models.reorderDown |
alt+down |
Seçilen modeli döngü sırasında aşağı taşı |
Özel Yapılandırma
~/.pi/agent/keybindings.json oluştur:
{
"tui.editor.historyPrevious": "ctrl+p",
"tui.editor.historyNext": "ctrl+n",
"tui.editor.deleteWordBackward": ["ctrl+w", "alt+backspace"]
}Her eylemin tek bir tuşu veya bir dizi tuşu olabilir. Kullanıcı yapılandırması varsayılanları geçersiz kılar.
Yerel Windows'ta, Windows terminalleri Unix iş kontrolünü desteklemediğinden app.suspend'nin varsayılan bağlaması yoktur. Eğer manuel olarak bağlarsanız pi, askıya almak yerine bir durum mesajı gösterir. WSL'de normal Linux ctrl+z/fg davranışı hâlâ geçerlidir.
Emacs Örneği
{
"tui.editor.historyPrevious": "ctrl+p",
"tui.editor.historyNext": "ctrl+n",
"tui.editor.cursorLeft": ["left", "ctrl+b"],
"tui.editor.cursorRight": ["right", "ctrl+f"],
"tui.editor.cursorWordLeft": ["alt+left", "alt+b"],
"tui.editor.cursorWordRight": ["alt+right", "alt+f"],
"tui.editor.deleteCharForward": ["delete", "ctrl+d"],
"tui.editor.deleteCharBackward": ["backspace", "ctrl+h"],
"tui.input.newLine": ["shift+enter", "ctrl+j"]
}Vim Örneği
{
"tui.editor.cursorUp": ["up", "alt+k"],
"tui.editor.cursorDown": ["down", "alt+j"],
"tui.editor.cursorLeft": ["left", "alt+h"],
"tui.editor.cursorRight": ["right", "alt+l"],
"tui.editor.cursorWordLeft": ["alt+left", "alt+b"],
"tui.editor.cursorWordRight": ["alt+right", "alt+w"]
}