Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

オレ的vimプラグイン10選

$
0
0

vim歴5年くらいの私が使っているvimのpluginの中から、無いと私が死ぬプラグインをいくつかピックアップして紹介したいと思います。

ちなみに.vimrcファイルはgithubで公開しています。

動作環境

  • Linux MInt 18.2
  • kernel 4.10.0-40-generic
  • NVIM v0.2.3-dev

プラグイン管理

プラグイン管理はShougo/dein.vimで行っています。
dein.vimは従来のNeoBundle等と比べ高速だったり、プラグインをtoml形式で別ファイルに記述できます。(私は.vimrc内に書いてますが)

ale

w0rp/ale
Vim8/NeoVimから搭載された非同期プロセスの機能を利用して、各種Lintを非同期実行できるプラグインです。
以前はsyntasticを使用していたのですが、同期実行のため、巨大なファイルやLintツールが遅い言語等でチェックを書けた場合、vimの操作自体がブロックされていました。
ですが、aleは非同期実行ですので、Lintツールによるチェック中も自由にvimを操作することができます。

aleに関する設定は以下の通りです。

" 保存時のみ実行するletg:ale_lint_on_text_changed =0" 表示に関する設定letg:ale_sign_error =''letg:ale_sign_warning =''letg:airline#extensions#ale#open_lnum_symbol ='('letg:airline#extensions#ale#close_lnum_symbol =')'letg:ale_echo_msg_format ='[%linter%]%code: %%s'highlight link ALEErrorSign Taghighlight link ALEWarningSign StorageClass" Ctrl + kで次の指摘へ、Ctrl + jで前の指摘へ移動
nmap <silent><C-k><Plug>(ale_previous_wrap)
nmap <silent><C-j><Plug>(ale_next_wrap)

画面はこんな感じになります。
01.png

vim-table-mode

dhruvasagar/vim-table-mode
テーブルをいい感じに整形してくれるプラグインです。
エクセル起動するのが面倒なレベルの小さい表の時によく使ってます。
:TableModeToggleでon/offを切り替えられます。

.vimrc中にlet g:table_mode_corner = '|'を指定することで、Markdown記法のテーブル表記にしています。

sonictemplate-vim

mattn/sonictemplate-vim
新規にファイルを作成する場合に使用するテンプレート機能です。
:Template <tab>と入力することで候補が表示されます。

自分でテンプレートを追加し、vimのfiletypeごとに管理することができます。
ちょっとしたスクリプトを書くことが多いshellやpython3の雛形を用意して使っています。

私は自作のテンプレートは次のように管理しています。

  • .vimrclet g:sonictemplate_vim_template_dir = ['~/.vim/template']と記述する
  • テンプレートはdotfilesリポジトリ内で管理する
  • ln -s path/to/dotfiles/vim/template ~/.vim/templateでシンボリックリンクを作成する

このように管理することでリポジトリをpullして最新を取得するだけで、どのマシンでも同じテンプレートを使うことができます。

vim-cheatsheet

reireias/vim-cheatsheet
自作のチートシート(メモ)を別ペインで表示するプラグインです。
自分で書いたチートシートを表示できるプラグインが無かったので自分で作りました。
:Cheatで表示/非表示を切り替えることができます。

.vimrc中にlet g:cheatsheet#cheat_file = '~/.cheatsheet.md'のように設定することで開くファイルを管理できます。
当然このファイルもdotfilesで管理し、シンボリックリンクで配置しています。

私はこんな感じでvimの操作に関するメモをいくつか書いています。

02.png

winresizer

simeji/winresizer
:sp:vs:help等で複数ウィンドウを表示した際に、ウィンドウの分割サイズを簡単に調整するプラグインです。
プラグインのヘルプを見る際や後述のvim-quickrunを使用する際に便利です。

使い方は以下の通りです。

  • Ctrl + eでリサイズを開始
  • h/j/k/l or 方向キーでウィンドウサイズを調整
  • Enterで確定

