LoginSignup
28
36

More than 1 year has passed since last update.

Windows+Vim+Vundle環境構築

Last updated at Posted at 2014-11-09

今どきのVim使いに少しでも近づくために、GitとVundleを使ったVim環境を整えた。
そもそもVimのプラグイン管理や設定について知らなくて困った点(そこに作るファイル/フォルダには何の意味があるのか)も書いておく。
手順やコマンドの説明は、参考サイトさん参照。

動作確認済環境

Windows 7 Pro + KaoriYaVim74
Windows 10 Pro + KaoriYaVim81

参考

凡例

{HOGE} : ファイルパスの省略記法(この記事でのローカルルール)
%HOGE% : Windowsの環境変数
$HOGE : Vimの環境変数

まとめ

環境変数

以降の説明で使う変数は、以下のような意味。
windows
%USERPROFILE% = C:\Users\username
vim
:echo $HOME = C:\Users\username
:echo $VIM = C:\Users\username\vim
$VIMのパスに日本語が含まれているとヘルプファイルが開けない(:hコマンドが使えない)など問題が起きるので、もしユーザー名を日本語で作ってしまった場合は他のフォルダに作るか、フォルダ名を変えるかする必要がある。

{HOME}:c:\Users\username\
{DOTS}:{HOME}\Documents\GitHub\dotfiles\(GitHubで管理しているローカルディレクトリ)

手順

  1. Vimを入手する
    香り屋さんから取得して、{HOME}\vim\vim.exe になるように展開する。
  2. {HOME}\vim にpathを通す コマンドプロンプトでvimを実行できるようにする。
  3. {DOTS}を作る(GitHubから持ってくる)
    cd {DOTSにしたい場所の親フォルダ}(例えば、{HOME}\Documents\GitHub\)
    git clone https://github.com/morishima0524/dotfiles
  4. Vundleを取得する
    mkdir {DOTS}\vimfiles\bundle
    cd {DOTS}\vimfiles\bundle
    git clone https://github.com/VundleVim/Vundle.vim.git
  5. {HOME}\.vim\シンボリックリンクを作る(管理者権限コマンドプロンプトで)
    cd {HOME}
    mklink /D .vim {DOTS}\vimfiles({DOTS}\vimfilesは絶対パス推奨)
  6. {DOTS}の_vimrcを読むようにする
    mklink _vimrc {DOTS}\vimfiles\_vimrc({DOTS}\vimfiles_vimrcは絶対パス推奨)
    gVimを使うなら、_gvimrcもリンクを作る
  7. vimを起動して「:PluginInstall」
  8. Done.

最終的なディレクトリ構成

試行錯誤した結果、以下のようになった
{HOME}:c:\Users\username\
{DOTS}:{HOME}\Documents\GitHub\dotfiles\(GitHubで管理しているローカルディレクトリ)

  • {HOME}\
    • .vim\({DOTS}\vimfiles\へのシンボリックリンク)
    • _vimrc({DOTS}\vimfiles_vimrcへのシンボリックリンク)
    • vim\(KaoriYaさんからDLしたものを展開しただけ)
  • {DOTS}\
    • .gitignore(VundleでインストールしたプラグインをGitHubに入れないための設定ファイル)
    • vimfiles\(共有管理したいファイル)
      • _vimrc(大事な大事な個人設定ファイル)
      • bundle\(プラグイン置き場。vundleが管理するので、Git管理対象外)
        • nerdtree\(vundleで自動取得)
        • vim-indent-guides\(vundleで自動取得)
        • Vundle.vim\(git clone で取得)

_vimrc

Quick Start参照。

_vimrc
set nocompatible
filetype off

set rtp+=~/.vim/bundle/Vundle.vim " vundleのインストール先
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'

" Directory Tree View
" usage enter :NERDTree in ex mode
Plugin 'scrooloose/nerdtree'

" Indent Seeing
Plugin 'nathanaelkane/vim-indent-guides'

