通常モードでのみ行番号を設定する


8

挿入モードでは行番号をあまり使用しないので、オフにします。ただし、通常モードには最適です。

常に使用するのset nu!は面倒です。set nu!通常モードの終了と開始に関連付ける方法はありますか?

上記または他の方法を使用した解決策はありますか?


@Carpetsmokerの回答へのコメントに関して、行番号ではなくマージンを維持する理由は何ですか?数を取り除くためにあなたの本来の意図は何でしたか?
2016

挿入モードと通常モードを区別する方法として機能します。また、行番号を削除すると、挿入モードから無関係な情報が削除されます。挿入モードに入るたびにマージンを削除すると、毎回3スペースずつシフトするすべてのテキストから頭痛がする可能性があります。これを好む人もいますが、私の好みではありません。
Jason Basanese

回答:


13

これは自動コマンドで行うことができます。

au InsertEnter * set nonumber
au InsertLeave * set number

あまり説明は必要ありません。これはまさにあなたが要求したことをします。「挿入モードの開始と終了」と「行番号のオンとオフの切り替え」を結び付けます。


1
ただし、Ctrl-Cを使用して挿入モードを終了すると、InsertLeaveはトリガーされないことに注意してください
Christian Brabandt

5

数値を非表示にするだけで、左側のマージンは実際には変更しないため、挿入モードの開始/終了時にテキストがあまり飛び回らないようにする代替ソリューションを次に示します。

set number

augroup number
    autocmd!
    autocmd InsertEnter * highlight LineNr ctermfg=white guifg=white
    autocmd InsertLeave * highlight LineNr ctermfg=130 guifg=Brown
augroup end

挿入モードに入ると、これはテキストの色を背景色に設定します。私の場合、これは白ですが、これはあなたの場合とは異なる場合があります。挿入モードを終了すると、カラースキームのデフォルトにリセットされます。

あなたはあなたの配色のデフォルトを見つけることができます:

:highlight LineNr
LineNr         xxx term=underline ctermfg=130 guifg=Brown

3
さらに良い:au InsertEnter * hi LineNr ctermbg=NONE ctermfg=bg guifg=bg
クリスチャンブラバンド

これはおそらく私が使用するものですが、他の回答はより簡潔で、質問に直接回答します。
Jason Basanese 16
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.