質問: 選択したテキストをPythonマクロのように変換する 私はEmacs(今は約6週間)で始まったばかりなので、私はそのコーディング言語に精通していません。私はEmacsのために、私がSublime Textセットアップで持っているPythonマクロに相当するものを書くことが可能かどうか疑問に思っていました。 崇高なテキストでは、私は選択された行のテキストを変換できるPythonマクロを持っています。私が線を選択すると ``` foo bar baz ``` テキストが `['foo'、 'bar'、 'baz']` に変換された私の選択したショートカット `C-l C-s` を押します。 私はEmacsのためにこれをどうやってできるのだろうと思っていた。
回答: このメソッドは、選択した行を単一引用符で囲み、リスト内に配置します。 ``` (defun lines-to-list (point mark) (interactive "r") (let ((text (buffer-substring point mark))) (delete-region point mark) (insert "[") (insert (mapconcat (lambda (line) (format "'%s'" line)) (split-string text "\s*\n\s*") ", ")) (insert "]"))) ``` 次のようなキーショートカットにバインドすることができます: ``` (define-key python-mode-map (kbd "C-c C-l") #'lines-to-list) ```