◎ 概要
vim を使っていて便利だと思うものを記事します。
vim をこれから使ってみよう!という人の参考になれば。
lightline と cica フォントと vim-devicons を入れるだけで、なんとなくかっこいい感じになります。
◎ プラグイン
プラグイン | URL | 概要 |
---|---|---|
プラグイン管理 | dein | NeoBundle でも良いし他のパッケージ管理でも良い。最近メジャーなのが dein.vim |
非同期処理 | vimproc | 取り敢えず入れておく。いろんなプラグインで使用する。 |
VIM Shell | vimshell | 取り敢えず入れておく。いろんなプラグインで使用する。 |
インクリメンタル検索 | fzf.vim | 最近流行りの fzf で vim をモダンに使う。 |
統合ユーザインターフェース | Unite | 色々な機能のインターフェースとして使用する。 |
フォント | プログラミング用日本語等幅フォント Cica | プログラミング用フォントなので単純に見やすいのでお薦め。 |
ステータスライン | Lightline | ステータスラインをきらびやかにする。 |
アイコン | devicons | アイコンを表示する。 |
カラースキーム | morokai | カラースキーム「morokai」 |
フルスクリーン | vullScreen | フルスクリーン表示する。 |
インデントをハイライトする | vim-indent-guides | インデントを可視化する。 |
git ラッパープラグイン | vim-fugitive | git のラッパー |
git 変更行視覚化 | vim-gitgutter | git の変更点を表示する。 |
非同期コードチェック | ALE | シンタックスチェックツール |
括弧自動補完 | lexima | 括弧を自動で保管する。 |
TOML | vim-toml | TOML のシンタックスハイライトする。 |
PHP 用補完 | neocomplete-php | PHP の関数名や変数の補完する。 |
HTML | emmet-vim | HTML のシンタックスと補完をする。 |
Snippets | neosnippet | スニペットを管理する |
Snippets | neosnippet-snippets | スニペットを管理する。 |
Ref | vim-ref | PHP Manual を表示する為に使用する。 |
置換 | traces.vim | 結果を確認してから置換する。 |
C 言語用コンパイラとの連携 | vim-clang | C 言語、C++ の補完をする為に使用する。 |
Python 用補完 | jedi-vim | Python の関数名や変数の補完する。 |
チートシート | vim-cheatsheet | チートシートを表示する為のプラグイン。 |
メモ | memolist.vim | メモを作成する為のプラグイン。 |
ワークスペース | vim-workspace | セッションの状態をワークスペースとして保存し、次に vim を起動した際に前回のウィンドウの状態を再現する。 |
◎ Cheat Sheet
▽ Aliaces
※ プラグインのインストールと設定が必要
コマンド | 説明 |
---|---|
:Uu | Unite buffer |
:Ub | Unite bookmark |
:Uf | Unite file |
:Uc | Unite file (現在開いているファイルのディレクトリ) |
:Cl | 閉じる |
:Ss | ウィンドウ分割(横) |
:Sv | ウィンドウ分割(縦) |
:Rt | Twitter タイムラインリフレッシュ |
:Pm | PHP Manual 表示 |
▽ Keymap
※ プラグインのインストールと設定が必要
コマンド | 説明 |
---|---|
<silent> tc | 新規タブページ |
<silent> tn | 次のタブページに移動 |
<silent> tp | 前のタブページに移動 |
▽ プラグインコマンド
※ 設定が必要
コマンド | 説明 |
---|---|
:Files | FZF files ファイル全文検索 |
:%s;<検索文字列>;<置換文字列>; | 結果を確認してから置換する |
:PosttoTwitter | Twitter に POST する |
:FriendsTwitter | Twitter のタイムラインを表示する |
:VullScreen | フルスクリーン化 |
:HonyakuEJ | 翻訳(英語⇒日本語 Translate) |
:HonyakuJE | 翻訳(日本語⇒英語 Translate) |
:Gwrite | Git ステージにする |
:Gcommit | Git コミット |
:Gpush | Git push |
:Gpull | Git pull |
:Gblame | Git blame |
▽ vim オプション
コマンド | 説明 |
---|---|
vim -O2 file1 file2 | 垂直分割で開く |
vim -o2 file1 file2 | 水平分割開く |
vim +/gorilla file | 検索かけた状態でファイル開く |
vim -R file | 読み取り専用状態でファイルを開く |
vim -d file1 file2 | 差分確認 |
vim -b gorilla.bin | バイナリ編集(開いた後に :%!xxd) |
▽ その他
コマンド | 説明 |
---|---|
Control + Insert | クリップボードにコピー |
Shift + Insert | クリップボードからペースト |
◎ 開発環境構築
vim で開発環境を整えます。
取り敢えず Linux 上での環境を整えてみます。
dein で各プラグインのインストールと設定を行います。
▽ dein.vim インストール
mkdir-p$HOME/.cache/dein &&cd$_;
curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh;
sh ./installer.sh $HOME/.cache/dein;
▽ dein.vim セットアップ
dein.vim 自体の設定
"==============================================================================="dein.vim"===============================================================================if&compatiblesetnocompatible"BeiMprovedendif"Required:setruntimepath+=$HOME/.cache/dein/repos/github.com/Shougo/dein.vim"Required:ifdein#load_state('$HOME/.cache/dein')calldein#begin('$HOME/.cache/dein')"Letdeinmanagedein"Required:calldein#add('$HOME/.cache/dein/repos/github.com/Shougo/dein.vim')"--tomisettingslets:toml_dir=$HOME.'/.vim/rc'lets:toml=s:toml_dir.'/dein.toml'lets:lazy_toml=s:toml_dir.'/dein_lazy.toml'calldein#load_toml(s:toml, {'lazy': 0})calldein#load_toml(s:lazy_toml, {'lazy': 1})"Required:calldein#end()calldein#save_state()endif"Required:filetypepluginindentonsyntaxenable"Ifyouwanttoinstallnotinstalledpluginsonstartup.ifdein#check_install()calldein#install()endiflets:removed_plugins=dein#check_clean()iflen(s:removed_plugins)>0callmap(s:removed_plugins,"delete(v:val,'rf')")calldein#recache_runtimepath()endif"===============================================================================
dein.vim 用ディレクトリ作成
mkdir-p$HOME/.vim/rc;
dein.vimで管理するプラグインの設定
- $HOME/.vim/rc/dein.toml に記載する
PHP
プラグインのインストール
#===============================================================================# PHP Plugins#===============================================================================#-- 補完(PHP 用)[[plugins]]repo='violetyk/neocomplete-php.vim'hook_add='''
let g:neocomplete_php_locale = 'ja'
'''#-------------------------------------------------------------------------------#-- HTML[[plugins]]repo='mattn/emmet-vim'#-------------------------------------------------------------------------------#-- Ref[[plugins]]repo='thinca/vim-ref'hook_add='''
let g:ref_phpmanual_path = $HOME . '/.vim/php/php-chunked-xhtml'
'''#-------------------------------------------------------------------------------
PHP マニュアルを vim から参照できるようにする
マニュアルの用意
mkdir-p$HOME/.vim/php &&cd$_;
wget http://jp2.php.net/get/php_manual_en.tar.gz/from/jp.php.net/mirror;tar zxvf php_manual_en.tar.gz
テキストブラウザのインストール
sudo apt install lynx;
使い方
:Ref phpmanual var_dump
補完(PHP)
neocomplete.vim に以下設定を追加
letg:neocomplete_php_locale='ja'
リンター設定
ALE に以下設定を追加
letg:ale_linters={\ 'php':['phpcs','php','phpmd'],\}
C 言語
プラグインのインストール
#===============================================================================# C Language Plugins#===============================================================================[[plugins]]repo='justmao945/vim-clang'hook_add='''
let g:clang_auto = 0
let g:clang_complete_auto = 0
let g:clang_auto_select = 0
let g:clang_use_library = 1
let g:clang_c_completeopt = 'menuone'
let g:clang_cpp_completeopt = 'menuone'
let g:clang_exec = 'clang'
let g:clang_format_exec = 'clang-format'
let g:clang_c_options = '-std=c11'
let g:clang_cpp_options = '-std=c++1z -stdlib=libc++ -pedantic-errors'
'''
補完(C)
neocomplete.vim に以下設定を追加
if!exists('g:neocomplete#force_omni_input_patterns')letg:neocomplete#force_omni_input_patterns={}endifletg:neocomplete#force_overwrite_completefunc=1letg:neocomplete#force_omni_input_patterns.c='[^.[:digit:] *\t]\%(\.\|->\)'letg:neocomplete#force_omni_input_patterns.cpp='[^.[:digit:] *\t]\%(\.\|->\)\|\h\w*::'
コンパイラやフォーマッタのインストール
sudo apt install clang clang-format
Python
プラグインのインストール
#===============================================================================# Python Plugins#===============================================================================[[plugins]]repo='davidhalter/jedi-vim'on_ft='python'#-------------------------------------------------------------------------------
補完(Python)
neocomplete.vim に以下設定を追加
autocmdFileTypepythonsetlocalomnifunc=jedi#completionsletg:jedi#auto_vim_configuration=0if!exists('g:neocomplete#force_omni_input_patterns')letg:neocomplete#force_omni_input_patterns={}endifletg:neocomplete#force_omni_input_patterns.python='\h\w*\|[^. \t]\.\w*'
jedi のインストール
cd$HOME/.cache/dein/repos/github.com/davidhalter/jedi-vim;
git submodule update --init;
リンター設定
ALE に以下設定を追加
letg:ale_linters={\ 'python':['flake8','mypy'],\}
Flake8 等のインストール
sudo apt install flake8
JavaScript
プラグインのインストール
#===============================================================================# JavaScript Plugins#===============================================================================[[plugins]]repo='billyvg/tigris.nvim'on_ft=['javascript','javascript.jsx']hook_post_update='''
let g:dein#plugin.build = './install.sh'
'''hook_add='''
let g:tigris#enabled = 1
let g:tigris#on_the_fly_enabled = 1
'''#-------------------------------------------------------------------------------
リンター設定
ALE に以下設定を追加
letg:ale_linters={\ 'javascript':['standard'],\}
standard のインストール
sudo apt install nodejs;sudo apt install npm;sudo npm install standard --global;