ZSHとMacVimとVimFilerの導入2
前回の ZSHとMacVimとVimFilerの導入 の続きです。
今回は、MacVimの導入とVim周りのプラグインを導入しましょう。
MacVimのインストール
MacVimは、macOSで利用できるgVimの1つです。今回は、香り屋版といわれる便利なパッチが当たった MacVim-Kaoriya をインストールします。
下記URLにアクセスして、最新版のMacVimをダウンロードします。
https://github.com/splhack/macvim-kaoriya/releases
ダウンロードしたdmgファイルをダブルクリックして、MacVimをインストールします。
Source Code Pro フォントをインストール
Adobeが公開している、プログラミング向けのフォントというのが存在します。好みの問題ではありますが、このSource Code Proは比較的にソースコードが見やすくなりますので、今回導入してみたいと思います。
https://github.com/adobe-fonts/source-code-pro/releases
インストールは、GitHubからリリースされているZIPファイルをダウンロードしてきて、展開します。
そして、下記の様に OTF (OpenTypeフォント)のディレクトリ内のファイルを全選択して、右クリックします。
コンテキストメニューから、「このアプリケーションで開く」 → 「Font Book (デフォルト)」を選択します。
右下のボタンを押して、フォントをインストールします。以上でフォントのインストールは完了です。
MacVimの設定
zshのように、gVim、今回の場合、MacVimは、 .gvimrc で設定を行います。まずは、.gvimrcを作りましょう。作業は、ターミナルから行います。
vi ~/.gvimrc
内容は、以下の通りです。コピーアンドペーストする場合は、前回にも紹介したとおり、 :set paste を忘れずに入力しましょう。
set lines=200 set columns=1000 set showtabline=2 set transparency=220 colorscheme desert set guifont=Source\ Code\ Pro:h24
もう、ノーマルモード、入力モードの行き来はできるようになりましたね? .gvimrcを保存したら、MacVimを起動してみましょう。
最終行の h24 のところは、フォントサイズです。作業する画面サイズに応じて、調整してください。
Vimのプラグイン
viコマンドから、既に何度も使っているVimですが、これは テキストエディタ です。もう一度いいます、Vimは テキストエディタ です。
なのですが、このVimが素晴らしいのは、プラグインを入れることで、タダのテキストエディタから開発環境にまで変身するようなポテンシャルがあります。
そして、そのプラグインは、かつて自分でダウンロードして、せっせとディレクトリに配置してとやっていました。
しかし、近年 bundle / neobundle といった非常に優秀なプラグイン管理ツールがあり、これらを利用することで、設定を記述するだけでネットワークから自動的にプラグインを取得して利用することが可能になりました。
今回は、 neobundle を紹介しようと思ったのですが、時代も変わり newbundle と同じ作者である Shougo さんが dein というプラグイン管理ツールをリリースしています。また、今後はneobundleではなく、deinになっていくようです。
なので、早速deinを導入してみようと思います。
deinのインストール
以下のコマンドを順に流したり、ファイルを記述していってください。
mkdir -p ~/.vim/rc/
touch ~/.vim/rc/dein.toml
touch ~/.vim/rc/dein_lazy.toml
vi ~/.vim/rc/dein.toml
:set paste を実行してから、下記を貼り付ける
[[plugins]] repo = 'Shougo/dein.vim' [[plugins]] repo = 'Shougo/vimproc.vim' hook_post_update = ''' if dein#util#_is_windows() let cmd = 'tools\\update-dll-mingw' elseif dein#util#_is_cygwin() let cmd = 'make -f make_cygwin.mak' elseif executable('gmake') let cmd = 'gmake' else let cmd = 'make' endif let g:dein#plugin.build = cmd ''' [[plugins]] repo = 'Shougo/vimfiler' [[plugins]] repo = 'Shougo/unite.vim'
ファイルを保存して終了。
vi ~/.vimrc
:set paste を実行してから、下記を貼り付ける
let s:dein_dir = expand('~/.cache/dein') let s:dein_repo_dir = s:dein_dir . '/repos/github.com/Shougo/dein.vim' if &runtimepath !~# '/dein.vim' if !isdirectory(s:dein_repo_dir) execute '!git clone https://github.com/Shougo/dein.vim' s:dein_repo_dir endif execute 'set runtimepath^=' . fnamemodify(s:dein_repo_dir, ':p') endif if dein#load_state(s:dein_dir) call dein#begin(s:dein_dir) let g:rc_dir = expand('~/.vim/rc') let s:toml = g:rc_dir . '/dein.toml' let s:lazy_toml = g:rc_dir . '/dein_lazy.toml' call dein#load_toml(s:toml, {'lazy': 0}) call dein#load_toml(s:lazy_toml, {'lazy': 1}) call dein#end() call dein#save_state() endif if dein#check_install() call dein#install() endif
ファイルを保存して終了。
vi
単純にviコマンドを実行すると、 .vimrcの設定を読み込みdeinの初期インストール処理が走ります。ここに記載した、.vimrcの内容や、dein.tomlの記述方法については、必要に応じて検索してください。
ここでは多く触れません。
今回は、 以下のプラグインを導入するように記述しました。
- dein.vim
- vimproc.vim
- unite.vim
- vimfiler.vim
viを起動すると、プラグインが自動的にインストールされますが、途中 「Press Enter…」とEnterキー押してくださいっていうメッセージが3回ほど現れますので、それまでまってからEnterキーを押してください。
最終的に、viが起動するので、
:q
で、viを終了してください。
ここでインストールしたプラグインは、MacVimでも利用することができるようになっています。ターミナルのVimは、 .vimrc の設定のみで、MacVimの設定は、 .vimrc + .gvimrc の設定が反映されています。
VimFilerの使い方
iTermを使って、ディレクトリの作成や削除などを行った、Unity エンジニアになるための C# 学習環境を構築する ですが、対象を超初心者?といえばいいのか、ともかくターミナルになれていない人無形に向けて書いていたのですが、ふとこんなことを思ったりしませんでしたか?
- 「今どこにいるのかもわからん…」
- 「イチイチ ls -la とか打って、ディレクトリの作成確認したりするの?」
- 「めんどい」
はい、これ、10年以上前に僕が思ったことです(笑
確かにシェルは使いこなせば非常に便利です。なんもシェルだけで生きていけるわ!という人もいますし、それだけ良い.zshrcや.bashrcに育てていっているのでしょう。
ただ!!
やりたいことは、シェル芸人になりたいわけではなく、プログラムを組むための基本操作だけじゃ!!
ということです。
なので、基本的にターミナルの操作というのは、やりたいことをやるための最低限使えれば良いと思います。そして、冗長な操作や、もっと楽できないかな?っというときに、検索して手法を探していって見たりしながらスキルアップするくらいで十分だと思います。ただ、シェル芸と呼ばれるくらい、1行のシェルスクリプトで、こんなことまでできるんだ!というのは、芸術的ですけどね。
はい、では、まずMacVimを起動してください。そして、次のコマンドでVimFilerを起動します。
:VimFiler
入力後、下記の様な画面が表示されます。
ここで、一度 TABキー を押してみましょう。
同じ画面が二分割されました。もう一度TABキー を押すと、黄色いカーソルが、右・左と交互に移動します。カーソルがある方が、アクティブな画面になります。
これはなんなのか?
VimFilerは、2画面ファイラーといわれる種類のファイラーです。「ファイラー?」っていう人もいますよね。要するにファイルやディレクトリを操作するためのソフトです。今回は、Vimのプラグインです。
2画面ファイラー時代は、古くから有り、私は20年以上前から使っています。
Windowsの場合は、あふ、Dynaファイラー というソフトもあります。もちろんWindowsにもgVimはありますので、同じくVimFilerをいれることもできますし、Linuxでも同様です。逆に言えば、2画面ファイラーとしてVimFilerを覚えておけば、異なるプラットフォームでも同じようなファイル操作ができてしますんですね、素晴らしい。
操作説明をする前に、ちょっとだけ .vimrc を修正します。
VimFilerは、非常に優秀な2画面ファイラーですが、初期設定では Safeモード になっているため毎回解除しなくてはならない点や、ファイルの編集を別タブに持っていくための便利な設定など、簡単なオススメ設定を紹介します。
そろそろ、 .vimrcのターミナルでの開きか方、 :set paste や :wq などは、何度もやっているので省略します。
let g:vimfiler_edit_action = 'tabopen' let g:vimfiler_as_default_explorer=1 let g:vimfiler_safe_mode_by_default=0 let g:vimfiler_enable_auto_cd=1 map <F3> :VimFiler<CR>
上記を、 .vimrc に追記して、MacVimを再起動してください。
F3 を押すだけで、VimFilerが起動するようになっています。
では、VimFiler自体が多機能なので、今回は基本的案操作を覚えましょう。
カーソル移動とファイル/ディレクトリ操作
jキー 、 kキー で、上下にカーソルを動かすことができます。
そして、目的のファイルの上で、 lキー を押すと、編集、ディレクトリならそのディレクトリの中に移動します。
また、 eキー でも編集開始できます。その時、同じMacVimの中で別タブになっていることに注目してください。
編集作業が終了したら、 :wq 、または、編集を破棄して終了したい場合は、 :q! とすることで、タブだけが閉じて、ファイラー部分に戻ってきます。(開いているファイルが1つなら)
ファイル作成
「 shiftキー + nキー 」を押すと、画面下にカーソルが移動します。作りたいファイル名を入力して、ENTERキーを押すと、空のファイルが作られます。後は、lキー、や eキー で編集を開始することができます。
中止したい場合は、ESCキーを押せば中止されます。
ディレクトリ作成
「 shiftキー + kキー 」を押すと、画面下にカーソルが移動します。作りたいディレクトリ名を入力して、ENTERキーを押すとディレクトリが作成されます。
中止したい場合は、ESCキーを押せば中止されます。
ファイル/ディレクトリ削除
カーソルを対象に合わせて、「 dキー を2回」押します。カーソルが画面下に移動し、削除してよいか?と聞いてくるので、「yes」と打ち込むと削除が実行されます。
確認中、中止したい場合は、「no」と打ってEnterキーを押すか、ESCキーを押せば中止されます。
ファイル/ディレクトリのコピー
まず、画面は2画面になっていることとします。1画面の場合は、 TABキー を押して2画面にしてください。
これから、操作をするカーソルがある画面の方が、 コピー元 になります。反対側の画面が コピー先 になります。
対象のファイルやディレクトリに、カーソルを合わせて 「 cキー を2回」押します。
特にコピー先に同じファイル名のファイルやディレクトリが存在しない場合は、処理が完了します。
もし、コピー先に同じファイル名が存在する場合、画面下にカーソルが移動し、どのように処理するか確認されます。
f で上書き、 r でリネームしてコピーすることができます。
特に、複数のファイルをコピーする場合、「すべて上書き」としたい場合、 f の代わりに F を入力します。
確認中、中止したい場合は、「no」と打ってEnterキーを押せば中止されます。
複数ファイル/ディレクトリの選択
まとめて削除や、まとめてコピーを行いたい場合、何度もキーを入力することなく、選択してから実行することができます。
選択したい対象をカーソルを合わせて、「 スペースキー 」 を押すことで、選択することが可能です。
「 shiftキー + uキー 」、つまり Uキー を押すと、選択が全解除されます。
MacVimからシェルコマンドを実行する
VimFilerを立ち上げていて、今いるディレクトリでコマンドを実行したい場合、簡単にシェルコマンドを実行することができます。
:! 実行コマンド
と入力することで、シェルコマンドが実行できます。
MonoをMacVimからコンパイル、実行する
Unity エンジニアになるための C# 学習環境を構築する で作成した C# コードをコンパイル、実行してみます。
:! mcs hello_world.cs
:! mono hello_world.exe
おわりに
VimFilerを使うために、MacVimの設定や、deinの導入などを行ってきました。
VimFilerの使い方も、最低限にまとめました。まだまだ多数のコマンドがあり、非常に便利なのですが、最初はファイルのコピーや削除ができる、Finder使うより早くディレクトリ移動ができる、なにより慣れてきたらカーソル操作が hjkl でできる、などメリット満載です。
1点注意としては、VimFilerからの削除は、通常のFinderの削除がゴミ箱に移動しているのに対して、直接削除されてしまう点です。削除を行う場合は、注意してください。
C#だろうが、PHPだろうが、JavaScriptだろうが何だろうが、Macを使って開発する上で共有の最低限用意しておきたい環境構築でした。
使えば使うほど、自分好みにカスタマイズしたくなっていくと思いますが、VimやVimFilerなどは、最初にこうだよ!って教えてくれる人がいれば、非常に習得が早いと思います。
正直、最初にVim触った時は、訳が分からずクソだなと思った覚えがありますが、その後何度もチャレンジしつつ、使っているエンジニアの人に教えてもらいながら使える様になって気がしますが、そんなに大した時間がかかった記憶もありません。むしろ、今回このように書き出すのが苦痛なくらい、当たり前に操作していることなので、説明するのが非常に難しかったし、イチイチ確認しないと分からないレベルでした。
Vimだけがテキストではありません、他にもemacs好きの人もいますし、色々なテキストエディタが存在し、好みも分かれます。
しかし、Webプログラミングを行っているとどうしても、Linuxを操作する機会があるはずです。そして何かしらの設定をするはずです。viは、最初から入っていることが殆どですから、このエディタが使えるようになっていることは、非常に重要です。何せ、知らないと何もできないエディタですから。
少々長くなりましたが、ここら辺で。
1979年札幌市生まれ。
14歳からC/C++をはじめ、MASM、Delphi、ActionScript、PHP、C#、Perlなど多言語を習得。大学在学中にWebシステム開発会社に勤務した後、携帯電話などの組込系プログラミングに従事。
プロジェクトマネージャー、1年間のフリーランスプログラマを経て、2006年3月に株式会社ゼノフィを設立し、代表取締役に就任(現職)。2015年5月13日 株式会社ゼノフィエンターテイメントを設立、代表取締役に就任(現職)、2019年2月5日 スタジオリズ株式会社を設立、代表取締役に就任(現職)
最新の更新を
プッシュ通知で購読しよう