call vundle#end()
filetype plugin indent on

" この後は、好きな設定を入れる
" edit settings
set tabstop=4
set shiftwidth=4
set expandtab
set number
set clipboard=unnamed,autoselect

" indent guide options
colorscheme default
let g:indent_guides_enable_on_vim_startup=1
let g:indent_guides_start_level=2
let g:indent_guides_guide_size=1

" map
inoremap jj <ESC>
noremap <CR> o<ESC>
noremap <silent> <C-T> :NERDTreeToggle<CR>

困ったこと

vimrc?_vimrc?.vimrc?設定ファイルの名前がいろいろ

  • vimrc:
    • Vimの共通設定を書くところ。(香り屋さん固有の起動時読込ファイル?)
  • _vimrc:
    • Vimの個人設定を書くところ。
    • 以下のいずれかの場所に置く。
      • $HOME/_vimrc(vimを起動して:echo $HOMEで確認できる)
      • $VIM/_vimrc(vimを起動して:echo $VIMで確認できる)
      • \$HOMEで見つかれば、$VIMは読まない(以上、vimrcに書いてあった)
  • .vimrc:
    • Vimの個人設定を書くところ。
    • Windows以外の環境ではこういう名前(なんだと思う)

Vimは%HOME%\.vim\をプラグイン配置先として見ているのか?

No.
デフォルトでは見ていないが、設定次第で見る。
Vimが$VIM\plugins\をプラグイン配置先と認識していたのは、vimrcにそういう(runtimepath(rtp)にパスを追加する)設定が書いてあるからで、同じように追加すれば見させることは可能(と思う)。
KaoriYa Vimのプラグイン参照という意味ではこのショートカットを作る意味はない。

では、{HOME}\.vim\の役割は?

  • プラグインをダウンロードする場所を誘導し、Vundleのデフォルト設定をコピペで導入できるようにすること。
    Vundleはデフォルトで{HOME}/.vim/bundle/ にプラグインをDLするので。

ローカルにある(香り屋デフォルト)プラグインをVundleに読み込ませる方法がわからない

そんな方法はない
かどうかは結局わからないが、ローカルファイルとして見るような指定はないように思う。
ローカルGitリポジトリを作ればよさそうだけど、なら自分でGitに上げてしまえばいいような気がした。
結局、香り屋に同梱されているプラグインはVundle管理せず、そのまま香り屋に読み込んでもらうことにした。

シンボリックリンクを作れない

管理者権限つきコマンドプロンプトを使う

シンボリックリンクをうまく作れない

mklink /D リンクファイル リンク先
リンク先を相対パスにすると、作るリンクができた場所からの相対パスになる。
c:\> mklink /D test\.vim test\vimfiles
とすると、.vim は c:\test\test\vimfiles を指す。絶対パスで指定するか、リンクファイルができる場所でコマンドをたたくのがいい。

Git BashではうまくVimが起動しない環境がある

未解決

:PluginInstallに失敗する

  • cygwin版のgitのみをインストールしている場合
    cygwinのgitだと、git clone のclone先が/cygdrive/c/略/bundle/c:\Users\略 に入れようとしてしまう
    • 単体のgitをインストールする
    • where gitの結果で、cygwinではないgitが先頭に出てくればOK。
  • GitBashを「GitBashからのみ使用する」設定でインストールしている場合
    コマンドプロンプトでVimを起動した場合に、gitコマンドが使えないのでインストールに失敗してしまう。
    • インストールはGitBashで実行する
      ちょっと不便だけど、めったにやらないし、よしとする案。
    • GitBashのgit.exeにパスを通す or 単体のgitをインストールする or GitBashをインストールしなおす
      などなど、コマンドプロンプトからgitを実行できるようにする案。

GitHubからSSHでcloneできない

環境を作ろうとしている場所(会社とか)のポリシーによっては、できないこともある。
あきらめて、HTTPSでクローンすればよい。

28
36
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
36