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

vim-anywhereをmacvim-kaoriyaと共存させる

$
0
0

tl;dr

ln-s /Applications/MacVim.app/Contents/bin/mvim /usr/local/bin/mvim
curl -fsSL https://raw.github.com/cknadler/vim-anywhere/master/install | bash

echo"控えめに言って最&高"

Vimをどこでも使わせてくれ

Vimが,最高のテキストエディタの一つであることはよく知られている.
ひとたびVimの操作に慣れてしまえば,なぜ世の中のソフトウェアがVimライクに操作できないのか,全く意味がわからなくなるだろう.

そんな要望から作られたのがcknadler/vim-anywhereである.
どこからでも,ショートカットひとつで普段遣いのVimが立ち上がり,入力した内容はクリップボードにプレーンテキストとしてコピーされるので,実質的にはVimでテキスト入力をしたのと同じ体験が得られる.
いわゆる,最☆高というやつである.

日本語ユーザとしては,香り屋さんのVimも欠かせない

Vimは,基本的にはアルファベットの入力を想定して作られたテキストエディタではあるが,日本語環境もよく整備されている.
日本語入力環境の改善に多大なる貢献をし,またVimを日本に広めた双璧の一人でもあるKoRoNさんの香り屋パッチは,日本語をVimで取り扱う上で必須のものになっている.
香り屋さんのパッチがあらかじめ当てられたVimとしては,Windowsではvim-kaoriyaが,Macではmacvim-kaoriyaが,それぞれ配布されている.

さて,vim-anywhereはMacにインストールできるが,ぜひともmacvim-kaoriyaを使いたいものである.
しかし,vim-anywhereのインストール手順では,Homebrewを使ってmacvimをインストールせよ,と書いてある.
Homebrew上のmacvimは,当然香り屋パッチが当てられてないので,このままでは折角のvim-anywhereが日本語ユーザにとってイマイチ使いづらいものになってしまう.

vim-anywhereはシンプルにmvimにパスが通っているか確認しているだけ

ということでvim-anywhereで立ち上がるgVimを,普段遣いのmacvim-kaoriyaに設定したいわけだが,どうもvim-anywhereは,インストール前にmvimにパスが通っているかを確認しているらしい.
インストール後は,そのmvimのパスを呼び出してきているだけなので,ここを騙くらかしてやれば,任意のgVim環境でvim-anywhereを実行できるということになるだろう.

よって,単純にパスの通ったディレクトリに,macvim-kaoriyaのプログラムをシンボリックリンクする.

ln-s /Applications/MacVim.app/Contents/bin/mvim /usr/local/bin/mvim

あとは,vim-anywhereに記載の手順に従って

curl -fsSL https://raw.github.com/cknadler/vim-anywhere/master/install | bash

を実行すれば終わりである.
あとは,vim-anywhereの使い方をよく読むか,rcmdnk's blog/vim-anywhere: Mac/LinuxでどこでもVimを立ち上げてテキスト入力するを読んで設定する.

終わりに

Vimを,テキスト入力のインターフェースとして利用するというのは,とても良い発想だといえる.
vim-anywhereで呼び出されたgVimは,当然のように普段遣いしているvimなので,シンタックスハイライトや補完,スニペットの利用が可能である.
ここで作成したテキストは,プレーンテキストの形でクリップボードへ移されるので,メールにそのままペーストしてもなんの問題もない.
結局,我々が使うソフトウェアの多くは,入力されたテキストを最終的に整形して処理するだけのものに過ぎない.
テキスト入力環境そのものは,より効率的なソフトウェアと連携させるという考え方が最善なのではないだろうか.


Viewing all articles
Browse latest Browse all 5697

Trending Articles



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