Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

2018年のWindowsのテキスト編集環境

$
0
0

TL;DR

  • テキストエディタは軽量なvimとモダンなatomの併用がおすすめ
  • フォントはMeiryoKeが万人向け妥協点、それ以上を求めるならMacTypeが必要そう
  • markdownやAsciiDocを普及させよう

対象読者

Windows上での作業を余儀なくされているプログラマー。とりわけ、2010年以前の資産やら文化が残っている現場の皆様。

Windowsのテキスト軽視文化

旧来、Windows界隈には「テキストファイル」を扱う文化がありませんでした。たとえば…

  • 設定はバイナリ (レジストリ)
  • ドキュメントもバイナリ (「拡張子 docのバイナリファイル」は、MSWordにより強引に普及がなされたもの。元来 .docはテキストファイルに用いられるものでした)

そしてWindows界隈には「GUI内で黒い窓を開く」文化もありませんでした。つい最近1PowerShellが登場するまで、コマンドプロンプトはこの30年間ほぼ進歩していません。「DOS窓」の俗称がWindows7時代になっても使われ続けていたことからも、どれだけ等閑にされていたかわかろうというものです。

昨今業界御用達のような扱いになっているMacにしても、かつて(OS9まで)のMacintoshではそもそもDOS窓に相当するものすらないという有様でした。ハッカーたちが細々とPC UNIXや中古のSPARCstationで使い続けていたものが、Mac OS X の普及でようやく変な目で見られなくなった感がありますが、Windowsはまだそこに追いついていません2

プログラマーたるもの「コードを書くためのエディタ」を常用すべし

標準でテキストファイルを扱うために用意された唯一のツールが「メモ帳」というあたりにWindowsのテキスト軽視がいかに徹底していたかがわかるでしょう。00年代からWindowsで仕事をしていた人たちは、いくらなんでもそれでは困るためにサードパーティーのテキストエディタを導入するようになりました。たとえば「秀丸エディタ」。これが有償ソフト不可の現場になると「サクラエディタ」や「TeraPad」になるわけです。

ただし、これらは「仕事のできるビジネスマン向けのメモ帳」として有能であっても、プログラマーがコードを書くためのエディターというより、DOS時代の仕事道具の延長線上の存在として捉えるべきでしょう。

vimを普段使いしよう

「プログラミングのためのエディタ」は、天地開闢3以来、Emacsとviが二大巨頭として君臨していました。最近はviの進化系であるvimがEmacsに対して優勢なようです。AdSenseとかでよく見かける「転職ドラフト」調べでは 人気のテキストエディタNo.1だそうで、しかも若年層からの支持が厚いということからもわかります。

vimの使い方については幾多の優れたvimmer様方の記事にお譲りして、本記事は「Windows内でvimを快適に普段使いする」ことにフォーカスしたいと思います。

vimを育てる

開封の儀

Windowsでは、香り屋版というバイナリが最近10年くらい普及していますのでダウンロード。zip は適当な場所 (C:\Program Files\でいいと思います) に展開してOK。展開先にある gvim.exeをダブルクリックで起動しましょう。

きっとのけぞると思います。多くの人はここでやる気をなくします。

調教

くじけずに設定とプラグインをバシバシ叩き込みます。

バックアップやスワップファイルなどのゴミ対策

デフォルトだと作業用ファイルを散らかす悪い癖があるので、道具箱を作ってやります。

# git bashやPoweshellでの例。
mkdir ~/.vim/work

:e ~/_vimrcで個人用設定ファイルのC:\Users(ユーザー名)_vimrcを編集して、道具は道具箱にしまうようにします。バックアップは人間かファイルシステムのどちらかがやればいいので不要でしょう。新規ファイル_vimrcに以下を記述します。

set nobackup
set directory=~/.vim/work
set undodir=~/.vim/work

C:\Users\(ユーザー名)をUnixのホームディレクトリと同様に ~と読み替えてくれます。

ウィンドウサイズの保存

