Ketika saya menjalankan #'helm-find-files
, dan memindahkan titik ke direktori, menekan <ret>
hasil membuka direktori itu dalam mode dired. Kita harus menekan C-j
untuk masuk ke direktori itu di Helm.
Saya ingin <RET>
bertindak seperti di C-j
sini, tetapi tidak harus di tempat lain. Saya memeriksa, dan C-j
terikat #'helm-maybe-exit-minibuffer
, sedangkan <RET>
terikat #'helm-execute-persistent-action
. Mengikat <RET>
untuk #'helm-maybe-exit-minibuffer
bekerja untuk kasus ini, tapi istirahat kasus lain: misalnya, helm autocomplete di describe-function
.
Jadi, ketika menggunakan Helm untuk menemukan file, bagaimana saya bisa membuat menekan <RET>
membuka direktori itu di Helm?
key-bindings
helm
kawan
sumber
sumber
ido-mode
, di mana menekan<RET>
memilih folder untuk menemukan file di dalamnya. Saya pikir ini adalah perilaku yang paling konsisten ketika mencoba menemukan file - apa yang ingin Anda lakukan ketika Anda menemukan file itu buka; apa yang ingin Anda lakukan ketika Anda menemukan folder masuk ke dalamnya sehingga Anda dapat menemukan file.<RET>
baik pelengkapan otomatis dan pemilihan. Anda tidak perlu menekan<tab>
untuk menyelesaikan menyelesaikan nama file. Tapi kami berdebat tentang preferensi - saya hanya ingin "masuk" berarti "pilih yang tepat". Dan bagi saya, itu tidak berarti "open dired". Jika saya di shell, saya mengharapkan perilaku yang berbeda.Jawaban:
Saya juga telah menggunakan
ido-mode
sebuah banyak dan dilatih memori otot saya :) Saya pikirido
gaya lebih intuitif dibandingkan denganhelm
pendekatan. Saya mencari hal-hal (mengetik beberapa karakter) dan berkomitmen untuk menemukan (klikRET
), seperti bilah pencarian / alamat browser web saya. Jika pilihannya adalah direktori, saya masuk ke direktori ini dan mulai mencari lagi di direktori ini. Ini tampak alami bagi saya, jadi saya telah menulis sedikit saranhelm-execute-persistent-action
untuk memaksa mekanik ini.Saya juga
backspace
sedikit mengoptimalkan kunci. Jika saya mengetik sesuatu dan ingin melakukan koreksi, saya menekan backspace. Ini akan menghapus satu karakter. Jika saya berada di awal direktori dan menekan backspace lagi, saya menavigasi satu tingkat ke atas. Ini mempercepat navigasi secara dramatis!Untuk menghapus yang tidak berguna
.
dan..
di awal, Anda dapat menambahkannya kehelm-boring-file-regexp-list
variabel konfigurasi.sumber
find-file
sekalipun. Dan.
dan..
tidak benar-benar tidak berguna ketika Anda ingin membuka Dired di direktori saat ini atau orang tua. Dan saya menemukan ituC-l
lebih cepat daripada menekanbackspace
.(kbd "<return>")
? Tampaknya sedikit lebih bersih untuk hanya memanggil helm-execute-persistent-action langsung di dalam fungsi baru.Symbol's value as variable is void: helm-find-files-map
. Ketika saya lakukan(helm-mode 1)
setelah(require 'helm)
, saya tidak mendapatkan kesalahan seperti itu, tetapi tidak berhasil juga. Ada ide apa yang mungkin saya lewatkan? Inilah init.el lengkap saya: pastebin.com/drFZsDxW Versi Emacs adalah 24.4.1 (i686-pc-mingw32)define-key
, jika saya mencobaC-h k RET
pada minibuffer find-file itu masih menunjukkanhelm-confirm-and-exit-minibuffer
terikat.Saya tidak dapat mengomentari jawaban Fu86 karena rep tapi saya celengan mundur (maaf jika ini bukan protokol normal). Saya mendapat fungsi batal menggunakan jawabannya karena "helm-find-file-map". Ini berhasil bagi saya untuk menggunakan peta kunci "helm-peta" sebagai gantinya. Tidak ada konflik sejauh ini dan itu adalah perilaku yang saya cari.
... (define-key helm-map (kbd "<return>") 'helm-execute-persistent-action) ...
sumber
Saya tidak bisa mendapatkan jawaban @ Fu86 untuk bekerja tetapi yang berikut ini berhasil bagi saya:
lihat juga: /programming/27652371/how-can-i-change-emacs-helm-find-file-default-action-on-directory-to-be-go-insid
Edit
Solusi saya berfungsi di helm-20141112.946 tetapi di helm-20160211.934 tidak berhasil dan @ Fu86 jawabannya adalah solusinya
sumber