Làm thế nào để tránh gõ vào không gian của Google sau khi ^ ^ để di chuyển lên trong thư mục trong thư mục?


9

^là ràng buộc chính để di chuyển đến thư mục mẹ trong dired("Thư mục lên").

Tuy nhiên, trong Gnu Emacsngày Windows 7 Professional 64-bitvới cách bố trí bàn phím tiếng Đức của tôi, nó không phải là đủ để gõ "^" nhưng tôi phải gõ không gian sau đó để thực hiện các công việc quan trọng mang tính ràng buộc.

Làm cách nào tôi có thể xác định lại ràng buộc khóa để tránh phải nhấn phím cách và di chuyển lên trên chỉ với "^"?


C-h k ^<space> trả lại

^ chạy lệnh dired-up-thư mục, là một hàm Lisp được biên dịch tương tác trong `dired + .el '.

Nó bị ràng buộc với ^ ,.

(dired-up-thư mục & tùy chọn KHÁC-WINDOW)

Chạy Dired trên thư mục cha của thư mục hiện tại. Tìm thư mục cha hoặc trong bộ đệm này hoặc bộ đệm khác. Tạo một bộ đệm nếu cần thiết.


4
Đây là một vấn đề hệ điều hành vì hành vi này nghe giống như các phím dính và được tích hợp vào một số keymap nhất định, chẳng hạn như us-intltrên Linux.
wasamasa

Âm thanh như wasamasa là đúng, trong trường hợp đó bạn nên hỏi làm thế nào để liên kết lệnh với một khóa khác.
Andrew Swann

@AndrewSwann: Có thể, có thể không. Đó là một điều tốt để kiểm tra, vâng. Nhưng hành vi của Linux không liên quan ở đây, giả sử microsoft-windowsthẻ là phù hợp.
vẽ

Cách đơn giản nhất để kiểm tra điều này sẽ là xem liệu hành vi tương tự có áp dụng cho các chương trình khác hay không, chẳng hạn như bằng cách nhập ^vào notepad.exe.
wasamasa

3
Tôi nghĩ rằng bạn chỉ có một vài tùy chọn: (1) Sử dụng bố cục bàn phím khác trong đó ^ không phải là phím chết - điều này được thực hiện ở cấp HĐH, không phải trong emacs hoặc (2) Ràng buộc một số phím khác để dired-up-directorysử dụng thay vào đó, hoặc (3) Sống với vấn đề và nhập khoảng trắng sau ^. Tôi đi với (3) bản thân mình, nhưng tôi làm thấy nó khó chịu.
Harald Hanche-Olsen

Câu trả lời:


11

Với thiết lập bàn phím của bạn, phím ^ rất có thể là "phím chết". Đó là một chìa khóa có nghĩa là được sử dụng kết hợp với một cái khác, để tạo ra một nhân vật khác. Trong trường hợp này, nó có nghĩa là tạo ra các ký tự có dấu: ^ e sẽ tạo ra ê, ^ a sẽ tạo ra vân vân và vân vân.

Mặc dù vậy, nó không phải là cụ thể đối với emacs: Tôi đoán tất cả các ứng dụng của bạn yêu cầu bạn phải nhấn ^ và để tạo ra một ^ thực tế trên màn hình.

Để giải quyết điều này, bạn chỉ cần sử dụng một bố cục bàn phím khác. Trong trường hợp bố trí tiếng Đức của bạn trong môi trường windows, tôi chỉ cần tham khảo /superuser/280005/how-to-make-and-non-dead-keys-on-windows-7- với bố cục bàn phím tiếng Đức , hy vọng đây là điều đúng đắn.


0

Tôi đoán bạn đã xác nhận ràng buộc ^trong Dired là dired-up-directory, vì vậy lệnh nào được gọi không phải là vấn đề, trừ khi bạn hoặc thứ gì đó bạn tải đã thông báo lệnh đó. (Sử dụng C-h k ^và cho chúng tôi biết nếu lệnh được khuyên.)

Bạn đã gắn thẻ này với microsoft-windows. Có thể đề cập đến phiên bản MS Windows mà bạn sử dụng. Tôi không thấy điều này với Windows 7 64-bit.

Bạn có thấy hành vi tương tự nếu bạn bắt đầu Emacs bằng cách sử dụng runemacs -Q, không có tệp init không? Nếu vậy, xin vui lòng cho một công thức ở đây, bắt đầu từ runemacs -Q. Trong trường hợp đó, đây có thể là một lỗi Emacs.

Nếu bạn không thấy vấn đề với emacs -Qthì đệ quy chia đôi tệp init của bạn cho đến khi bạn thu hẹp nó để tìm ra thủ phạm. Bạn có thể sử dụng lệnh comment-regionđể nhận xét vùng mã (sử dụng C-uvới nó để bỏ ghi chú vùng đó).

Khi bạn tìm thấy mã thủ phạm, bạn có thể điều tra kỹ hơn. Hoặc bạn có thể báo cáo ở đây những gì bạn đã tìm thấy, nếu bạn cần trợ giúp thêm. Để được giúp đỡ tốt nhất, hãy càng cụ thể càng tốt.

Đối với việc xác định lại khóa: Đó không phải là vấn đề - chỉ cần sử dụng (define-key dired-mode-map SOME-KEY 'dired-up-directory), đâu SOME-KEYlà mô tả khóa. Ví dụ: để liên kết lệnh với C-o, bạn có thể sử dụng:

(define-key dired-mode-map (kbd "C-o") 'dired-up-directory)

Cập nhật sau bình luận của bạn và những người khác -

Vì bạn thấy điều tương tự từ đó emacs -Q, nên vấn đề là do thiết lập MS Windows của bạn (tức là bên ngoài Emacs) hoặc lỗi trong chính Emacs.

Nhưng các ý kiến ​​khác làm rõ rằng vấn đề dường như là các phím dính trong MS Windows. Hãy thử tắt các phím dính .


3
Điều này gần như chắc chắn bên cạnh quan điểm. Nhận xét của @wasamasa là hoàn toàn có liên quan, mặc dù. Để giải thích một chút, vấn đề là vì ^ bị dính, emacs thậm chí không nhìn thấy sự kiện nhấn phím cho đến khi người dùng gõ một khoảng trắng.
Harald Hanche-Olsen

cảm ơn câu trả lời chi tiết của bạn Vâng, với runemacs.exe -Qnó là như nhau. Nhập ^ trong bộ đệm chỉ nhập ký tự, nếu tôi nhập <dấu cách> hoặc khóa khác sau đó. Tương tự trong diredchế độ, nó cần ^1 <space>phải di chuyển lên. Vì define-key: nhưng tôi muốn sử dụng phím ^ cho liên kết này, có cách nào để tránh nó chờ <dấu cách> không?
Chủ yếu là vô dụng

@Harald: vậy tôi có thể làm gì?
Chủ yếu là vô dụng
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.