Visual Studio 2017 で、エディタにvimを使用する方法

3月に「Visual Studio 2017」が公開されました。
Visual Studio で、外部ツールとしてvimを使用することができるので設定します。
 
環境
Visual Studio Community 2017
vim80-kaoriya
 
外部ツールの設定方法
Visual Studio のメニューバーから「ツール」->「外部ツール」を選択する。
「追加」をクリックしてメニューを追加する。
追加したメニューを選択してタイトルを編集する。
タイトルはわかりやすい名前をつけると後でわかりやすいです。
コマンドには、外部ツールとして使用したい外部ツールのパスを入力します。
今回はgvimを使用したいので、「gvim.exe」のパスを指定しました。
引数には、「$(ItemPath) +$(CurLine)」を指定しました。
“+”の前に半角スペースを入れないと正しく動作しません。
初期ディレクトリには、「$(ItemDir)」を指定しました。
 
 
設定例
タイトル gvim
コマンド C:\vim80\gvim.exe
引数 $(ItemPath) +$(CurLine)
初期ディレクトリ $(ItemDir)
 
 
外部ツールの引数(一部抜粋)
 
引数 説明
$(ItemPath) 現在のファイルの完全なフィある名(ドライブ+パス+ファイル名)
$(ItemDir) 現在のファイルのディレクトリ(ドライブ+パス)
$(ItemFilename) 現在のファイルのファイル名(ファイル名)
$(CurLine) コードウインドウ内の現在カーソル行位置
$(BinDir) 作成中のバイナリの最終的な場所
 
その他の引数についてはMicrosoftのリファレンスを参照してください。
 
 
外部ツールの起動方法
ソースファイルを編集中に、Visual Studio のメニューバーから「ツール」->「gvim」を選択する。
 
ショートカットキーを割り当てすると、起動が早くできるようになります。
 
ショートカットキー割り当て方法
Visual Studio のメニューバーから「ツール」->「外部ツール」を選択する。
メニューの内容の中で、設定した「gvim」を何番目に設定してあるか確認して、外部ツールを閉じる。
今回は、4番目に設定されていました。
Visual Studio のメニューバーから「ツール」->「オプション」を選択する。
オプションボックスの中から、「環境」->「キーボード」を選択する。
「以下の文字列を含むコマンドを表示」の入力欄に「外部コマンド」と入力すると、外部コマンドが表示されるので、先ほど設定した順番のものを選択する。
外部コマンドのショートカットキーは、最大で24個まで設定できます。
(今回「gvim」は、4番目に設定したので、「ツール,外部コマンド4」を選択します。)
「使用する場所」を、「テキストエディター」に設定します。
「ショートカットキー」のテキストボックスを選択して、割り当てするキーを押して、「割り当て」をクリックします。
「OK」をクリックして決定します。
 
 
外部ツールでvimを割り当てることで、普段使用している環境で作業できるため作業効率が上がります。
常にVSだけで開発しているなら、わざわざ外部ツールの設定などしなくても良いと言われてしまうかもしれませんが・・・
 
 

構文ハイライトの設定方法

vimで構文ハイライトを使用してテキストの一部をハイライトすることで、内容が見やすくなります。
 

構文ハイライトの設定を有効にする
.vimrcに、下記設定を追記して、vimを再起動する。

 
 
カラースキームの設定をします。
デフォルトでインストールされているカラースキームがあるのでその中から選択します。

現在選択が可能なカラースキームは、vimでコマンドとして[:colorscheme ]を入力してから、[ctrl+d]を押すと一覧が表示されます。
※:colorscheme の最後に半角スペースを入れないとうまくいきません。

 
 
現在使用しているカラースキームを確認する時は、vimで以下のコマンドを実行します。

 
デフォルトのカラースキームにお気に入りの物がない場合は、好きなカラースキームをインストールして使用することができます。
 
 
また、KaoriYa版vimを使用している場合は、[編集->色テーマ選択]の中から選択すると変更できる
 
 
カラースキームのハイライトは、以下のコマンドで確認できます。

 
 

現在開いているファイルの文字コードを確認する

vimで作成するファイルは基本的にutf-8で自動保存されるが、他のソフトで編集したファイルや頂いたデータなどに追記するときなどに現在の文字コードを確認したい時がある。
vimで現在開いているファイルの文字コードは以下のコマンドで確認できます。
 

 
 
確認して何かしたいわけではないですが、ファイルを送った先で読めないなど言われたときに確認できると助かります。
 
 

ファイルタイプの設定と確認

vimで開くテキストファイルのファイルタイプ(filetype)を設定し確認する方法。

ファイル形式を自動で検出できない場合や、違うタイプに変更したい場合には手動で設定する。
ファイルタイプの設定方法

 
 
 
設定したファイルタイプの確認方法

 

vim透過設定

vimで透過設定をしたい場合は以下のコマンドを.vimrcに記述する
 

 
「240」の数字を変更すると透過率を変えられるが、あまり大きくしすぎると背景に溶け込んで見えにくくなることもあるので適当に調整する。
 

インデント設定

vimインテント処理
 
tabstop
既存のTAB文字の文字幅を指定
 
softtabstop
キーボードでTABキーを押したときに入力されるTAB文字の文字幅を指定
[shiftwidth]よりも優先される
値を”0″にした場合は[shiftwidth]の値が優先される
 
shiftwidth
自動インデントで入力されるTAB文字の文字幅を指定
 

背景色の変更

vimの背景色はdark(黒背景)とlight(白背景)のモードがある。
背景の切り替えは「background」コマンドで切り替えられる。
 
 
白背景に切り替え

 
 
黒背景に切り替え

 
 
 
基本的にはカラースキームの切り替えで制御した方が良いかも。
 

行の折りたたみ

vimで行が長くなると全体の見通しが悪くなるため行を折りたたみして見やすくする。
 
折りたたみを手動で設定するため.vimrcに以下を記述する

 
foldmethod
manual(default) “手動設定で折りたたむ
indent ”等しいインデントの行で折りたたむ
expr “オプションを使用して折りたたむ
marker “マーカーで折りたたみ設定をする
syntax “構文強調表示を指定して折りたたむ
diff “変更されていないテキストを折りたたむ
 
 
折りたたみのコマンド
zf 折りたたみ(Fold)
zo 折りたたみを開く(Open)
zc 折りたたみを閉じる(Close)
zd 折りたたみを削除(Delete)

zi 折りたたみ状態の有効・無効切り替え

カーソル位置を移動前の位置に戻す

編集しているときに、前に編集していた行に戻りたいときがある。
ジャンプの機能でカーソル位置を移動することができる。

古いカーソル位置(移動前)に移動する場合
ctrl-o

新しいカーソル位置(移動後)に移動する場合
ctrl-i
<tab>

回数を指定して移動前の行に戻る場合(3回の場合)
3 ctrl-o