Ivy vô hiệu hóa hoàn thành cho một lệnh trong xe buýt nhỏ


8

Tôi có thể tắt hoàn thành cây thường xuân cho một lệnh duy nhất khi ở trong xe buýt nhỏ không?

Ví dụ tôi đang ở trong thư mục ~ / code / học /. Nếu tôi mở tìm tệp và tự động hoàn tất với Ivy tôi sẽ thấy

Find file: ~/code/study/

./ 
../ 
[...]

và tôi muốn, trong một lần nhảy, hãy chuyển đến ~ / other / code / nghiên cứu. Vì tôi có chế độ ivy để tự động hoàn tất, tôi không thể di chuyển con trỏ đến đầu tiên / và chỉ cần gõ khác ở đó. Đây là một nỗi đau cho một số điều. Tôi có thể bằng cách nào đó chỉnh sửa phần đầu tiên của một hoàn thành hoặc thậm chí vô hiệu hóa tạm thời hoàn thành chỉ cho lệnh này?

Cảm ơn rất nhiều!

Câu trả lời:


12

Tôi nghĩ những gì bạn đang tìm kiếm là C-M-j( ivy-immediate-done) trong bộ đệm mini. Chức năng này được mô tả như sau trong hướng dẫn sử dụng Ivy :

Thoát với đầu vào hiện tại thay vì ứng cử viên hiện tại (như các lệnh khác).

Điều này rất hữu ích, ví dụ như khi bạn gọi find-file để tạo một tệp mới, nhưng tên mong muốn khớp với một tệp hiện có. Trong trường hợp đó, bằng cách sử dụng C-j sẽ chọn tệp hiện có, đó không phải là những gì bạn muốn, sử dụng lệnh này thay vào đó.


Nhưng làm thế nào tôi có thể đưa con trỏ của mình đến ~ / <đây> / code / nghiên cứu để chỉnh sửa và áp dụng ngay lập tức?
Rafa de Castro

Tôi không nghĩ bạn có thể làm được C-M-j, nhưng đó là một cách để vô hiệu hóa hoàn thành.
tirocinium

5

Có nhiều cách tiếp cận để điều hướng tập tin áp dụng ở đây.

Chỉ để viết lại tuyên bố của bạn:

chuyển từ ~ / code / học sang ~ / other / code / học

  1. Dễ nhất và nhất quán: sử dụng ~để chuyển sang ~/và điều hướng từ đó.
  2. Giả sử bạn đã truy cập ~/code/studymột lần trước đó trong phiên Emacs hiện tại. Nhấn C-rđể truy cập tất cả các tập tin bạn đã truy cập trước đó. Bạn có thể xóa phần tập tin với C-k.
  3. Giả sử bạn có ~/code/studydấu trang hoặc trong recentf. Nhấn M-o bđể hoàn thành cho những người.
  4. Giả sử bạn đang ở trong diredbộ đệm của ~/code/study. Nhấn 0wđể sao chép đường dẫn hiện tại. Nhấn C-x C-f C-y: bạn có thể chỉnh sửa yank trong xe buýt nhỏ.

Chỉnh sửa: thêm một cách tiếp cận

Với cam kết gần đây nhất , bạn có thể nhấn C-M-o w C-yđể chỉnh sửa đường dẫn đầy đủ trong xe buýt nhỏ. Nếu bạn sử dụng nó rất nhiều, counsel-find-file-mapcó sẵn để liên kết sự kết hợp này với một cái gì đó ngắn hơn.


1

Bạn có thể chỉnh sửa tên tệp gốc trong khi hoàn thành bằng cách nhập DELhoặc <backspace>. Mỗi phím nhấn như vậy chuyển sang thư mục cha.

Xem phần Hoàn thành Tên tệp của Hướng dẫn sử dụng Ivy để biết thêm thông tin. Đặc biệt, bạn có thể quan tâm đến việc xử lý đặc biệt các dấu gạch chéo và /dấu ngã - nhập hai dấu gạch chéo trong bất kỳ phần hoàn thành nào sẽ thay đổi thư mục thành thư mục gốc ( ) và tương tự một dấu ngã sẽ chuyển sang thư mục chính của bạn.

Xem thêm biến tùy biến ivy-on-del-error-function.


Nếu tôi làm điều đó tôi sẽ có "~ / code / nghiên cứu" thì backspace "~ / code /" thì "~" code. Và tôi đã phải bắt đầu lại với Dropbox / code / nghiên cứu. Tôi muốn tránh việc lặp lại mã / nghiên cứu.
Rafa de Castro

0

Bạn vẫn có thể có hành vi tìm tệp mặc định nếu bạn làm

(defun default-find-file ()
  (interactive)
  (exit-minibuffer)
   (let  ((completing-read-function 'completing-read-default))
     (call-interactively 'find-file) ))
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.