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

最近ぼくがVimに設定したこと

$
0
0

ハロー、ハッピーVimmer :tada:

今日はVim pluginと、それに対する僕の設定を紹介します。

マクロの実行をdot repeat可能にした

まずはシンプルかつ最強なやつです。

dot-repeatは通常1つの動作のみを繰り返しますが、これを使えば、以下のような繰り返しが可能です。

  1. qaマクロ記録開始
  2. dt(動作1
  3. dip動作2
  4. 3lD動作3
  5. +qマクロ記録完了
  6. @aマクロを発動
  7. .下に移動してから、上述のdt(から3lまでを実行
  8. .下に移動してから(略
  9. .下に移動してからry
  10. 繰り返し

sample

Webページを非同期で表示するようにした

これは自作プラグインで、まだドキュメントの整備が終わっていない(する予定がない)のですが、せっかくなので紹介させてください。

これを以下のように設定すると

次のようにweblio辞書をVimのpopupで表示します。

sample

ドキュメントを追加して、あとは内部のバッファをいじれるようにすれば、もっと便利になると思いますが、使う人は僕以外いないし、いらんか。という。
だれかドキュメント書いて!

英和翻訳を非同期で表示するようにした

weblio辞書で和英ができるようになったので、あとは英和が必要です。

<leader>kで、選択した英文を翻訳してくれるようにしました。

sample

日本語関連の操作をしやすくした - vim-fmap

これはfキー及びFtTキーの4つへ、キーバインディングを提供してくれるプラグインです。

例えば以下を実行すると

nmap <leader>f<Plug>(fmap-forward-f)
FNoreMap p(  " 大文字括弧開き

<leader>fpbキーで、Vimデフォルトのf(を実行してくれます。

sample

僕はこれを以下のように設定して、IMEオンオフなしで日本語文字にジャンプできるようにしています!
これでnormal・visual・operatorへのいずれでも、ジャンプが可能になります :point_down:

letg:fmap_escape_keys=['','','']

augroup vimrc
  autocmd VimEnter * FNoreMap / ・
  autocmd VimEnter * FNoreMap T ・
  autocmd VimEnter * FNoreMap tt …
  autocmd VimEnter * FNoreMap '' 
  autocmd VimEnter * FNoreMap p(
  autocmd VimEnter * FNoreMap k「
  autocmd VimEnter * FNoreMap K 〈
  autocmd VimEnter * FNoreMap -k『
augroup END

詳しくは :point_down:

括弧の操作を最強にした - vim-operator-surround

いわずと知れたプラグインですが、これも僕は日本語文字に活用しています。
(もちろん日本語文字以外にも。)

例えばカーソル下にwordという単語があれば、normalからのgajKキーでその周りに「」を追加することができ、つまりは「word」することができます。

これ :point_down:の執筆で大活躍でした。(宣伝)

gina.vimのコミット画面をcommittia.vimみたいにした

gina.vimは今季マジ推しのプラグインのうち、ひとつです。

そのまま使うでも便利なのですが、自前でキーマッピングを追加してみました。
見てみてください! :point_down:

sample

ちなみに、このキーマッピングの本家は :point_down:
(これを直接利用しようと考えたのですが、どうやらターミナルからgit-commitする用だったので、諦めました。もしVim上からもできるようだったら、すみません。)


以上です。
Happy Viming!

ZZ


Viewing all articles
Browse latest Browse all 5608

Trending Articles



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