デフォルトだと垂直方向は10行単位、水平方向は3文字単位で移動されるので、私は下記設定で1ずつ動くように変更しています。
vim
let g:winresizer_vert_resize = 1
let g:winresizer_horiz_resize = 1

vim-quickrun

thinca/vim-quickrun
vimを閉じずに編集中のファイルを素早く実行するプラグインです。
shellやpythonの簡単なスクリプトを書きながら確認する際にとても便利です。
オプションを指定することで実行時の引数も指定できます。(詳しくは:h quickrunで参照してください)

デフォルトのショートカットでは<Leader> + rで実行することができます。

03.gif

vim-fugitive

tpope/vim-fugitive
vimからGitの各種コマンドを実行できるようにするプラグインです。

git blameに相当する:Gblameが個人的にかなり便利です。

TOOD: capture

vim-airline

vim-airline/vim-airline
vimの下部に表示されるステータスラインを装飾するプラグインです。
カスタマイズ次第でファイル名、gitのブランチ名、ファイルの種類、文字コード、改行コード、Lintの指摘数等、様々な情報を表示できます。

私は併せて下記プラグインも利用しています。
- vim-airline/vim-airline-themes
- ryanoasis/vim-devicons

vim-deviconsを追加することで、改行コードやファイルタイプ等にアイコンフォントが使用されるようになります。

設定値個々の説明は省きますが、私は次のように設定しています。

letg:airline_theme ='wombat'setlaststatus=2letg:airline#extensions#branch#enabled =1letg:airline#extensions#tabline#enabled =1letg:airline#extensions#wordcount#enabled =0letg:airline#extensions#default#layout = [['a','b','c'], ['x','y','z']]letg:airline_section_c ='%t'letg:airline_section_x ='%{&filetype}'letg:airline_section_z ='%3l:%2v %{airline#extensions#ale#get_warning()} %{airline#extensions#ale#get_error()}'letg:airline#extensions#ale#error_symbol =' 'letg:airline#extensions#ale#warning_symbol =' 'letg:airline#extensions#default#section_truncate_width = {}letg:airline#extensions#whitespace#enabled =1

04.png

vim-go

fatih/vim-go
たぶんgolangのプラグインでは一番有名なやつ。最強。

よく使う機能は下記の通り。(自前のチートシートにメモってる内容)

- `<leader>b`         : GoBuild = `go build`
- `<leader>r`         : GoRun = `go run`
- `<leader>t`         : GoTest = `go test`
- `<leader>tf`        : GoTestFunc = `go test -run ...`
- `<leader>c`         : GoCoverageToggle
- `:GoImport ${name}` : importに追加、tab補完可能
- `:GoDrop ${name}`   : importから削除、tab補完可能
- `:GoImports`        : 不足しているパッケージをimportに追加する
- `dif`               : 関数の中身をdelete
- `vif`               : 関数の中身を選択
- `yif`               : 関数の中身をyank
- `daf`               : 関数の全体をdelete
- `vaf`               : 関数の全体を選択
- `yaf`               : 関数の全体をyank
- `:GoAlternate`      : foo.go と foo_test.goを行き来する
- `:GoDef`            : 定義へ移動
- `:GoDoc`            : ドキュメントを開く
- `:GoDocBrowser`     : ドキュメントをブラウザで開く
- `<leader>i`         : GoInfo = カーソル下の情報を表示
- `:GoRename`         : カーソル下の要素をリネーム

ちなみに、私の設定はこんな感じです。

letg:go_def_mapping_enabled =0letg:go_fmt_autosave =1letg:go_highlight_types =1letg:go_highlight_fields =1letg:go_highlight_functions =1letg:go_highlight_methods =1

vim-instant-markdown

suan/vim-instant-markdown
Markdownのプレビュープラグイン
previmを始めいろんなビューワーを試しましたがこれに落ち着きました。

ファイルの編集を終えるとブラウザのタブを閉じてくれるのが地味に気に入ってます。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>