Emacs'te yönerge modunu kullandığımda, kabuk komutu komutunu! Xxx ile çalıştırabilirim, ancak bu komutu çalıştırmak için bir tuş nasıl bağlanır? Örneğin, bir dosyaya O tuşuna basmak istiyorum, daha sonra bu dosyayı açmak için 'cygstart' komutunu çalıştıracak. Teşekkürler.Yönlendirilmiş emacs'ta bir kabuk komutunu çalıştırmak için bir anahtar nasıl bağlanır
7
A
cevap
10
shell-command
işlevini kullanabilirsiniz. Örneğin:
(defun ls()
"Lists the contents of the current directory."
(interactive)
(shell-command "ls"))
(global-set-key (kbd "C-x :") 'ls); Or whatever key you want...
tek tampon maddesi içinde bir komut tanımlamak için, local-set-key
kullanabilir. Direkt olarak, dosyanın adını dired-file-name-at-point
kullanarak noktadan alabilirsiniz. Yani, sorulan tam olarak ne yapmalı:
(defun cygstart-in-dired()
"Uses the cygstart command to open the file at point."
(interactive)
(shell-command (concat "cygstart " (dired-file-name-at-point))))
(add-hook 'dired-mode-hook '(lambda()
(local-set-key (kbd "O") 'cygstart-in-dired)))
3
;; this will output ls
(global-set-key (kbd "C-x :") (lambda() (interactive) (shell-command "ls")))
;; this is bonus and not directly related to the question
;; will insert the current date into active buffer
(global-set-key (kbd "C-x :") (lambda() (interactive) (insert (shell-command-to-string "date"))))
lambda
yerine isimsiz işlev tanımlar. Bu şekilde, başka bir adımda bir anahtara bağlı olacak bir yardımcı işlev tanımlamanız gerekmez.
lambda
anahtar sözcüktür ve bir sonraki parantez çifti, gerekirse, bağımsız değişkenler içerir. Dinlenme herhangi bir normal fonksiyon tanımına benzer.
İlgili konular
- 1. VBA kullanarak bir kabuk komutunu nasıl uygularım?
- 2. Bir kabuk komutunu bir php komut dosyasından yürütme
- 3. Değişkenlerden awk komutunu kabuk komutuna nasıl geçirebilirim?
- 4. Groovy'i backticks olan bir kabuk komutunu yürütmek için nasıl kullanabilirim?
- 5. Hbase kabuk komutunu koydu
- 6. Ruby Tk'de bir anahtar olay nasıl bağlanır
- 7. Git Her bir işlem için kabuk komutunu çalıştır
- 8. Birden çok kabuk komutunu joker karakterlerle çalıştırma
- 9. Kabuk sürümüm linux komutunu kullanarak nasıl bulunur?
- 10. GNU Yapın ve kullanın; Aynı kabukta birden çok kabuk komutunu çalıştırmak için
- 11. Nasıl bir işlevi çalıştırmak için?
- 12. Vim'de bir dosyayı kaydettikten sonra bir kabuk komutunu otomatik olarak yürütmek nasıl?
- 13. Belirli bir konumdan Clojure uygulamasında kabuk komutunu çalıştırın
- 14. Yönlendirilmiş bir grafiğin bölümlendirilmesi
- 15. Başka bir klasörde git "log" komutunu kullan
- 16. Çalıştır kabuk benim node.js sunucudaki bir shell script çalıştırmak istediğiniz
- 17. zamanlama görevi komut satırından perl komutunu çalıştırmak için
- 18. Yeni bir Phil'in yönlendirilmiş yönlendiricisini nasıl kullanırım?
- 19. WPF'de bir ListBoxItem nasıl bağlanır?
- 20. WPF: İçerik için yönlendirilmiş bir etkinlik nasıl oluşturuldu?
- 21. Windows toplu iş kümesinde bir FOR komutunu yeniden yönlendirmek için
- 22. Belirli bir paylaşımlı ELF kütüphanesi için nasıl bir fonksiyona bağlanır?
- 23. Bir kez çalıştırmak için bir foreach alma
- 24. Python'da bir kabuk nasıl yazılır
- 25. mocha testlerini çalıştırmak için Grunt.js'yi kullanma
- 26. Yönlendirilmiş Asiklik Grafikler için Diff
- 27. IntelliJ IDEA'da, geçerli dosya ile parametre olarak bir kabuk betiği yürüten bir anahtar bağını nasıl oluşturabilirim?
- 28. Android öykünücüsünün bir sonraki kabuk komutundan önce çalışmasını bekleyin.
- 29. nasıl bir birincil anahtar
- 30. Başka bir program çalıştırmak için python kullanma?
Not: Soruyu yanıtlamadan önce bu işlevlerden hiçbirini bilmiyordum. 'M-! 'Üzerindeki' C-h k' kullanarak 'shell-command' ismini aldım; Öncelikle bir "dired-' "işlevi olduğunu tahmin edip" C-h f "ve sekmeyi kullanarak ismin otomatik olarak tamamlandığını tahmin ederek" dosya-ad-isim-ismi "aldım. Ayrıca, Emacs işlev isimlerini ve bunun gibi efektleri kolayca anlayabilirsiniz - her şeyden önce bir kendini belgeleyen ** editörüdür! Bu, harika olan birçok yoldan sadece biri. –