これまたデフォルトだと毎回好き勝手な場所でこじんまりとしたウィンドウで起動するので、しつけましょう。GUI関係の設定ファイルは_gvimrcです。:e ~/_gvimrcで新規ファイルを開き、以下を記述します4

let g:save_window_file = expand('~/.vimwinpos')
augroup SaveWindow
  autocmd!
  autocmd VimLeavePre * call s:save_window()
  function! s:save_window()
    let options = [
      \ 'set columns=' . &columns,
      \ 'set lines=' . &lines,
      \ 'winpos ' . getwinposx() . ' ' . getwinposy(),
      \ ]
    call writefile(options, g:save_window_file)
  endfunction
augroup END

if filereadable(g:save_window_file)
  execute 'source' g:save_window_file
endif
その他おすすめの_vimrc向け設定
set list
set listchars=tab:>-,trail:-,eol:$
set number
その他おすすめの_gvimrc向け設定
set showtabline=2
プラグイン管理システム

以前からVundleなどのプラグイン管理システムがあったのですが、流行り廃りがあるようで、いま流行っているのはdein。流行ろうが廃れようが「プラグインの指定先はgithubのリポジトリ」という点は変わらないようなので、互換性を気にする必要はあまりなさそうです。
インストールするにはdeinの作業用ディレクトリを準備する必要がありますが、それさえやってやればプラグイン管理は驚くほど楽になります。なお、gitが利用できることが前提となります。

mkdir -p ~/.vim/dein/repos/github.com/Shougo/dein.vim
git clone https://github.com/Shougo/dein.vim.git ~/.vim/dein/repos/github.com/Shougo/dein.vim

さらに_vimrcを編集。

set runtimepath+=~/.vim/dein/repos/github.com/Shougo/dein.vim

call dein#begin(expand('~/.vim/dein'))
call dein#add('Shougo/dein.vim')
" インストールしたいプラグインを以下に記述する
" call dein#add('developer-a/plugin_you_want_to_install-1')
" ...
" call dein#add('developer-z/plugin_you_want_to_install-xx')
call dein#end()

" install non-installed plugins
if dein#check_install()
  call dein#install()
endif

_vimrcを再読み込みさせます。

:source ~/_vimrc
Vim-airline

これを叩き込めば一気にモダンなエディタに様変わり。

_vimrcを編集。

" deinの設定外に
set laststatus=2

" deinの設定内に
call dein#add('tpope/vim-fugitive')
call dein#add('vim-airline/vim-airline')
call dein#add('vim-airline/vim-airline-themes')

その他、vim-airline にカーソル下の文字コードを表示するなどの記事を参考にカスタマイズして、快適な環境を構築してください。

カラーテーマ

デフォルトのライトガルグレーみたいな背景色ではいまいちテンションが上がらないので、自分の気に入ったカラースキームを探してみましょう。基本的にdeinでインストールできます。私のお気に入りはVim の割と新しいおすすめ colorscheme たちを紹介するの記事で見つけたnefertitiというものです。

ダウンロード方法は_vimrcのdein設定部に以下を追記

call dein#add('jeetsukumaran/vim-nefertiti')

設定は、_gvimrcに以下を追記

colorscheme nefertiti

フォントにこだわる

MSゴシック/MS Pゴシックを撲滅せよ

30年前の遺物、といってもHelveticaなんかは半世紀以上前からある書体ですので、古さのみが問題となるわけではありません。
しかし、このフォントに限って言えば登場当時からそもそも0(ゼロ)とO(オー)の見分けもつかず、プログラマーが使うべき代物ではありませんでした。(Windows95のころは、これを避けるために和文セットのないCourier Newなどを我慢して使っていたように記憶しています)
もうひとつの問題は、ビットマップフォントとしての使用を前提としていることです。解像度640*480のブラウン管モニターに最適化されたようなギザギザフォントを、2010年代に使い続ける理由はありません。
デザイナーもまずこんなフォントを使うことはありません。

