: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
và :Explore
có các thuộc tính khác nhau. Ví dụ: không thể thực thi :E ~
vì :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
và :Example
được xác định, :Exp
và :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ồ.
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. –
@PeterRincker Gọn gàng, nhưng đối với trường hợp sử dụng hoàn toàn khác. – Shriken
Đố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