Синтаксис таңбалары код ретінде кішірейтілген python жол мәтінін көрсетеді

Менде python коды бар, оның құрамында python коды бар бірнеше ұзындықтағы мәтіндік әріптер бар. Бұл жолдар әдетте әдеттегідей орындалғандай, бір уақытта біркелкі түсті болуы керек.

Дегенмен, менің буферімді осы жолдардың кез-келгеніне дейін тарата аламын және содан соң, олардың синтаксисі кодты секілді кодпен емес, кодын (мысалы, «» « бастапқы буферде жоқ)

Мұны істеудің қандай да бір тәсілі бар ма, бұл көптеген элиспті қамтымайды?

ЕСКЕРТПЕ: Міндетті тарылтуды қажет етпеймін, синтаксисті сол сияқты бөлектеуді жөн көрген сияқты, өйткені толық буферде бұл шатастыратын еді ...

5
Тек тырнақшаларды қоспағанда, жолдың мазмұнын ғана қысқартпайды, мәселені шешеді ме?
қосылды автор Louis Salin, көзі
Сіз өзіңізді қызықтыратын кез келген нәрсені қолдайтын басты режимді өзгерте аласыз. Содан кейін оны кеңейте отырып, оны өзгертіңіз. @lindydancer string-edit бумасы туралы сөйлесіп тұр, бірақ ол қалағаныңыздай бөлектеуді қолдамайды.
қосылды автор Louis Salin, көзі
Біраз уақыт бұрын біреуі HTML режимінде ұқсас нәрсені істегенін көрдім, бірақ қазір оны көргенімді есіме түсірді. Қалай болғанда да, негізгі идея енгізілген кодты жаңа буферге көшіру және оны тиісті негізгі режимді пайдалану арқылы көрсету болды. Аяқталғаннан кейін сиқырлы кілттер тізбегі (C-c C-c сияқты) нәтижені бастапқыда қай жерде көшірсе болады. Өкінішке орай, кейбір элисп жазуды талап етеді, мен қорқамын.
қосылды автор Daniel McPherson, көзі
@JordonBiondo Менде жолға тарылту (тырнақшасыз) бөлектеуді өзгертпейді ... сонымен қатар font-lock-fontify-buffer жұмыс істемейді
қосылды автор Faito Dayo, көзі
@Lindydancer Рахмет! Менің ойымша, мұндай нәрсені істеу керек деп ойладым, бірақ менің шеберлігім өте төмен ... Мен мұны істеуге тырысамын деп үміттенемін ...
қосылды автор Faito Dayo, көзі

1 жауаптар

Мұны polymode көмегімен жасауға болады.

(require 'polymode)
(defcustom pm-host/python
  (pm-bchunkmode "python"
                 :mode 'python-mode
                 :font-lock-narrow nil)
  "Python host chunkmode"
  :group 'hostmodes
  :type 'object)

(defcustom pm-inner/python
  (pm-hbtchunkmode "python"
                   :mode 'python-mode
                   :head-reg  "\"\"\""
                   :tail-reg  "\"\"\"")
  "Python typical chunk."
  :group 'innermodes
  :type 'object)

(defcustom pm-poly/python
  (pm-polymode-one "python"
                   :hostmode 'pm-host/python
                   :innermode 'pm-inner/python)
  "Python typical polymode."
  :group 'polymodes
  :type 'object)

(define-polymode poly-python-mode pm-poly/python)
  1. C-x b test.py RET
  2. M-x poly-python-mode RET

Бұл режимде үш нүктелі жолдар python коды ретінде бөлінеді. (Жақсы идея емес, бірақ оны ауыстырып қосуға болады).

enter image description here

Қазіргі уақытта polymode қаріп-құлыптауды жаңартатын мәселелер бар сияқты. Дегенмен, бұл іс жүзінде жұмыс істеуі керек.

4
қосылды
@PythonNut Бұл мен үшін жұмыс істемейді ... Мүмкін сіз қаріппен құлыптау туралы мәселелерді білесіз бе? Бұл мәселелер қайсысы? Мен Emacs 24.3.1 пайдаланамын
қосылды автор Faito Dayo, көзі
Мен енді көріп отырмын ... Мәтінді өзгерту жаңартуларды күшейтеді ... бұл, өкінішке орай, автоматты емес. Қалай болса да, жауап үшін көп рахмет!
қосылды автор Faito Dayo, көзі
@telethan, соңында айтқанымдай, ауысқан кезде қаріп-құлыпқа қатысты кейбір қиындықтар бар сияқты. Мен оны іздеймін және оны шешуге болатынын білу үшін мәселе туындауы мүмкін.
қосылды автор PythonNut, көзі
@telethan Ah, негізгі режимдер ауыспайды. ;) Полимодты емес күйге оралу үшін python-mode пайдалануыңыз қажет.
қосылды автор PythonNut, көзі
@jmlorenzi бұл мәселе нені білдіреді? Мәселе мынада, ол бастау үшін қосылмайды, тырнақша ішіндегі python кодын өзгертуге тырысыңыз. Мұны оны ерекше атап өту керек. Бұл қате туралы айтқанмын.
қосылды автор PythonNut, көзі
Мен ОШ үшін бұл жұмыс істейді деп үміттенемін, бірақ мен үшін бұл керемет жұмыс! Сіз мұны өзгерте аласыз дейсіз, бірақ мұны қалай істейсіз? Мен оны ауыстыра аламын, бірақ оны қалай ауыстыруға болатынын түсіну мүмкін емес ...
қосылды автор Lord Loh., көзі
Бірақ мен оны ауыстыра алмаймын дейтін болсам, бұны команданы анықтай алмаймын дегенді білдіремін. Синтаксисті бөлектеуі жойылмаса, бірақ poly-python-mode деп екінші рет қоңырау шалғанда, менің режим жолында PM ол әлі де белсенді
қосылды автор Lord Loh., көзі
Жарайды, python-mode -ке ауысыңыз, шебер сияқты жұмыс істейді! Мен питон режимінен шыққанымды түсінген жоқпын ... (BTW, сайт маған бергеннен кейін сыйақыға ие боламын.Жауап үшін рахмет ... бұл менің сұрағым емес, haha!)
қосылды автор Lord Loh., көзі