Pi için yapılandırma, özelleştirme, platform kurulumu ve API referansları.

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"]
}