ostatnio zacząłem używać Emacsa jako IDE Pythona, a to nie do końca intuicyjne ... Problem, z którym teraz walczę, to jak przekazywać argumenty wiersza poleceń do gorszych powłoka Pythona, gdy bufor jest oceniany za pomocą Cc Cc. Dzięki za pomoc.Emacs: przekazywanie argumentów do gorszej powłoki Pythona podczas oceny bufora
Odpowiedz
To nie wydaje się być łatwe; gorszy proces zarządzany przez moduł python.el
został zaprojektowany tak, aby przetrwał w wielu wywołaniach python-send-buffer
(i znajomych). Jednym z rozwiązań Znalazłem to napisać własną funkcję, która ustawia sys.argv
programowo z poziomu niższego procesu:
(defun python-send-buffer-with-my-args (args)
(interactive "sPython arguments: ")
(let ((source-buffer (current-buffer)))
(with-temp-buffer
(insert "import sys; sys.argv = '''" args "'''.split()\n")
(insert-buffer-substring source-buffer)
(python-send-buffer))))
Wykonanie tej funkcji w buforze *scratch*
i/lub zapisać go w pliku .emacs
, a następnie, jeśli chcesz, powiązać go z wygodną sekwencją klawiszy. C-c C-a
nie wydaje się być wykorzystywane przez python-mode
, więc może:
(global-set-key "\C-c\C-a" 'python-send-buffer-with-my-args)
Komenda poprosi o argumentów użyć, a następnie skopiować bufor źródłowego do tymczasowego bufora poprzedzenie go z fragmentem kodu, który wyznacza sys.argv
do listy podanych argumentów, a na końcu zadzwoni pod numer python-send-buffer
.
Powyższy kod po prostu naiwnie podzieli napis, który wpisujesz na białych znakach, więc jeśli potrzebujesz argumentów zawierających spacje, potrzebujesz bardziej wyrafinowanego algorytmu.
- 1. emacs powłoki rur produkcji do nowego bufora
- 2. Przekazywanie argumentów skryptu Pythona do testowania modułów
- 3. przekazywanie cytowanych argumentów do węzła za pomocą skryptu powłoki?
- 4. Przekazywanie argumentów do IIFE
- 5. Automatyczne zamykanie bufora tabulacji w trybie powłoki emacs?
- 6. Lazy oceny dostarczonych argumentów
- 7. Szybki tryb powłoki emacs?
- 8. przekazywanie zmiennych z Pythona do skryptu powłoki bash poprzez os.system
- 9. Czy można polegać na kolejności oceny argumentów funkcji Pythona?
- 10. Przekazywanie argumentów do funkcji constexpr
- 11. call_user_func_array przekazywanie argumentów do konstruktora
- 12. Przekazywanie argumentów do funkcji Inline
- 13. Przekazywanie argumentów do wydania Maven
- 14. Przekazywanie argumentów do filtra JQ
- 15. Przekazywanie argumentów do obsługi zdarzeń
- 16. Zatrzymywanie powłoki tex przed otwarciem podczas kompilowania Latex z Emacs
- 17. przekazywanie argumentów do restful kontrolera w laravel
- 18. Automatyczne wykonywanie komend podczas uruchamiania powłoki Pythona
- 19. Emacs ansi-term maksymalny rozmiar bufora?
- 20. Parsowanie argumentów skryptu powłoki
- 21. Przekazywanie argumentów do debuggera XSLT Visual Studio:
- 22. przekazywanie argumentów do formularza dynamicznego w django
- 23. emacs przełączania bufora za oknem
- 24. przekazywanie zmiennej liczby argumentów
- 25. Przekazywanie argumentów konstruktorowi klasy
- 26. Przekazywanie zmiennej liczby argumentów
- 27. Jak działa przekazywanie argumentów?
- 28. Kontekst OpenGL wewnątrz bufora Emacs
- 29. Przekazywanie argumentów programistom Hadoop
- 30. Kolory w wierszu powłoki powłoki Emacs
Dziękuję Sean, wpadłem na pomysł. To działa. W tym przypadku mogę również przekazać argumenty bezpośrednio ustawiając zmienną sys.argv przed wywołaniem funkcji głównej. – Sammy
+1 za świetny pomysł. –
jeśli otrzymasz ten komunikat 'progn: definicja funkcji symbolu jest nieważna: python-send-buffer' spróbuj zmienić' python-send-buffer' na 'python-shell-send-buffer'. – boclodoa