LoginSignup
14
16

More than 5 years have passed since last update.

メニュー使っていますか?

Last updated at Posted at 2013-08-28

この記事はVim Advent Calendar 2012 : ATND272日目の記事になります。

突然ですが、皆さんはVimのメニュー使っていますか?

私が思うにVimmerの方々でメニューを表示し使っている方はすごく少数派な気がします。

まぁたぶん、メニューを使わない理由は 「キーボードからマウスに手を動かすのがメンドイ」 からでしょう。
私もそんな理由でメニューを以下のような設定で非表示にしていたのですが...。(正確にはメニュー項目を1つも設定しないですが (== 非表示)。)

set winaltkeys=yes
set guioptions=mM

set winaltkeys=yesguioptions=mにしておかないとAlt+Spaceでシステムメニューが開けなくなっちゃうんですよねぇー。

でもここ最近、私は 「マウスからキーボードに手を動かすのがメンドイ」という理由 でVimのメニューを使ったりしています。

ということで今回は、Vimのメニューについて簡単にまとめたいと思います。詳しいことはVimにヘルプしてください(:h menus参照)。

メニューの表示/非表示

  • メニューを表示する。
set guioptions+=m
  • メニューを非表示する。
set guioptions-=m

メニューのデフォルト項目を設定しない。

メニューのデフォルト項目とは、上の図でいう「File Edit Tools Syntax Buffers Window Help」らのことです。
これらは"$VIMRUNTIME/menu.vim"を読み込むことで設定されます。

  • "$VIMRUNTIME/menu.vim"を読み込まない。
set guioptions+=M
  • "$VIMRUNTIME/menu.vim"を読み込む。
set guioptions-=M

メニューに項目を追加する。

メニューに新しい項目を追加するには以下のような構文になります。

menu [項目名] [コマンド]

[項目名]は項目の階層を.で区切って表します。
[コマンド]はその項目を選択した時に実行したいVimコマンドを指定します。

例:

menu Commnads.Edit\ \.vimrc                  :e $MYVIMRC<cr>
menu Commnads.-sep-                          :
menu Commnads.\.vimrcを再読み込みする。      :so $MYVIMRC<cr>

説明:

[項目名]はマルチバイト文字でも基本的にOKです。
エスケープしなければならない文字は半角スペース(0x20)とカンマ(0x2E)です。
-sep-はセパレーターを表します。ハイフン(0x2D)で括られた項目であればsepでなくても大丈夫です。
例えば、Commnads.-これはセパレータです-もセパレーターになります。
ただし、[項目名]の先頭にセパレーターを持ってくることはできません(-seq-.force\ quitとか)。

メニューから項目を削除する。

メニューから項目を削除するには以下のような構文になります。

unmenu [項目名]

[項目名]は:menuコマンドで指定したものです。

  • Commnads.Edit\ \.vimrcの項目を削除する。
unmenu Commnads.Edit\ \.vimrc
  • すべての項目を削除する。
unmenu *

メニューの項目をコマンドラインから実行する。

メニューの項目はコマンドラインからも実行することができます。
構文は項目を削除するするときと同じです。

  • .vimrcを編集する。
emenu Commnads.Edit\ \.vimrc

終わり

以上、「メニュー使っていますか?」でした。
今回紹介したメニュ-コマンドのほんの一部です。メニュ-コマンドは他にもまだまだいっぱいあります。
まぁそんなわけで、Vimのメニューを使ってみることを検討してみてはどうでしょうか?

たまにはマウスからキーボードに手を動かすこともめんどくさがりましょう

明日の記事は@manga_osyoさんです。

14
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
16