homebrewでmacvimをインストール & 初期設定もろもろ
Macでデフォルトで入っているvimはバージョンが低くluaが有効になっていないため一部のプラグインが使えません。そこでluaが有効なvimをHomebrewを使ってインストールしました。
設定ファイル保存場所
dotfilesをホームディレクトリにつくるという慣習があるようです。
mkdir ~/dotfiles cd ~/dotfiles dotfiles内に.vimrcを書く "バージョン管理ソフトで管理するのがいい git init . && git add .vimrc && git commit -m "first commit" ln -s .vimrc ~/
macでインストール
brew install macvim --with-cscope --with-lua --override-system-vim brew linkapps
キーマップの書式
" Qというキーを押すとgqを押したことになる map Q gq " <C-U>を押すと<Ctrl+g> + u + <C-U>を押したことになる inoremap <C-U> <C-G>u<C-U>
マッピングコマンド | マッピングするモード |
---|---|
map | ノーマル・ビジュアル・モーション待ち |
imap | 挿入 |
nmap | ノーマル |
vmap | ビジュアル |
cmap | コマンドライン |
omap | モーション待ち |
- モーション待ち : dやyなどのオペレータ直保の範囲指定用マッピング
普通に上記コマンドでマッピングすると例えば
nmap w ww
でマッピングするとwでマッピングしたwwのwをさらにwwにマッピング…など再帰的にマッピングされてしまいます。
そこでnoremap
でnnoremap w ww
とするとwが2回分だけ置換されます。
auto commandの書式
ある特定のタイミングに対して実行されるイベントに対して任意のコールバックを発生
autocmd File Type text setlocal textwidth=78
プラグイン管理プラグイン
neobundleインストールする
mkdir -p ~/.vim/bundle cd ~/.vim/bundle git clone https://github.com/Shougo/neobundle.vim.git
vim 小技集
水平線を書く
5i-<ESC>x
を入力
Vimの正規表現
機能 | Vim |
---|---|
1回以上の繰り返し | \+ |
0 or 1回のマッチ | \? または \= |
n回の繰り返し | \{n} |
語境界 | \<(単語始まり), \>(単語終わり) |
グループ化 | \(...\) |
キャプチャなしグループ化 | \%(...\) |
:%s/foo_\zsbar/hoge/g
と入力すると「foo_bar」の「bar」を「hoge」に置き換えます。
Vim マクロ
q + 任意の一文字
で記録開始 > もう一度q
を押すと記録終了です。
登録したマクロの使用@ + 任意の一文字
でマクロ使用可能、@@
で最後に使用したマクロを再度使用する。
選択部分の文字数カウント
矩形選択<ctrl+v>
で文字選択する。そしてg <ctrl>-g
を押すとウィンドウの下部に、何行中何行、総単語数のうちの単語数、総バイトのうちのバイトを表示する。