バッファの最後とウィンドウの下部の空白行を区別しますか?


7

Q:バッファーの終わりとウィンドウの下部を区別する視覚的なインジケーターを取得するにはどうすればよいですか?

使用例:下部に空白行があるバッファーがあります。ただし、空白行を超えるウィンドウの下部も空白です。バッファの終端/空白行がどこで停止するかを視覚的に確認できるようにしたいと思います。

下のスクリーンショットのように、Vimはウィンドウの下部にある非テキスト文字(チルダ)を使用してこれを行い、そのスペースのバッファー(空白行など)には何もないことを示します。

Vimチルダ

EmacsでこのVim機能の類似物をどのように入手できますか?

編集: @glucasの答えは正しいようですが、小さなラップトップ画面の画面スペースを節約するために私のものをnilに設定したので、フリンジを使用しない答えを見たいです。


empty-lineコンポーネントを使用してfringe-indicator-list、バッファの終わりがどこから始まるかを示すのはどうですか?たとえば、(setq fringe-indicator-alist '((empty-line . empty-line))) 必要に応じてalistにコンポーネントを追加します。ただし、この方法では、フリンジを表示する必要があります。参照: reddit.com/r/emacs/comments/2kdztw/...
lawlist

回答:


7

indicate-empty-linesファイルの末尾の後の行でフリンジマーカーを有効にするようにカスタマイズしたり、を呼び出しtoggle-indicate-empty-linesてインタラクティブにオンとオフを切り替えたりできます。

MELPAには、デフォルトのフリンジインジケーターを〜に置き換えて、viで得られるものに近い外観のパッケージがあります。を参照してくださいvi-tilde-fringe

更新しました

別の方法として、空白モードを使用して改行を表示する方法があります。顔をwhitespace-newline-mode微調整してみてくださいwhitespace-newline。視覚的にはこの方法は、コンテンツの後の空の行を除いてバッファー内のすべての行をマークするため、viが行うよりもビジーですが、同様の結果が得られます。(空白コンテンツモードまたはカスタム派生モードを構成して、バッファーコンテンツの最後の空の行のみを強調表示することもできます。)


これがおそらく答えになるので、+ 1。ただし、フリンジは使用しないので、フリンジ以外の解決策があるかどうかを確認するために、質問を少し開いたままにしておきます。
ダン

4

バッファの最後にある空の行を強調表示するパッケージchar-font-lockを書きました。

また、最後の行(改行で終わらない場合)、行末のスペース、タブ文字、非ASCII文字も強調表示します。あなたはあなたが強調したいもののチェリーを選ぶことができます。

例えば: ここに画像の説明を入力してください


1
質問は、線のないウィンドウに物を置くことについての質問なので、実際には関連しているようには見えません...
wasamasa

1
いいえ、質問は「バッファの終わりとウィンドウの下部を区別する視覚的なインジケータをどのようにして入手できるか」でした。私のパッケージは、バッファの最後にある空の行を強調表示することでこれを行います。ハイライトが表示されない場合、ファイルは空ではない最後のリストの末尾に単一の改行が正しく設定されていることがわかります。確かに、それはviのようなことを強調していませんが、それは問題の一部ではありませんでした。
Lindydancer

OPは空の画面行を表示するように求めたと思います。しかし、スクリーンショットによると、パッケージは空の物理的な行を強調表示しているようです。

@lunaryorn、私はあたかもOPがバッファの最後の空の行が見えないという事実を好まないようにそれを読みました。(「バッファーの終了/空白行がどこで停止するかを視覚的に確認できるようにしたいのです。」)
Lindydancer 2015

1
同意されたとおり、この質問のポイントは、バッファーの内容がどこで終了するかをどのようにして伝えるかであるようです。そのコンテンツの最後の行を強調表示することは、コンテンツの後のスペースを強調表示することと同じように有効なアプローチのようです。
グルカ、2015

3

誰かが、ファイルの終わりの後の領域にまたがるオーバーレイを管理するパッケージを書きました:

https://github.com/jmickelin/vim-empty-lines-mode

ただし、このソリューションはより適切に動作し、ターミナルでも機能しますが、フリンジインジケーターよりもパフォーマンスが低く、バグが多いことに注意してください。


注:このマイナーモードは、私が探していたものを実行しますが、ユーザーは、各コマンドの後のバッファーの最後でオーバーレイを更新するので、希望よりも少し重いかもしれないことに注意してください。
ダン

D'oh ...そして、それはバギーであり、ナローイングでうまく機能していないようです。
ダン

ああ、その答えは受け入れられませんでした。
wasamasa 2015

ええ、申し訳ありませんが、それは良い発見です。しかし、私がそれをより厳密にテストする機会が得られるまで、私のコメントで引用されている理由のため、私は今のところ受け入れることを控えます。
ダン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.