2

emacsclient documentationでは、EDITOR 設定の例は次のとおりです。

EDITOR="emacsclient --alternate-editor emacs +%d %s"

%d と %s はどのように使用できますか? + は指定した行から始まり、%s は編集するファイル名であることは理解していますが、%d と %s の値を置き換えるプログラムは何ですか?

たとえば、subversion が をキックしようとした場合$EDITOR、emacs は+%d%s、およびターゲット ファイルの 3 つのファイルを編集します。これらの %d と %s を次の 2 つの引数に置き換えるプログラムはありますか? emacsのドキュメントは間違っていますか? EDITORに設定しないのはなぜ`emacsclient --alternate-editor emacsですか?

4

1 に答える 1

2

構文は、Cのprintf関数で使用される構文と、それに触発された言語を模倣しています。10%d進表記の整数に置き換えることを%s目的としており、文字列に置き換えることを目的としています。ただし、の値に対してそのような置換を実行するプログラムはありません$EDITOR。これは、Emacsマニュアルのバグと見なされる可能性があります。

実行可能ファイルへのパスとして解釈するプログラム$EDITOR(いくつかは検索すらしません$PATH)と、エディターを起動するシェルスニペットとして解釈するプログラムがあります(実行可能ファイルに追加の引数を渡すことができます)。 。したがってEDITOR、特殊文字を含まない、実行可能ファイルへのフルパスのみに設定するのが最も安全です。オプションを渡したい場合は、リレースクリプトを使用します。たとえばEDITOR=~/bin/EDITOR、の内容~/bin/EDITORが次のような場合などです。

#!/bin/sh
exec emacsclient --alternate-editor emacs
于 2010-10-29T21:52:43.973 に答える