6

org-entry-properties関数とを使用しようとしていますorg-id-getが、どちらもオプションの引数を使用していますpom。たとえば、org-entry-propertiesドキュメントには次のように書かれています。

ポイントまたはマーカーPOMでエントリのすべてのプロパティを取得します。

Emacsのマニュアルには「マーカー」という言葉はほとんど記載されていませんが、で終わる関数がいくつかあります-marker。今、私はそれについていくつか質問があります。

  1. そのポイントまたはマーカーは何ですか?
  2. マークリングのマークと同じですか?
  3. org-modeバッファでマーカーを取得するにはどうすればよいですか?
  4. 上記の関数呼び出しでこのマーカーを使用するにはどうすればよいですか?
4

2 に答える 2

10

バッファー内の(絶対)位置は、その位置の前にあるおおよその文字数である数値で示されます。一方、マーカーを使用すると、バッファー内の「相対位置」をマークできます。その前にテキストを追加すると、前方に移動します(非表示、幅0の文字のように)。

いつでも、マーカーを(絶対)位置(整数)に変換できます。多くの議論がPOMを望んでいるのはそのためです。彼らは位置を望んでいますが、それがマーカーとして与えられていることを受け入れています。

emacsの「マーク」は、適切なキーコードで簡単にアクセスできる特定のマーカーの1つです(C-SPCが設定し、Cx Cxがマークとポイントを交換します)。/ a「マークリング」は、以前のすべての「マーク」マーカーの履歴です(ローカルマークリングである特定のバッファー内、またはいわゆるグローバルマークリングの場合はグローバルに)。

elispマニュアルの詳細:

于 2012-11-12T10:18:37.767 に答える
4

マーカーの詳細については、Emacsマニュアルの代わりに、EmacsLispリファレンスマニュアルを参照してください。

マーカーは、周囲のテキストを基準にしたバッファー内の位置を指定するために使用されるLispオブジェクトです。マーカーは、テキストが挿入または削除されるたびにバッファーの先頭からのオフセットを自動的に変更するため、マーカーの両側に2文字が残ります。

したがって、言及する関数のPOM要素は、マーカー、つまり、バッファーとそのバッファー内の位置の両方を含むlispオブジェクト、または単に位置のいずれかになります。最初のケースでは、関数は最初にマーカーのバッファーに切り替わりpoint、残りの関数を実行する前にマーカーの位置に移動します。

2番目のケースでは、現在のバッファーにpoint残りますが、残りの関数を実行する前に指定された位置に移動します。

つまり、関数は指定されたバッファ/位置を基準にして実行されます。関数の本体の最後で、の元の場所pointが復元されます。

于 2012-11-12T10:11:49.770 に答える