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

【Vim】愛用しているプラグインと、その設定

$
0
0

プラグインマネージャーはvim-plugです。

便利なもの

emmet-vim

https://github.com/mattn/emmet-vim

HTML・CSSの省略記法を展開できます。

プレフィックスキーはデフォルトでは<C-y>ですが、少し遠すぎるので<C-e>に変更しました。

Plug 'mattn/emmet-vim',{    \'on':'EmmetInstall'    \}letg:user_emmet_install_global=1letg:user_emmet_leader_key='<C-e>'" JSXにも対応するletg:user_emmet_settings={    \'javascript':{    \'extends':'jsx'    \}    \}

augroup init_emmet
  autocmd!
  autocmd FileType css,html,htmldjango,javascript,markdown,vue EmmetInstall
augroup END

使用例

  • 挿入モード
  • |がカーソル位置
.container|

<C-e>,:

<divclass="container">|</div>

lexima.vim

https://github.com/cohama/lexima.vim

閉じ括弧や、if文のendifを自動で入力してくれます。似たようなプラグインは多く存在しますが、lexima.vimが一番使いやすいように感じます。

Plug 'cohama/lexima.vim'

vim-submode

https://github.com/kana/vim-submode

サブモードを追加するプラグイン(?)。

Plug 'kana/vim-submode'

使用例

Vimでウィンドウサイズを変更するときは<C-w>+<C-w>+<C-w>+ ...といったキーを入力すると思いますが、これだとかなりしんどいですよね。<C-w>+++ ...でサイズ変更できるようにしてみます。

" この設定は`call plug#end()`よりも後に書くcall submode#enter_with('resize-window','n','','<C-w>+','<C-w>+')call submode#enter_with('resize-window','n','','<C-w>-','<C-w>-')call submode#enter_with('resize-window','n','','<C-w><','<C-w><')call submode#enter_with('resize-window','n','','<C-w>>','<C-w>>')call submode#leave_with('resize-window','n','','<Esc>')call submode#map('resize-window','n','','+','<C-w>+')call submode#map('resize-window','n','','-','<C-w>-')call submode#map('resize-window','n','','<','<C-w><')call submode#map('resize-window','n','','>','<C-w>>')

他にも、gttt ...でタブを移動できるようにしている人もいるみたいです(自分はあまりタブを増やさないので設定していない)。

インデント拡張

indenthtml.vim

https://github.com/vim-scripts/indenthtml.vim

HTMLの高度なインデント。

Plug 'vim-scripts/indenthtml.vim'

indentpython.vim

https://github.com/vim-scripts/indentpython.vim

Pythonの高度なインデント(PEPに準拠)。

Plug 'vim-scripts/indentpython.vim'

オペレーター拡張

vim-operator-user

https://github.com/kana/vim-operator-user

後述のプラグインを使用するのに必要。

Plug 'kana/vim-operator-user'

vim-operator-replace

https://github.com/kana/vim-operator-replace

「ヤンクしているテキストに置き換える」というオペレーターを追加します。

Plug 'kana/vim-operator-replace',{    \'on':'<Plug>(operator-replace)'    \}

map <Leader>r<Plug>(operator-replace)

使用例

  • ノーマルモード
  • []はカーソル位置
  • fugaというテキストをヤンクしている
[h]oge hoge

<Leader>riw:

fug[a] hoge

vim-operator-surround

https://github.com/kana/vim-operator-surround

かの有名なvim-surroundに似たプラグイン。こちらのほうが設計が洗練されているように感じる(vim-repeatも必要ない)。

vim-surroundとはキーバインドが少し違うので、以降の際は慣れるまで時間がかかるかもしれません。

Plug 'rhysd/vim-operator-surround',{    \'on':'<Plug>(operator-surround-'    \}

map <silent><Leader>sa<Plug>(operator-surround-append)
map <silent><Leader>sd <Plug>(operator-surround-delete)
map <silent><Leader>sr<Plug>(operator-surround-replace)" 日本語の括弧も扱えるようにする" キーバインドは後述の`vim-textobj-jabraces`に準拠letg:operator#surround#blocks ={    \'-':[    \{'block':['(',')'],'motionwise':['char','line','block'],'keys':['jb','j(','j)']},    \{'block':['{','}'],'motionwise':['char','line','block'],'keys':['jB','j{','j}']},    \{'block':['[',']'],'motionwise':['char','line','block'],'keys':['jr','j[','j]']},    \{'block':['<','>'],'motionwise':['char','line','block'],'keys':['ja','j<','j>']},    \{'block':['≪','≫'],'motionwise':['char','line','block'],'keys':['jA']},    \{'block':['「','」'],'motionwise':['char','line','block'],'keys':['jk']},    \{'block':['『','』'],'motionwise':['char','line','block'],'keys':['jK']},    \{'block':['〈','〉'],'motionwise':['char','line','block'],'keys':['jy']},    \{'block':['《','》'],'motionwise':['char','line','block'],'keys':['jY']},    \{'block':['〔','〕'],'motionwise':['char','line','block'],'keys':['jt']},    \{'block':['【','】'],'motionwise':['char','line','block'],'keys':['js']}    \]    \}

テキストオブジェクト拡張

vim-textobj-user

https://github.com/kana/vim-textobj-user

後述のプラグインを使用するのに必要。

Plug 'kana/vim-textobj-user'

vim-textobj-jabraces

https://github.com/kana/vim-textobj-jabraces

日本語の括弧を扱うためのテキストオブジェクトを追加します。

Plug 'kana/vim-textobj-jabraces'

使用例

  • ノーマルモード
  • []はカーソル位置
[(]hoge)

dijb:

([)]

Viewing all articles
Browse latest Browse all 5608

Trending Articles



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