タグ付けされた質問 「line-numbers」


2
大きなバッファーで `line-number-at-pos`を取得するより高速な方法
この機能line-number-at-pos(約50回繰り返した場合)は、ポイントがバッファーの終わり近くにあるときに、セミラインバッファー(たとえば50,000行)で顕著なスローダウンを引き起こしています。スローダウンとは、合計で約1.35秒を意味します。 100%のelisp関数を使用して行をカウントし、バッファーの先頭に移動する代わりに、モード行に表示される行番号に関与する組み込みのC機能を活用するハイブリッドメソッドに興味があります。モードラインに表示される行番号は、バッファのサイズに関係なく、軽い速度で発生します。 テスト関数は次のとおりです。 (defmacro measure-time (&rest body) "Measure the time it takes to evaluate BODY. http://lists.gnu.org/archive/html/help-gnu-emacs/2008-06/msg00087.html" `(let ((time (current-time))) ,@body (message "%.06f" (float-time (time-since time))))) (measure-time (let* ( line-numbers (window-start (window-start)) (window-end (window-end))) (save-excursion (goto-char window-end) (while (re-search-backward "\n" window-start t) (push (line-number-at-pos) line-numbers))) line-numbers))

3
エラー時に行番号を表示
emacsが私には理解できないエラーを投げるとします。または、「変数としてのシンボルの値はvoid:モードです」というエラーが表示される場合もありますがmodes、コードにはシンボルが多数出現するため、コンテキストが必要です。Emacsを設定して、Lispコードの行番号を指定して、エラーの原因となっているコードを知ることができますか? 私がやって試してみました(setq stack-trace-on-error '(buffer-read-only))とスタックトレースを取得するための努力の犯したコードを実行しました。スタックトレースもありません。 またedebug-defun、関数を呼び出して、ステップスルーすることも試みました。エラーがスローされるのは、関数から抜け出すまでではありません。 (私は現在、elispの一般的なデバッグスキルを開発しているので、現在直面している特定のエラーの原因にはあまり興味がありません。行番号、sexp、またはスタックトレースを取得する方法についてアドバイスしてください。エラー。)

1
行が長い論理行である場合は常に、行番号(左側)を有効にする方法
私がしているlinum-modeだけでなく、として有効truncate-lines。Emacsが列0を表示する限り正常に機能します。 行番号は左側に表示されます(OK) しかし、ウィンドウが水平にスクロールされるとすぐに、行番号が消えます: 行番号は左側に表示されません 長い論理行に沿って移動したときに行番号(左側)が表示されたままになるようにするにはどうすればよいですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.