3

Diredバッファのある時点で「もの」が何であるかを知りたい。

たとえば、Debugは「ディレクトリ」です。

drwxrwxrwx 010-08-200917:50デバッグ

Makefileは「ファイル」です:

-rw-rw-rw- 15k 6-03-2009 13:02 Makefile

これは「ヘッダー」です

d:/ foo / bar / Debug:

物を見つける1つの方法は、どの顔がポイントにあるかを調べることです。それを行う別の方法はありますか?ポイントの境界を決定するにはどうすればよいですか?

標準(thing-at-point'filename)は、ファイル名のスペースを処理しません。

4

4 に答える 4

6

これらの関数は、必要なものを作成するのに役立つ場合があります。

  • dired-get-filename
  • dired-move-to-filename
  • dired-ファイル名の終わりに移動
  • file-directory-pとその仲間たち
于 2009-08-11T21:49:39.620 に答える
1

オーバーレイを使用してテキストを強調表示できます。これを行うために.emacsファイルに追加できるいくつかの関数を次に示します。重要なのは、この方法で作成されたすべてのオーバーレイに「my-highlights」という名前を付けて、後でそれらのオーバーレイだけを削除できるようにすることです。

(defun highlight-thing-at-point ()
  (interactive)
  (let* ((my-thing (bounds-of-thing-at-point 'sexp))
         (my-overlay (make-overlay (first my-thing) (rest my-thing))))
    (overlay-put my-overlay 'name 'my-highlights)
    (overlay-put my-overlay 'face 'highlight)))

(defun unhighlight-all-of-mine ()
  (interactive)
  (remove-overlays nil nil 'my-highlights))

編集:

スペースが含まれるポイントでファイル名の境界を返すカスタム関数を追加できます。例については、このEmacsWikiの記事を参照してください。したがって、my-bounds-of-filename-at-pointという名前の関数を作成すると、(bounds-of-thing-at-point'filename)および(thing-at-point' filename)のデフォルトとして設定できます。これ:

(put 'filename 'bounds-of-thing-at-point 'my-bounds-of-filename-at-point)
于 2009-08-11T07:01:17.307 に答える
1

リストの最初の文字は、ディレクトリの場合はd、リンクの場合はl、通常のファイルの場合は-です。キャラクターやブロックのデバイス、プロセスなどを表すキャラクターがあります。これ以上何を知りたいですか?(私はあなたの「ヘッダー」タイプを見たことがありません。どのようにしてそれを作成しましたか?)

于 2009-08-11T16:10:30.693 に答える
1

ある時点で1つのことは決してありません(ほとんどありませんか?) 。特定のタイプのものであるポイントまたはその近くのテキストを取得できるポイントアットポイント関数があります。したがって、ここには根本的な誤解があります。

Diredでは、他の場所と同様に、ポイントがどこにあるかに応じて、ポイントでのシンボル名、ポイントでのファイル名、およびその他のいくつかの種類のものをすべて同じ位置から取得できます。

他の人は、与えられた行が通常のファイル用かディレクトリ用かを判断する方法に答えました。

Dired +を使用する場合は、 C-h RET(コマンド)を使用diredp-describe-fileして、現在の行のファイルまたはディレクトリに関する情報(タイプ、属性など)を取得できます。

プログラムでポイントまたはその近くにあるものを取得する場合は、Thing AtPoint+を参照してください。

于 2011-09-05T00:13:28.540 に答える