【Vim】80桁教信者の憂鬱 その2(ホットキーでトグル、他)


【vim】80桁教信者の憂鬱 | blog.delphinus.dev
https://blog.delphinus.dev/2013/06/source-in-80-columns.html

前回の記事は結構反響がありました。やっぱりみんな気にしてたことだったんですね。Twitter でいろいろ有益な情報も得られたので追記したいと思います。

colorcolumn を使わない解決法

highlight turn gui=standout cterm=standout
call matchadd('turn', '^.\{80\}\zs.\+\ze')

早速試してみました。これは 'colorcolumn' を使わずに、80 桁超えた行だけ色を付けてくれるわけですね。

130622-0006

ただ、スクリーンショットを見るとわかりますが、80 桁ではなく、80 文字より大きい部分に色が付いてしまいます。通常のソースコードは全て半角文字なので問題ありませんが、全角文字が入るとずれてしまいますね……。惜しいです。

スマートな解決法をいただきました! コメントを見てください。

ホットキーでトグルする

いいですね、これ! 早速試してみました。

noremap <Plug>(ToggleColorColumn)
            \ :<c-u>let &colorcolumn = len(&colorcolumn) > 0 ? '' :
            \   join(range(81, 9999), ',')<CR>

" ノーマルモードの 'cc' に割り当てる
nmap cc <Plug>(ToggleColorColumn)

このように設定すると、ノーマルモードで cc とタイプするたびに切り替えられますね。

qfixhowm オヌヌメ

指定文字数での自動改行'textwidth' を使うと可能です。でも、これだと、

指定文字数で自動改行して、削除や追加したらまた自動的に、って機能はないのかな~。

これは無理ですよね。こういうときは、qfixhowm プラグインがこれに近いことをやってくれます。

このプラグインは非常に高機能なものなので、別項を設けて解説しましょう。

80 桁教の教祖は誰?

確かに初出はどこなんでしょうね?

COBOL を例に出した理由は、そもそも 80 桁しかソースコードが書けないという、今となっては訳のわからない縛りがあったのでそれかなあ、と。他にも RPG(ゲームじゃありませんよ)とかも 80 桁制限があった記憶があります。

これらの言語はそもそも端末ではなく、パンチカードによって入力されていましたから、80 桁というのは理念ではなく、物理的な制約だったはずです。

(俺の若い頃は 80 桁しか書けなかったんだから)ソースは 80 桁以内に収めろよ!

と古株 PG に教えられた先輩 A が当時の事情を知らないまま、

(80 桁に収めれば読みやすくなるんだから)ソースは 80 桁以内に収めろよ!

と、後輩 B に教えてしまった、というのが事の発端だったのではないでしょうか。

実際はどうなんでしょうね? 先達の声を聞いてみたいです。

2 thoughts on “【Vim】80桁教信者の憂鬱 その2(ホットキーでトグル、他)

    • すばらしい情報をありがとうございます! こんな方法もあったんですね。本文にも追記しておきました。

コメントを残す