guioptionのトグル

Introduction

guioptionをトグルするVimscript、これでメニュー・ツールバー・左右スクロールバーの表示、非表示が切り替えられます。

VimScriptCode

guioptionsをトグルするためにToggleGuiOptionsを定義します。

  1. guioptionは"Tmrl"だけをトグルする事ができます。
  2. "Tmrl"以外が渡された場合、echoで"bad parameter :X"が表示されます。
function! ToggleGuiOptions(flag_option)
  if a:flag_option ==? 'T' " ツールバーの表示/非表示
    if &guioptions =~# 'T'
      set guioptions-=T
    else
      set guioptions+=T
    endif
  elseif a:flag_option ==? 'm' "メニューバーの表示/非表示
    if &guioptions =~# 'm'
      set guioptions-=m
    else
      set guioptions+=m
    endif
  elseif a:flag_option ==? 'r' "右スクロールバーの表示/非表示
    if &guioptions =~# 'r'
      set guioptions-=r
    else
      set guioptions+=r
    endif
  elseif a:flag_option ==? 'l' "左スクロールバーの表示/非表示
    if &guioptions =~# 'l'
      set guioptions-=l
    else
      set guioptions+=l
    endif
  else
    echo 'bad parameter :' . a:flag_option
  endif
endfunction

HowTo

キーバインドを割り当てて、利用する。

" Sample
" ツールバーの表示/非表示
nnoremap <C-C><C-A> :call ToggleGuiOptions('T')<CR>
"メニューバーの表示/非表示
nnoremap <C-C><C-S> :call ToggleGuiOptions('m')<CR>
"右スクロールバーの表示/非表示
nnoremap <C-C><C-D> :call ToggleGuiOptions('r')<CR>
"左スクロールバーの表示/非表示
nnoremap <C-C><C-F> :call ToggleGuiOptions('l')<CR>

Comment

  • 重複してる処理があるのでもっと簡略化出来るはず・・・。
  • 演算子、書式の意味が分かって無いけど、ひとまず書いた状態です。
  • 名無しのvim使いさんのサイトのリファレンスを参考に書いてみました。