KirIn 落書き帳

素人がプログラミング, FPGA, LSIをお勉強しているメモ書きです。間違いがあればご指導していただけたら幸いです。

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にマッピング…など再帰的にマッピングされてしまいます。 そこでnoremapnnoremap 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特有の正規表現

機能 Vim
1回以上の繰り返し \+
0 or 1回のマッチ \? または \=
n回の繰り返し \{n}
語境界 \<(単語始まり), \>(単語終わり)
グループ化 \(...\)
キャプチャなしグループ化 \%(...\)

:%s/foo_\zsbar/hoge/gと入力すると「foo_bar」の「bar」を「hoge」に置き換えます。

Vim マクロ

q + 任意の一文字で記録開始 > もう一度qを押すと記録終了です。 登録したマクロの使用@ + 任意の一文字でマクロ使用可能、@@で最後に使用したマクロを再度使用する。

選択部分の文字数カウント

矩形選択<ctrl+v>で文字選択する。そしてg <ctrl>-gを押すとウィンドウの下部に、何行中何行、総単語数のうちの単語数、総バイトのうちのバイトを表示する。