2013-01-16 22 views
16

Tôi làm cách nào để lập bản đồ :E đến :Explore? Tôi đã cài đặt tiện ích mở rộng dẫn đến E464: Ambiguous use of user-defined command nếu tôi làm :E ngay bây giờ, nhưng các ngón tay của tôi sẽ không quên lệnh!Bản đồ: E đến: Khám phá ở chế độ lệnh?

Tôi đã thử map :E :Explore, nhưng điều đó rất xấu vì nó làm cho việc truy cập các lệnh khác trở nên khó khăn.

tôi đã cố gắng này:

cmap :E<CR> :Explore<CR> 
cmap :E^M :Explore^M 

(nơi ^M = control-v + enter) nhưng những không làm việc trừ khi tôi nhấn Enter thực sự rất nhanh.

Trả lời

32

:E thường đủ như nếu :Explore là lệnh được xác định duy nhất bắt đầu bằng E. Bạn rõ ràng có nhiều lệnh như vậy được xác định, do đó, :E không rõ ràng và dẫn đến lỗi.

:cmap gây ra thay thế trực tiếp bằng chữ và do đó có tác dụng phụ không mong muốn. Một lựa chọn tốt hơn một chút là :cabbrev, có thể được sử dụng để xác định chữ viết tắt cho chế độ lệnh:

cabbrev E Explore 

này gây nên sau ENhập hay ESpace. Trước đây là mong muốn vì nhập :ENhập sẽ gọi :Explore, nhưng sau đó lại có tác dụng phụ trong chế độ lệnh.

Để :E được aliased đúng cách để :Explore, nó phải được định nghĩa là một lệnh riêng biệt:

command! E Explore 

Tuy nhiên, :command E, trong đó liệt kê tất cả các lệnh được xác định bắt đầu bằng E, tiết lộ rằng :E:Explore có các thuộc tính khác nhau. Ví dụ: không thể thực thi :E ~:E không chấp nhận bất kỳ đối số nào. Ngoài ra, không giống như :Explore, :E không tự động hoàn thành thư mục.

Để khắc phục những thiếu sót này, :E phải được xác định chính xác giống như :Explore. Thực hiện :verbose command Explore cho biết vị trí của tập lệnh trong đó :Explore được xác định; :E sau đó có thể được định nghĩa theo cách tương tự, với việc bổ sung <args>:

command! -nargs=* -bar -bang -count=0 -complete=dir E Explore <args> 

Trong khi nó có thể suy ra hầu hết các thuộc tính từ các thông tin được cung cấp bởi :command Explore, vẫn còn có thể sai lệch, chẳng hạn như -bar trong này trường hợp.

N.B. Nếu :Explore:Example được xác định, :Exp:Exa là các lệnh rõ ràng ngắn nhất có thể được sử dụng. Rõ ràng răng cưa :E vào một trong số chúng, như trên, ghi đè hành vi mặc định của Vim và cho phép định hướng.Tuy nhiên, :Ex vẫn sẽ mơ hồ.

+10

Một cách nhanh chóng khác để mở trình khám phá là sử dụng ': e.'. Điều này sẽ ': Explore' thư mục hiện tại. Điều này cũng có lợi ích tốt đẹp của việc không cần phím shift. –

+0

@PeterRincker Gọn gàng, nhưng đối với trường hợp sử dụng hoàn toàn khác. – Shriken

+0

Đối với n00b hoàn chỉnh, hãy đặt lệnh '! E Explore' trong tệp '~/.vimrc' của bạn, sau đó: E sẽ bí danh đúng để: Khám phá. – N0thing

Các vấn đề liên quan