最近のWindowsには「メイリオ」と、それを画面表示向けにカスタマイズした「MeiryoUI」というそれなりにまともなフォントがバンドルされています。しかし、これらはプロポーショナルフォントのみの提供となっているため、プログラマーとしては大変困ります。逆に、等幅のLucida ConsoleやConsolasには和文セットがありません。

21世紀のフォントの選択肢

2018年初頭の時点で万人にお薦めできるローリスクな解決策はMeiryoUIに等幅化パッチを当てて、MeiryoKeというフォントを生成して利用することです。
さらに、Mac/Linux界隈5では以前よりコンソール作業に適したフォントとして

が使われており、とくにRictyはMac界隈では高い評価を受けています6。しかし、これらのモダンなフォントはWindowsのレンダリングの貧弱さのためにひどく滲んでしまいます。ですが、これについては、MacTypeというレンダリング改善ソフトで解決することができます。驚くほどフォントの表示が美しくなりますので、一旦は試してみてください。
ただし、MacTypeは環境によっては他ソフトの動作に影響をおよぼす場合があるなどの不具合が報告されており、リスクを伴った利用が前提となります。MacTypeを導入できなかったとしても、先述のMeiryoKeだけでも十分に改善と言えるでしょう。

vimへの適用は、_gvimrc

set guifont=MeiryoKe_Console:h12:cSHIFTJIS

のように追記
すればOKです。

ここまで設定してきたサンプルファイルは https://github.com/mskako/vimrcに上げております。

軽量マークアップ言語

テキスト編集環境も快適になると、いろいろなもののテキスト化を企みたくなります。そこのあなた、Excel方眼の設計書、駆逐したいですよね? 私たちのプロジェクトでは、かつてドキュメントを脱Excelしてwiki(Confluence)にもっていき、編集と閲覧、なにより検索の容易さを実現したまではよかったのですが、こんどはバージョン管理の壁にぶつかってしまいました。

テキストファイルで管理したい…でも設計書くらいになると文書構造は必要…だからといって見出しを

#############
## 項目一覧 ##
#############

みたいに装飾するのは避けたい… そんなとき、ふとある日にREADME.mdを書きながら、「これだ」と思ったのでした。

markdown

githubなどでおなじみのREADME.mdは、markdownというフォーマットで書かれています(Qiitaの記事もですね)。簡単な説明文くらいなら十分な表現力があるうえ、いちばん目にする場がgithubのリポジトリというくらいなので、VCSとの相性もバッチリです。

  • 単なるテキストファイルに見せかけられるくらい単純なので書きやすい
  • テキストファイルなので、gitで差分管理ができる
    • ということは、設計書をこれで書けばブランチもプルリクエストもマージも自由自在では?
      • うわーゆめがひろがりんぐ

ただし、

  • 設計書に採用するには表現力が少々弱すぎる

というわけで、設計書にはもっと表現力のある軽量マークアップ言語が必要と考え、AsciiDocの導入を検討することになりました。

AsciiDoc

ですが、まだ実用に堪えるかの検証中です。テーブルの記述がより強力になった点を最も評価していますが…

atom

markdown/asciidocはvimでもある程度直感的な編集ができますが、リモートにpushする前にプレビューできないのは流石に困ります。
そこで、ローカルでのビューワーがほしいという動機でatomをインストールしてみました。github謹製というだけあって、git操作の容易さはさすがと言った感じです。
ただ、私の感覚としてはvimとIDEの隙間を埋める存在かなと見ています。メモリも結構食いますしね。

資料


  1. いうて登場から10年は経っている。ただし、認知度的には… 

  2. 現状Windows7な筆者はCygwinを我慢しながら使っております。ターミナル環境の決定版がまだ見えていないため、本記事はgvimにフォーカスすることにしました。ご容赦ください。 

  3. 1970-01-01T00:00:00Z 

  4. http://vim-jp.org/vim-users-jp/2010/01/28/Hack-120.html 

  5. 標準でバンドルされているという意味ではない 

  6. それ以上に、Ricty Diminishedはpowerline-symbols同梱版が配布されているのでvim-airlineで使うととてもハッピーになれますが、詳細については本記事では扱いません。 


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>