タブコードを複数のスペースで表示する vimのPython化計画

インデントタブ昔ばなし

Rubyもそうだが、今時のスクリプト言語はタブでインデントを揃えるとき、複数個のスペース文字でこれを表示するらしい。

私がUNIXでC言語をやり始めた頃は、キーを叩くと0x9なる文字コードが入力された。
そして、文字コード0x9が含まれるファイルをエディタや端末で表示すると、表示プログラム側がデフォルトのタブ位置に表示してくれた。

たとえば、8。

しかし、この方法だとタブ幅のデフォルト値がある人のエディタのデフォルト値と異なっていた場合、表示が崩れてしまう。

昔はメモリーやファイルサイズの節約のため、タブコードを使用していた。
しかし、内部メモリも外部記憶装置もこれだけ膨大になれば、タブコードによる節約など微々たるもので、デメリットの方が目立ってしまう。

そのため、いつの間にやらキーはスペースを入力するようになったようである。

ただ、CやJava、C++といったCおよびCの派生言語は0x9を埋め込んでいのではないかという気がするが、確認していない。

それはさておき、ここではvimを使って秒速Pythonプログラムを書くため、Python向けに色々なカスタマイズを施してゆく。

その第一弾が、入力時に複数スペース表示するというものだ。

先人の知恵

こういったことに命を懸けるのは、まことに愚かなことです。
せっかく、vimの先達が道を切り開いてくれているので、我々はそれをありがたく頂戴しようではありませんか。

デモ隊「そうだ!そうだ!」

こちらより、RubyとPythonのソースコードをvimで編集する際の設定内容を頂戴しました。

内容を~/.vimrcに書き込みます。

set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
set autoindent
set smartindent

augroup fileTypeIndent
    autocmd!
    autocmd BufNewFile,BufRead *.py setlocal tabstop=4 softtabstop=4 shiftwidth=4
    autocmd BufNewFile,BufRead *.rb setlocal tabstop=2 softtabstop=2 shiftwidth=2
augroup END

何をやってるのかは、おぼろげにしかわかりませんが、ほんのちょっぴりPythonとRubyのプログラミングがやりやすくなりました。

この調子で『脱Eamcs』を目指します。

Pythonプログラミング物語 © 2016 Frontier Theme