Sublimeを捨ててVimmerを目指す素人

僕は、プログラミング歴5ヶ月ほどの素人でございます。

これまでは、SublimeTextというかっこいいエディタを使っていた（触っていた）のですが、やめて、**ふとVimmerを目指し始めました。**

最初にVimをいじったときの感想は、ご多分に漏れず、

「何コレ…めんどくさそうじゃん。。」

「けど、これ使いこなしたら、すっごくカッコいいんだろうなぁ…、モテるんだろうなぁ。」

という感じでした。

今Vimを触りだして、一ヶ月くらいでしょうか。今の僕の気持ちは、

**「Vim最高！！！」**

「超気持ちいい！！」

けど、別にモテたりはしていない。


## 僕の現状

* プラグインとかは入れてないです。（まだそのレベルに達していません）
* .vimrcはちょっと弄れるようになりました。

最初はもちろん.vimrcの存在も知らず、黒と白の二色の画面でがんばっておりました。幸いなことに、近くにいる神様が、「お前のVimは白と黒で見づらくてしゃーないから、これを、この辺に置いとけよ。」と言って、`.vimrc`を`~/`に置くように教えてくれました。こうして、ああ、.vimrcってVimの設定をすることができる奴なんだ、と知ります。

以下に、僕が設定を進めていく過程を書いてみます。（Vimの基本操作とかは書いてないです。）

誰かの役にたてば幸いです。


# ヤンクでクリップボードにコピーできるようにする。

Vim開いてコピーして他アプリケーションに貼付けたいときが、あるんです。僕はあるんです。
でもヤンクしても、クリップボードにコピーされないので、されるようにしておきたい！

```vim:.vimrc
set clipboard=unnamed,autoselect
```

と書いておけば、**イケル！と思いきや、いけない。**


これは、

```vim:
vim --version | grep clipboard
```

としたときに`-clipboard`になっているのが原因。

これを`+clipboard`に治すためにアレヤコレヤ手を打ったのですが上手くいかず。。。

ちなみに、なんにも分かっていない素人の僕は、

```vim
sudo port install vim +clipboard
```

とかでやろうとしたのですが、だめ。これは、macportとか言う奴いれてないとダメ。
そんなコマンド無いよって怒られます。（当然素人ですからmacportなんて入れたことない。）

じゃあ、MacPorts入れようか。ってなるんですが、ここはすかさず達人にお伺い。
すると、Homebrewの方がいいよ。とのことだったので。そっちを入れることに。  

### 結局、Homebrewを入れることにしました。

```vim:
" Homebrew入っているか確認
which brew 

"install（公式サイトよりコピペ）
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)" 

```

後は、

MacのVimでHomebrewを使ってクリップボード連携を有効にする
http://qiita.com/shoma2da/items/92ea8badcd4655b6106c

@shoma2da さん
ありがとうございましたm(..)m

追記：vimは新しいvimじゃないとだめなので、brewでvimをインストールしておく必要があります。


# \<esc>は遠いので代替する。

