9

現在の行番号を Elisp の変数に設定しようとしていますが、void-variable エラーが発生し続けます!

コードは次のとおりです。

(setq x what-line)

バッファ内の総行数も変数に設定したいのですが、同じエラーが発生しますか?!

4

3 に答える 3

16
(setq x (line-number-at-pos)
      y (line-number-at-pos (point-max)))

こういうのってどうやって調べるの?M-x find-function RET what-line RETのソースコードを表示してみてくださいwhat-linesimple.el(が定義されているファイル) を読むwhat-lineことは、基本的な Elisp プログラミングに慣れるための良い方法です。

于 2009-02-05T11:34:38.177 に答える
3
(setq x (what-line))
于 2009-02-05T10:18:38.410 に答える
2

前の回答で言及された line-number-at-pos 関数は、バッファーのアクセス可能な部分のみを考慮します。バッファが「狭められている」場合、隠線はカウントされないため、かなり混乱する可能性があります。

what-line 関数のコードを読むと、狭められたバッファーをどのように処理するかがわかります (実際、what-line は line-number-at-pos を呼び出すことで機能します)。

于 2012-10-08T18:24:15.233 に答える