読者です 読者をやめる 読者になる 読者になる

赤色のケトル

いつか、どこかの誰かの役に立つことを願って記すメモ帳

vim-showmarks を導入する

Vim の画面上で、マークされた位置を可視化したり、マーク一覧を分かりやすく表示できるプラグイン。なんとなく使いにくい vim のマーク機能を使いやすくしてくれる。

m + l でマーク一覧を表示し、 m + m + 1文字 でジャンプする。
f:id:Red_Kettle:20161226174813g:plain

インストール

dein.vim を用いて導入する。~/.vim/rc 内の dein.toml に以下のように記すと、vim を起動したときに自動でインストールされる。

[[plugins]]
repo = 'jacquesbh/vim-showmarks'

redkettle.hatenablog.com

.vimrc の設定

.vimrc に以下のように記す。マーク関連のコマンドをすべて m + ○ で行えるようにキーマッピングを変更した。また、下記のサイトを参考にして、m + s でマークをする際に自動で文字が選ばれるようにした。

" vim-showmarks の設定 --------------------------
  " 基本マップ
    nnoremap [Mark] <Nop>
    nmap m [Mark]
  " m + s で現在位置をマーク
    if !exists('g:markrement_char')
        let g:markrement_char = [
        \     'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
        \     'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'
        \ ]
    endif
    nnoremap <silent>[Mark]s :<C-u>call <SID>AutoMarkrement()<CR>:DoShowMarks<CR>
    function! s:AutoMarkrement()
        if !exists('b:markrement_pos')
            let b:markrement_pos = 0
        else
            let b:markrement_pos = (b:markrement_pos + 1) % len(g:markrement_char)
        endif
        execute 'mark' g:markrement_char[b:markrement_pos]
        echo 'marked' g:markrement_char[b:markrement_pos]
    endfunction
  " m + l でマーク一覧を表示/非表示
    let b:mark_exist = 0
    set updatetime=1
    function! s:MarkList()
      if b:mark_exist == 0
        let b:mark_exist = 1
        nnoremap <silent>[Mark]l :<C-u>1PreviewMarks<CR>
        \:<C-u>NoShowMarks<CR> :<C-u>call <SID>MarkList()<CR>
      else
        let b:mark_exist = 0
        nnoremap <silent>[Mark]l :<C-u>PreviewMarks<CR>
        \:<C-u>DoShowMarks<CR> :<C-u>call <SID>MarkList()<CR>
      endif
    endfunction
    nnoremap <silent>[Mark]l :<C-u>PreviewMarks<CR>
    \:<C-u>DoShowMarks<CR> :<C-u>call <SID>MarkList()<CR>
  " m + m + 1文字 で指定のマークへ移動
    nnoremap [Mark]m '
  " m + n で次のマークへ移動
    nnoremap [Mark]n ]`
  " m + b で前のマークへ移動
    nnoremap [Mark]b [`

参考にしたサイト
vimのmark機能を使いやすくする | 電脳手帳