挿入モードからエスケープ。\<esc>もしくは\<C-[>。これはちょっと打ちづらい。。

```vim:.vimrc
imap <C-j> <esc>
```

上のようにして、\<C-j>を\<esc>の代替として設定しましたが。Visualモードからはエスケープできない。他の機能とかぶってるのかな？何か方法はないのか？

一瞬、
**「これは\<C-[>を使うべきか？！右手の小指を鍛えるべきか？！」**
という思いがこみ上げました…。

が、よく調べると、リマッピングは以下のようになっているらしいです。

（引用元：http://vimblog.hatenablog.com/entry/vimrc_key_mapping）
m(..)m.ありがとうございます。

|モード|再割当無し|再割当有り|
|----|----|----|
|ノーマルモード＋ビジュアルモード|noremap|map|
|コマンドラインモード＋インサートモード|noremap!|map!|
|ノーマルモード|nnoremap|nmap|
|ビジュアル(選択)モード|vnoremap|vmap|
|コマンドラインモード|cnoremap|cmap|
|インサート(挿入)モード|inoremap|imap|

ですから、今では、以下のように設定しています。

```vim:.vimrc
" escが遠いので代用する。
noremap <C-j> <esc>
noremap! <C-j> <esc>
```
これで、右手小指の負荷を減らせたので、ほんのちょっと幸せです。

ちなみに、mapとnoremapの違いって？
解答はこちら！
http://cocopon.me/blog/?p=3871
本当にありがとうございます。m(..)m


# \<esc>するときは自動的にeisuuにして悲しみを減らす。

挿入モードでは日本語を書きます。日本人なので。

そして、得意気に\<C-j>などでノーマルモードに戻ります。

すると「かな入力」になっていてコマンドが効かずに、悲しみを感じながら「英数」に切り替えます。

この悲しみは減らしたい。

### \<esc>したときに自動的に「英数」にする方法。

Karabinerを使います。

お使いの、Karabinerの`private.xml`に次のように記述してアップロードすれば完了です。

```xml:private.xml(Karabiner)
<?xml version="1.0"?>
<root>
	<list>
		<item>
			<name>LeaveInsMode with EISUU(Terminal)</name>
			<identifier>private.app_terminal_esc_with_eisuu</identifier>
			<only>TERMINAL</only>
			<autogen>--KeyToKey-- KeyCode::ESCAPE, KeyCode::ESCAPE, KeyCode::JIS_EISUU</autogen>
			<autogen>--KeyToKey-- KeyCode::J, VK_CONTROL, KeyCode::J, VK_CONTROL, KeyCode::JIS_EISUU</autogen>
			<autogen>--KeyToKey-- KeyCode::BRACKET_LEFT, VK_CONTROL, KeyCode::BRACKET_LEFT, VK_CONTROL, KeyCode::JIS_EISUU</autogen>
		</item>
	</list>
</root>
```

追記：僕はもともとUSキーボードだったのですが、途中で日本語キーボードに変えたのです。そしてたら、上のxmlでは効かなくなってしまったのです。以下が修正版です。
`KeyCode::JIS_BRACKET_LEFT`が肝でございました。涙。30分くらいはまりました。



```xml:日本語キーボード用
<?xml version="1.0"?>
<root>
    <appdef>
        <appname>iTERM2</appname>
        <equal>com.googlecode.iterm2</equal>
    </appdef>
    <appdef>
        <appname>MACVIM</appname>
        <equal>org.vim.MacVim</equal>
    </appdef>
    <list>
        <item>
            <name>Leave Insert Mode with EISUU (vim keybind apps)</name>
            <identifier>private.vim_keybind_apps_esc_with_eisuu</identifier>
            <only>iTERM2,TERMINAL,MACVIM</only>
            <autogen>--KeyToKey-- KeyCode::ESCAPE, KeyCode::ESCAPE, KeyCode::JIS_EISUU</autogen>
            <autogen>--KeyToKey-- KeyCode::JIS_BRACKET_LEFT, VK_CONTROL, KeyCode::JIS_BRACKET_LEFT, VK_CONTROL, KeyCode::JIS_EISUU</autogen>
        </item>
    </list>
</root>
```

# ノーマルモードで空行を挿入したい。

よくあるでしょう。僕はよくあるんです。
けど、\<o>や\<O>とかだと、空行が入るからいいのですが、インサートモードになってしまう。
そして<esc>するのはとても面倒。だから.vimrcに下のように書いた。

```vim:.vimrc
noremap <CR> o<esc>
```

最初、\<CR>って何？？って思ってました。entreのことでした。

-> ちなみに、この設定をしてから数週間立ちますが、もしかしたら、この設定いらないかも…と思ったり、おもわなかったり。。w



# なぜSublimeを捨てたか？


**「有料だからです。」**

SublimeTextってめちゃめちゃクール、デザインも機能も最高！別に無料でも使えるし、とっても気に入ったなら、$70くらいなんだからいいじゃん！

「たしかに、たしかに、$70なんて、**Sublimeの実力したら高くない。むしろお買い得だと思う。**」

じゃあいいじゃん？

**「プラグインも有料だったりするから！！」**

え、でも、別にそれ買わなければいいじゃん♪

「別に今は使ってないからいいけど、今後使いたくなったら、なんか嫌じゃん！雰囲気なんか、イヤじゃん！」

完。

# vagrantの中とか、mysqlの中とかに入ると「~/.vimrc」の設定が効かなくなる。これを防ぎたい！

という方法は、只今模索中です。

正直、挫折中です。。。

どうしたらよいか、分かる方、いらっしゃいましたらご教示頂けますと幸い中の幸いでございます。m(..)mm..

# 色は絶対好きな色が、良い！

こちらについては、別投稿で詳しく書いておりますので、こちらをご覧頂ければと思います。

「iTermのVimの色を快適にした。（目に優しいデザイン）」
http://qiita.com/mochizukikotaro/items/def041700846adb903fe


以上となります。