2013-04-17 34 views
7

Tôi đã tự hỏi liệu có thể cấu hình hành vi hoàn thành tab trong vỏ mongo không? Hai hành vi tôi đã thấy là:Hoàn thành tab Mongo shell

  1. Lần truy cập đầu tiên của khóa tab hoàn thành khi không có sự mơ hồ, lần truy cập thứ hai hiển thị danh sách các tùy chọn có thể.
  2. Nhấn phím tab sẽ hoàn thành toàn bộ biểu thức theo tùy chọn có thể đầu tiên.

Cá nhân tôi thích tùy chọn đầu tiên. Tôi đã nhìn thấy cả hai hành vi trên các môi trường khác nhau (tất cả đều có phiên bản mongo 2 trở lên), và không thể tìm ra liệu nó có thể cấu hình được hay do môi trường gây ra.

Trả lời

3

Hành vi tự động hoàn thành vỏ chắc chắn không phải là tùy chọn có thể định cấu hình. Có một số khác biệt trong hành vi sửa đổi vỏ phụ thuộc vào phiên bản MongoDB bạn đang sử dụng.

Những khác biệt này mở rộng ra ngoài autocompletion để lót chỉnh sửa, lịch sử, và các phím tắt .. nhưng để xác nhận các quan sát autocompletion của bạn:

  • MongoDB 1.8.x trở lên có hành vi # 1
  • Trong MongoDB 2.0. x thư viện chỉnh sửa vỏ đã được thay đổi từ readline thành linenoise (SERVER-2792) và dẫn đến một vài thay đổi bao gồm hoàn thành tab (hành vi # 2)
  • Kể từ MongoDB 2.2.x, hoàn thành kiểu readline gốc đã được khôi phục (SERVER-3809)) cùng với các cải tiến khác để trình bao teraction (ví dụ: SERVER-4321, SERVER-3787, ..).

Chắc chắn có thể sử dụng phiên bản shell mongo khác với phiên bản máy chủ MongoDB của bạn nếu bạn thích hành vi của trình bao đã cho. Để tận dụng tất cả các tính năng của máy chủ và trình trợ giúp trình bao tài liệu, bạn thường cần phiên bản shell mongo có cùng phiên bản chính hoặc mới hơn so với phiên bản mongod.

+1

bạn có thể sử dụng hacker mong http://tylerbrock.github.io/mongo-hacker/ –

+1

@GaboEsquivel: 'mongo-hacker' thêm một số tiện ích/tính năng thú vị vào vỏ' mongo', nhưng tự động hoàn thành không phải là một trong số chúng :). Tự động hoàn thành là một phần của hành vi lõi 'mongo'. – Stennie