Cấu hình, tùy chỉnh, thiết lập nền tảng và tham chiếu API cho Pi.

Tổ hợp phím

Tất cả các phím tắt có thể được tùy chỉnh thông qua ~/.pi/agent/keybindings.json. Mỗi hành động có thể được liên kết với một hoặc nhiều phím.

Tệp cấu hình sử dụng cùng các id liên kết phím có khoảng cách tên mà pi sử dụng nội bộ và các tác giả tiện ích mở rộng sử dụng trong keyHint() và được chèn vào trình quản lý keybindings.

Các cấu hình cũ hơn sử dụng id được đặt tên trước như cursorUp hoặc expandTools được tự động di chuyển sang các id được đặt tên khi khởi động.

Sau khi chỉnh sửa keybindings.json, hãy chạy /reload trong pi để áp dụng các thay đổi mà không cần khởi động lại phiên.

Định dạng khóa

modifier+key trong đó các công cụ sửa đổi là ctrl, shift, alt, super (có thể kết hợp) và các khóa là:

  • Chữ cái: a-z
  • Chữ số: 0-9
  • Phím đặc biệt: escape, esc, enter, return, tab, space, backspace, delete, insert, clear, home, end, pageUp, pageDown, up, down, left, right
  • Phím chức năng: f1-f12
  • Ký hiệu: `, -, =, [, ], \, ;, ', ,, ., /, !, @, #, $, %, ^, &, *, (, ), _, +, |, ~, {, }, :, <, >, ?

Các tổ hợp bổ nghĩa: ctrl+shift+x, alt+ctrl+x, ctrl+shift+alt+x, super+k, ctrl+super+k, ctrl+1, v.v.

Các ràng buộc super yêu cầu một thiết bị đầu cuối báo cáo công cụ sửa đổi riêng biệt, thường thông qua giao thức bàn phím Kitty. Chúng có thể không hoạt động trong thiết bị đầu cuối nếu không có sự hỗ trợ đó.

Tất cả hành động

TUI Chuyển động con trỏ của trình chỉnh sửa

Id liên kết phím Mặc định Sự miêu tả
tui.editor.cursorUp up Di chuyển con trỏ lên, duyệt lịch sử cũ hơn ở trên cùng
tui.editor.cursorDown down Di chuyển con trỏ xuống, duyệt lịch sử mới hơn ở phía dưới
tui.editor.historyPrevious (không có) Chọn mục nhập lịch sử lời nhắc trước đó
tui.editor.historyNext (không có) Chọn mục nhập lịch sử lời nhắc tiếp theo
tui.editor.cursorLeft left, ctrl+b Di chuyển con trỏ sang trái
tui.editor.cursorRight right, ctrl+f Di chuyển con trỏ sang phải
tui.editor.cursorWordLeft alt+left, ctrl+left, alt+b Di chuyển con trỏ từ sang trái
tui.editor.cursorWordRight alt+right, ctrl+right, alt+f Di chuyển con trỏ từ sang phải
tui.editor.cursorLineStart home, ctrl+home, ctrl+a Di chuyển đến đầu dòng
tui.editor.cursorLineEnd end, ctrl+end, ctrl+e Di chuyển đến cuối dòng
tui.editor.jumpForward ctrl+] Chuyển tiếp tới nhân vật
tui.editor.jumpBackward ctrl+alt+] Nhảy lùi về nhân vật
tui.editor.pageUp pageUp, ctrl+pageUp Cuộn lên theo trang
tui.editor.pageDown pageDown, ctrl+pageDown Cuộn xuống theo trang

Các hành động lịch sử chuyên dụng luôn thay đổi các mục nhập lịch sử, bất kể vị trí con trỏ trong dấu nhắc nhiều dòng. Các liên kết lịch sử rõ ràng được ưu tiên hơn các hành động của ứng dụng trong khi trình chỉnh sửa chính được tập trung, do đó, liên kết tui.editor.historyPrevious với ctrl+p sẽ ghi đè chu kỳ mô hình trong ngữ cảnh đó mà không thay đổi Ctrl+P trong bộ chọn.

TUI Xóa trình chỉnh sửa

Id liên kết phím Mặc định Sự miêu tả
tui.editor.deleteCharBackward backspace Xóa ký tự lùi
tui.editor.deleteCharForward delete, ctrl+d Xóa ký tự phía trước
tui.editor.deleteWordBackward ctrl+w, alt+backspace Xóa từ lùi
tui.editor.deleteWordForward alt+d, alt+delete Xóa từ tiếp theo
tui.editor.deleteToLineStart ctrl+u Xóa để bắt đầu dòng
tui.editor.deleteToLineEnd ctrl+k Xóa đến cuối dòng

TUI Đầu vào

Id liên kết phím Mặc định Sự miêu tả
tui.input.newLine shift+enter, ctrl+j Chèn dòng mới
tui.input.submit enter Gửi đầu vào
tui.input.tab tab Tab/tự động hoàn thành

TUI Vòng tiêu diệt

Id liên kết phím Mặc định Sự miêu tả
tui.editor.yank ctrl+y Dán văn bản đã xóa gần đây nhất
tui.editor.yankPop alt+y Duyệt qua văn bản đã xóa sau khi kéo
tui.editor.undo ctrl+- Hoàn tác chỉnh sửa cuối cùng

TUI Bảng tạm và lựa chọn

Id liên kết phím Mặc định Sự miêu tả
tui.input.copy ctrl+c Sao chép lựa chọn
tui.select.up up Di chuyển lựa chọn lên
tui.select.down down Di chuyển lựa chọn xuống
tui.select.pageUp pageUp Trang lên trong danh sách
tui.select.pageDown pageDown Trang xuống trong danh sách
tui.select.confirm enter Xác nhận lựa chọn
tui.select.cancel escape, ctrl+c Hủy lựa chọn

TUI Chế độ xem toàn màn hình

Những hành động này áp dụng khi chế độ tương tác sử dụng --tui-mode fullscreen và nhắm mục tiêu vùng cuộn bản ghi chính. Bàn di chuột bằng hai ngón tay và đầu vào con lăn chuột cuộn vùng bên dưới con trỏ, quay trở lại bản ghi trên dock trình soạn thảo/trạng thái/chân trang cố định. Nhấp vào siêu liên kết OSC 8 sẽ mở siêu liên kết đó trong trình xử lý mặc định. Kéo bằng nút chuột chính sẽ chọn văn bản và sao chép nó vào khay nhớ tạm; giữ ở cạnh trên hoặc dưới của bản ghi sẽ tự động cuộn vào nội dung ngoài màn hình.

Các ràng buộc bản ghi toàn màn hình được ưu tiên hơn các ràng buộc biên tập. Do đó, các phím điều hướng mặc định chưa được sửa đổi sẽ kiểm soát bản ghi ở chế độ toàn màn hình, trong khi các biến thể ctrl của chúng tiếp tục kiểm soát trình chỉnh sửa. Bên ngoài chế độ toàn màn hình, cả hai biến thể đều điều khiển trình chỉnh sửa.

Chìa khóa Chế độ mặc định Chế độ toàn màn hình
home, end Biên tập viên bảng điểm
ctrl+home, ctrl+end Biên tập viên Biên tập viên
pageUp, pageDown Biên tập viên bảng điểm
ctrl+pageUp, ctrl+pageDown Biên tập viên Biên tập viên

Định tuyến này vẫn có thể cấu hình được thông qua các ràng buộc hành động thông thường. Ví dụ: "tui.altScreen.pageUp": "ctrl+pageUp" làm cho pageUp kiểm soát trình chỉnh sửa và ctrl+pageUp kiểm soát bản ghi ở chế độ toàn màn hình. Ràng buộc tui.altScreen.halfPageUptui.altScreen.halfPageDown cho các bước chép lại nhỏ hơn trong khi vẫn giữ các ràng buộc toàn trang. Cài đặt "tui.altScreen.pageUp": [] sẽ tắt hoàn toàn lối tắt chuyển biên đó. Ràng buộc người dùng thay thế các giá trị mặc định cho hành động đó.

Id liên kết phím Mặc định Sự miêu tả
tui.altScreen.pageUp pageUp Cuộn bản ghi lên một trang
tui.altScreen.pageDown pageDown Cuộn bản ghi xuống một trang
tui.altScreen.halfPageUp (không có) Cuộn bản ghi lên nửa trang
tui.altScreen.halfPageDown (không có) Cuộn bản ghi xuống nửa trang
tui.altScreen.previousPrompt ctrl+shift+up Chuyển đến tin nhắn được đánh dấu trước đó
tui.altScreen.nextPrompt ctrl+shift+down Chuyển tới tin nhắn được đánh dấu tiếp theo
tui.altScreen.top home Cuộn đến đầu bản ghi
tui.altScreen.bottom end Cuộn đến cuối bản ghi và theo dõi đầu ra mới

Ứng dụng

Id liên kết phím Mặc định Sự miêu tả
app.interrupt escape Hủy/hủy bỏ
app.clear ctrl+c Xóa trình chỉnh sửa (đầu tiên) / thoát (thứ hai)
app.exit ctrl+d Thoát (khi trình soạn thảo trống)
app.suspend ctrl+z (không có trên Windows) Tạm dừng ở chế độ nền
app.editor.external ctrl+g Mở bằng trình chỉnh sửa bên ngoài (externalEditor, $VISUAL, $EDITOR, Notepad trên Windows hoặc nano ở nơi khác)
app.clipboard.pasteImage ctrl+v (alt+v trên Windows) Dán hình ảnh hoặc văn bản từ clipboard

Phiên

Id liên kết phím Mặc định Sự miêu tả
app.session.new (không có) Bắt đầu phiên mới (/new)
app.session.tree (không có) Mở trình điều hướng session tree (/tree)
app.session.fork (không có) Phiên hiện tại phân nhánh (/fork)
app.session.resume (không có) Bộ chọn sơ yếu lý lịch phiên mở (/resume)
app.session.togglePath ctrl+p Chuyển đổi hiển thị đường dẫn
app.session.toggleSort ctrl+s Chuyển đổi chế độ sắp xếp
app.session.toggleNamedFilter ctrl+n Chuyển đổi bộ lọc chỉ có tên
app.session.rename ctrl+r Đổi tên phiên
app.session.delete ctrl+d Xóa phiên
app.session.deleteNoninvasive ctrl+backspace Xóa phiên khi truy vấn trống

Models và Suy nghĩ

Id liên kết phím Mặc định Sự miêu tả
app.model.select ctrl+l Mở bộ chọn mô hình
app.model.cycleForward ctrl+p Chuyển sang mô hình tiếp theo
app.model.cycleBackward shift+ctrl+p Chuyển sang mô hình trước đó
app.thinking.cycle shift+tab Mức độ tư duy chu kỳ
app.thinking.toggle ctrl+t Thu gọn hoặc mở rộng các khối tư duy

Hàng đợi hiển thị và tin nhắn

Id liên kết phím Mặc định Sự miêu tả
app.tools.expand ctrl+o Thu gọn hoặc mở rộng đầu ra công cụ
app.message.copy ctrl+x Sao chép tin nhắn trợ lý cuối cùng hoặc tin nhắn đã chọn trong /tree
app.message.followUp alt+enter Tin nhắn theo dõi hàng đợi
app.message.dequeue alt+up Khôi phục tin nhắn được xếp hàng đợi vào trình chỉnh sửa

Điều hướng cây

Id liên kết phím Mặc định Sự miêu tả
app.tree.foldOrUp ctrl+left, alt+left Gấp đoạn nhánh hiện tại hoặc nhảy về phần bắt đầu của đoạn trước đó
app.tree.unfoldOrDown ctrl+right, alt+right Mở rộng đoạn nhánh hiện tại hoặc chuyển sang đoạn bắt đầu hoặc kết thúc nhánh tiếp theo
app.tree.editLabel shift+l Chỉnh sửa nhãn trên nút cây đã chọn
app.tree.toggleLabelTimestamp shift+t Chuyển đổi dấu thời gian của nhãn trong cây
app.tree.filter.default ctrl+d Đặt bộ lọc cây thành chế độ xem mặc định
app.tree.filter.noTools ctrl+t Chuyển đổi bộ lọc cây ẩn kết quả công cụ
app.tree.filter.userOnly ctrl+u Chuyển đổi bộ lọc cây chỉ hiển thị tin nhắn của người dùng
app.tree.filter.labeledOnly ctrl+l Chuyển đổi bộ lọc cây chỉ hiển thị các mục được gắn nhãn
app.tree.filter.all ctrl+a Chuyển đổi bộ lọc cây hiển thị tất cả các mục
app.tree.filter.cycleForward ctrl+o Lọc cây tuần hoàn về phía trước
app.tree.filter.cycleBackward shift+ctrl+o Lọc cây tuần hoàn ngược

Bộ chọn phạm vi Models

Được sử dụng bên trong bộ chọn mô hình có phạm vi (được mở qua /scoped-models).

Id liên kết phím Mặc định Sự miêu tả
app.models.save ctrl+s Lưu lựa chọn mô hình hiện tại vào cài đặt
app.models.enableAll ctrl+a Kích hoạt tất cả các mô hình (hoặc tất cả phù hợp với tìm kiếm hiện tại)
app.models.clearAll ctrl+x Xóa tất cả các mô hình (hoặc tất cả phù hợp với tìm kiếm hiện tại)
app.models.toggleProvider ctrl+p Chuyển đổi tất cả các mô hình cho nhà cung cấp hiện tại
app.models.reorderUp alt+up Di chuyển mô hình đã chọn lên theo thứ tự chu kỳ
app.models.reorderDown alt+down Di chuyển mô hình đã chọn xuống theo thứ tự chu kỳ

Cấu hình tùy chỉnh

Tạo ~/.pi/agent/keybindings.json:

{
  "tui.editor.historyPrevious": "ctrl+p",
  "tui.editor.historyNext": "ctrl+n",
  "tui.editor.deleteWordBackward": ["ctrl+w", "alt+backspace"]
}

Mỗi hành động có thể có một phím duy nhất hoặc một mảng phím. Cấu hình người dùng ghi đè mặc định.

Trên Windows gốc, app.suspend không có ràng buộc mặc định vì thiết bị đầu cuối Windows không hỗ trợ kiểm soát công việc Unix. Nếu bạn liên kết nó theo cách thủ công, pi sẽ hiển thị thông báo trạng thái thay vì tạm dừng. Trong WSL, hành vi ctrl+z/fg bình thường của Linux vẫn được áp dụng.

Ví dụ về Emac

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

Ví dụ Vim

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