Up: 目次   [Index]


Mac での Vim のグラフィカルユーザーインターフェイス

*gui_mac.txt*   For Vim version 8.0.  Last change: 2018 Dec 17


                  VIMリファレンスマニュアル    by Björn Winckler

MacVim グラフィカルユーザーインターフェイス

1. MacVim の違ひ|macvim-differences|
2. MacVim の起動|macvim-start|
3. 初期設定|macvim-preferences|
4. スペシャルカラー|macvim-colors|
5. メニュー|macvim-menus|
6. ツールバー|macvim-toolbar|
7. タッチバー|macvim-touchbar|
8. ダイアログ|macvim-dialogs|
9. システムサービス|macvim-services|
10. mvim:// URL ハンドラー|macvim-url-handler|
11. キーボードショートカット|macvim-shortcuts|
12. トラックパッドジェスチャー|macvim-gestures|
13. 國際化|macvim-international|
14. バグと未實裝の機能|macvim-todo|
15. ヒント|macvim-hints|

その他の關聯する文章:

|gui.txt|GUI の一般的な要素。

{Vi に GUI はありません}

1. MacVim の違ひ

MacVim のゴールのひとつは、Vim を macOS 本來のアプリケーションの動作をするやうにすることです。この理由は、MacVim は Vim の他の GUI 版とは少しばかり擧動が異つてゐるからです。修正の多くは、システムの gvimrc ファイルで提供されてゐます。次のやうに入力することで、このファイルを素速く開いて確認することができます:

:tabe $VIM/gvimrc

Note:
このファイルは MacVim をアップデートする度に上書きされることに注意してください。そのため、自分の變更は "~/.gvimrc" に書いておくのが良いです。

MacVim でのウィンドウ (window)

MacVim の "window" といふ用語に關していくつかの混亂があります。それは、ひとつは Vim についての事と、もうひとつは MacVim についての事です。Vim での "window" は ":sp" を入力したときに開いたものです。ところが MacVim での "window" は、テキストビュー、スクロールバー、ツールバーそしてタブラインを含んでゐる GUI ウィンドウのことなのです。混亂を囘避するために、前者を Vim-window と呼び、後者は單に window と呼ぶことにします。

MacVim でのエンコーディング

MacVim で ’termencoding’ を變更することはできません。このオプションは强制的に "utf-8" に設定されてゐます。’encoding’ オプションはまた、(他の GUI 版では "latin1" であるのに對して) デフォルトで "utf-8" です。

Note:
UTF-8 は Unicode で定義されてゐるすべての文字を表はすことができます。Unicode は他の標準的なエンコーディングすべてにおけるすべての文字を含んでゐます。そのため、’encoding’ が "utf-8" に設定されてゐる限り、どのやうなエンコーディングのファイルを編輯しても、完全に信賴できるでせう。もちろん、あなたは編輯してゐるファイルのエンコーディングの ’fileencodings’ を自動判定したり、コマンドラインから |++enc| を强制的に檢出したいかもしれません。

しかしながら、もしもマルチエンコーディング (MIME のやうなコンテナフォーマットや Unix の mbox ファイル) のファイルを編輯してゐたり、標準ではないエンコーディングのファイル (バイナリデータ、|edit-binary| を參照) を編輯してゐるのなら、MacVim がファイルを再エンコーディングすることなど全く望まないでせう。この狀況では、’encoding’ も ’fileencodings’ も Latin1 のやうな單純なシングルバイトのエンコーディングに設定する必要があります。さうすると、ファイルがメモリに讀み込まれた時に、オリジナルのバイトには手を加へられません。

MacVim でのシフトキー

macOS のテキストエディタでは、シフトキーを押しながら矢印キーを押すことで選擇範圍を伸縮します。また、選擇をした狀態で printable なキー {譯注: fn ぢやない 1a のキーのこと?} を押すと、現在選擇されてゐるものが、その押された文字で置き換へられます。

MacVim ではこのやうな擧動をエミュレートすることができます (そのやうにキーバインドを設定し、’keymodel’ と ’selectmode’ を初期値以外に設定することによつて)。とはいへ、デフォルトでは有效にされてゐません。MacVim をもつと TextEdit に似せたり、Vim とは違つたものにしたいのなら、次の設定を "~/.vimrc" (.gvimrc ではないよ!) に追加しませう:

{譯注: そんなやつおるんか?Vim 使ふ意味ないんちやふ?}

if has("gui_macvim")
  let macvim_hig_shift_movement = 1
endif

MacVim でのドラッグ&ドロップ

Vim がコマンドラインモードでなければ、ファイルを window にドラッグ&ドロップすると、その window 內でファイルをタブでそれぞれ開きます。コマンドラインモードのときは、ファイルの名前がコマンドラインに追加されます。ドラッグしてゐる閒にモディファイアキーを押すことはサポートされてゐません。

ファイルを Dock アイコンにドロップしたときは、Vim が現在どのやうなモードにゐるのかにかかはらず、常に新しいタブで開かれます。{譯注: 自分の環境では新規 window で開かれてしまふのだけど?下に說明あり!} ファイルを Finder 上でダブルクリックしたときにも同じことが言へます。{譯注: これはファイルが「このアプリケーションで開く:」にて MacVim.app と關聯付けられてゐないとダメですね}

環境設定の "Open files from applications" にてドロップしたファイルをどのやうに開くのかのオプションがあります。この場合はタブは望まれてゐません。

{譯注: メニューバーから MacVim -> Preferences... -> General Tab -> "Open files from applications:" に "in a new window" と "in the current window" のラジオボタンがあり、さらに後者にはセレクトボックスで 4 種類を選べるやうになつてゐます}

MacVim でのメニュー

MacVim のデフォルトのメニューは Apple のヒューマンインターフェイスガイドライン (HIG) により適合するやうに變更されてゐます。現時點でこれは、ローカライズされたメニューを壞します。ですから、英語のメニューだけがサポートされてゐます。

Note:
メニューは作業中です。HIG について何か知つてゐて、MacVim に貢獻したいと思ひましたら、メニューをより良くして貢獻してください。

MacVim でのウィンドウのタイトル

デフォルトの window タイトルは引數のリストを含んでゐません。これはいつたんタブ機能を使ひはじめると、本當に見た目が良くないからです。例へば、2 つのファイルをドロップし、それから 2 つ以上のファイルをドロップし...としてから、最初のタブに戾るとします。すると window タイトル中に "((3) of 2)" のやうな奇妙な文字列が現れてしまひます。

MacVim でのタブのラベル

デフォルトでは、タブのラベルは深くネストされたフォルダのファイルを編輯してゐる際に、タブをより讀み易くするため、ファイル名の末尾を表示します。Vim のタブラベルのデフォルトに戾すには、.gvimrc ファイルに "set guitablabel=" を加へてください。.vimrc で ’guitablabel’ に何かを設定すると、このデフォルトの效果を妨げることになるでせう。

MacVim のオプション

MacVim がサポートしてゐる非標準なオプションがあります:

antialias’, ’blurradius’, ’fullscreen’, ’fuoptions’, ’macligatures’, ’macmeta’, ’macthinstrokes’, ’toolbariconsize’, ’transparency

MacVim のコマンド

MacVim がサポートしてゐる非標準なコマンドがあります:

|:macaction|, |:macmenu|

MacVim のイベント

MacVim がサポートしてゐる非標準なイベントがあります:

|OSAppearanceChanged|

MacVim での檢索

(例へば "/" を使つて) Vim で何かを檢索するとき、またはテキストを選擇して <D-e> を押したときはいつでも、檢索クエリが macOS の "Find Pasteboard" にコピーされます。{譯注: メニューバーから MacVim -> Edit -> Find -> Find... で表示されるダイアログの Find: テキストエリアに、檢索した文字列がコピーされるのと同樣に、他のアプリケーションのものにもコピーされてゐる!システムクリップボードの檢索版みたいなものがあつたんですね。}

このアイデアは何かを檢索してから他のアプリケーションに移動したときに <D-g> (もしくは <D-G>) {譯注: -G} を押すことによつて、他のアプリケーションに移つても檢索を繰り返すことができます。いくつかのアプリケーションで同樣の機能が動作するので、他のアプリケーションから MacVim に戾つてきて <D-g> で檢索を續けることができます。

もしも Vim の檢索クエリを macOS の "Find Pasteboard" と共有したくないのであれば、|MMShareFindPboard| に "NO" を設定することで可能になります。これを設定してゐても、<D-g> は檢索のために OS の "Find Pasteboard" を使ふことができますし (これを望まないのであれば代はりに |n| を使ひます)、<D-e> (メニューバーの "Edit" -> "Find" 項目內にある "Use Selection for Find") も "Find Pasteboard" と檢索パターンを共有してゐます。

Note:
コマンド |n| は <D-g> とは同じでないことに注意してください。前者は Vim で生成された最後の檢索を繰り返します。ところが、後者は findNext: (|:macaction| を參照) を使つて、macOS の "Find Pasteboard" にある文字列を檢索します。

<D-g> キーに相當するものは、MacVim である window から他の window へ檢索を引き繼ぐのにとても良い方法です。("/" を使つて) ある window で何か簡單な檢索をしてから、(例へば <D-`> で) 他の window に移動し、<D-g> を押せば、新しい window でも檢索が繰り返されるでせう。

MacVim での delete キー

backspace’ オプションは、新規ユーザーがとても慣れ親しんだ delete キーの動作となるやうに、システムの vimrc で 設定されてゐます。この非デフォルトの擧動が好きでないのなら、"~/.vimrc" ファイルに "set backspace&" を加へてください。

2. MacVim の起動

MacVim を起動する一番簡單な方法は Finder でアイコンをダブルクリックすることです。しかし、ほとんどのユーザーはたぶん、ターミナルを使ふのを好むでせう。

MacVim を起動する方法に關聯することを、はじめに Finder について說明をし、次に Terminal について檢討をします。

Note:
MacVim はハードディスクのどこにでも置くことができますが、このヘルプファイルでは、/Applications フォルダに置いてあることを想定してゐることに注意してください。

MacVim は自動的に、いくつの標準的なファイルフォーマットのエディタとして自分自身を登錄します。これはファイルをダブルクリックすることで (もしも他のアプリケーションに關聯付けられてゐなければ) MacVim で開くことを可能にします。もしくはファイルを右クリックしてコンテキストメニューから "Open with" {譯注: このアプリケーションで開く} で開けます。

新規 window のタブで開くために、Dock アイコンにファイルをドラッグ&ドロップすることもできます。もしくは、目的の window のタブでファイルを開くために、すでに開いてゐる window にドロップすることができます (例へば、環境設定で "Open files from applications" オプションを變更することにより、分割でファイルを開くことが可能です)。

最後に、MacVim でファイルを開くために、macOS のシステムサービスを使ふこともできます。|macvim-services| を參照してください。

MacVim をターミナルから起動するために |mvim| スクリプトを使ひます。

または "open" コマンドを使ひます (この方法では Vim にパラメータを渡すことができません)。

open -a MacVim file ...

後者の方法を使ふことの利點は、環境設定パネルでのファイルを開くことに關聯する設定が尊重されることです。そして |Quickstart| が有效なら、直ちにファイルを開きます。

ターミナルの Vim で次のコマンドを使ふことで MacVim を起動することができます:

:gui [++opt] [+cmd] [-f|-b] [files...]

Note:
フォークの ("-b") は現在は動作しないことに注意してください。

"mvim" シェルスクリプトは MacVim に同梱されてゐます。

/Applications/MacVim.app/Contents/bin/mvim

これは bundle 內の Vim を起動するラッパースクリプトです。次のフォルダをパスに追加すると、

/Applications/MacVim.app/Contents/bin

"mvim" と入力することでターミナルから簡單に MacVim を起動することができます。

$ mvim

ファイルを指定して開くこともできます。

$ mvim file ...

bin フォルダには diff をしたり、ファイルを讀み込み專用で開いたりする便利なスクリプトが入つてゐます。

GUI 無しの Vim を使ひたいのなら、"vim", "vimdiff" そして "view" を使ふことができます。

クイックスタート

クイックスタートは例へば <D-n> {譯注: <-N>} を押したときに、卽座に新規 window を開くことを保證します。この機能は環境設定の Advanced Tab の部分で有效にすることができます (デフォルトでは無效です)。

Note:
この設定は |mvim| コマンドを使つたときに、ウィンドウを開く速度には影響しないことに注意してください。

{譯注: クイックはクイックでもそのクイックではないよ!といふ意味なのかな?}

Note:
非標準な (つまり ~/.vim ではない) 場所にある runtime ファイルへのどのやうな變更も、變更があつた後に開いた最初の window には反映されないことに注意してください。

また、失はれたコマンドライン履歷を導く |viminfo| ファイルの讀み込みと書き込みに關聯するいくつかの課題があります (|viminfo| ファイルに保存される他の情報も同じです) 。

例へば、window を開いて、いくつかのファイルを編輯して window を閉ぢ、それから次の window を開くと、window を閉ぢたばかりなのでいくつかのコマンドライン履歷を持たないでせう (しかしながら次に開いた window は持つてゐるでせう)。クイックスタートがデフォルトで無效になつてゐるのはかういふ理由からです。

MacVim は ODB エディタプロトコル (もしくは ’external editor’ プロトコル) をサポートする macOS の外部エディタとして動作することができます。

それぞれのアプリケーションにはこのオプションを設定するのに異つた方法を持つてゐます。アプリケーションのドキュメントをチェックしてください。

適切に設定された MacVim はそのアプリケーションの中でファイルを開くのに使ふことができます。

テクニカル Note:
MacVim はファイルを開く、變更された、閉ぢられたといふイベントを扱ひます。開くイベントでは、FTok と Burl パラメーターがパースされます (けれども、現時點では文字は無視されます)。變更されたと閉ぢられたイベントでは、Tokn パラメーターがサーバーアプリケーションに送り戾されます。

3. 初期設定

いくつかの設定は MacVim アプリケーションに對してグローバルなもので、Vim のオプションとしては意味を無しません。これらの設定はユーザーのデフォルトデータベース保存されてゐて、"MacVim.Preferences..." メニュー項目を通してアクセスすることができます。

普通は標準的な環境においては、ユーザーによつて變更されるべきではないので、ユーザーデフォルトデータベースの一部が環境設定から見られます。これらのオプションは今でもターミナルを開いて "defaults" コマンドによつて次のやうに變更することができます。

defaults write org.vim.MacVim KEY VALUE

このコマンドのより多くの情報は、macOS ユーザーデフォルトに關する一般的な情報と同じやうに、"defaults" の man ページを確認してください。

關聯する辭書項目のリストをあげます:

キー
MMCellWidthMultiplierem 單位の標準的なグリフの幅 [float]
MMDialogsTrackPwdopen/save ダイアログが Vim の pwd を追跡する [bool]
MMDisableLaunchAnimation新規 MacVim ウィンドウを開いたときにアニメーション效果を無效にする [bool]
MMFullScreenFadeTime非ネイティブのフルスクリーンがフェードする遲延時閒 [float]
MMLoginShellArgumentログインシェルのパラメーター [string]
MMLoginShellCommandVim を起動するのに使ふシェル [string]
MMNoFontSubstitution自動的にフォントを代用するのを無效にする [bool]
MMNoTitleBarWindowタイトルバーを隱す [bool]
MMTitlebarAppearsTransparentタイトルバーの透明化を有效にする [bool]
MMShareFindPboard檢索語を Find Pasteboard で共有する [bool]
MMShowAddTabButtonタブ行で "add tab" ボタンを有效にする [bool]
MMTabMaxWidthタブの最大幅 [int]
MMTabMinWidthタブの最小幅 [int]
MMTabOptimumWidthタブのデフォルト幅 [int]
MMTextInsetBottomピクセルでのテキストエリアのオフセット [int]
MMTextInsetLeftピクセルでのテキストエリアのオフセット [int]
MMTextInsetRightピクセルでのテキストエリアのオフセット [int]
MMTextInsetTopピクセルでのテキストエリアのオフセット [int]
MMTexturedWindowメタル調ウィンドウを使ふ (Tiger のみ) [bool]
MMTranslateCtrlClickctrl-click を right-click と解釋する [bool]
MMUseMouseTime複數のクリックを解釋するのに mousetime を使ふ [bool]
MMVerticalSplit垂直に分割してファイルを開く [bool]
MMZoomBothzoom ボタンをどの方向にも最大化する [bool]

一例として、複數ボタンのマウスを持つてゐて Ctrl-click から解放されたいと思つてゐて、何か他のものに設定することができるのなら、次のコマンドが適切です:

defaults write org.vim.MacVim MMTranslateCtrlClick 0

もしも起動時の値をデフォルトに戾したいのなら、ターミナルを開いて次のやうに入力します:

defaults delete org.vim.MacVim

Finder から開かれたアプリケーションは自動的にユーザーの環境變數 (典型的なものは .profile.bashrc の設定) を讀み込みません。これはシェルでコマンドを實行するために |:!| を使用する際に、例へば $PATH が適切に設定されてゐないかもしれず、問題が出ます。

この問題に對處するために、MacVim は新しい Vim のプロセスをログインシェルを通して起動します。そのため、すべての環境變數は設定されます。

デフォルトで MacVim は、使ふべきシェルを決定するのに $SHELL 環境變數を使ひます (もし $SHELL が設定されてゐなければ、"/bin/bash" が使はれます)。この選擇は、ユーザーデフォルト設定の MMLoginShellCommand に使ひたいシェル (例へば "/bin/tcsh") を設定することで上書きすることができます。

MacVim はダッシュを付けた argv[0] を前置することによつて、シェルをログインシェルにしようとします。もしも別のシェルを使つてゐて、それをログインシェルとするためにパラメーターを渡す必要があるなら、ユーザーデフォルト設定の MMLoginShellArgument を (例へば "-l" に) 設定することができます。

最後に、もしも "bash" シェルが使はれてゐるなら、"-l" は自動的に引數に加へられます。この擧動を上書きするには、MMLoginShellArgument に "--" を設定します。

4. スペシャルカラー

MacVim でのカラーは bundle アプリケーションの "Resources" フォルダ (MacVim.app/Contents/Resources) にある 2 つの辭書で定義されてゐます。これらのファイルを編輯することでカラーを追加することができます。Vim からアクセスされたときに、カラーの名前は大文字小文字は關係ありません。しかし、この辭書の中では小文字でなければなりません。

Vim からアクセスすることのできるシステムカラーは少ししかありません。これらのカラーは "SystemColors.plist" 辭書で定義されてゐます。この辭書は (key, value) のペアで保存してゐます。key はカラーの名前で、value は NSColor セレクタ名です。

もつとも役に立つシステムカラーは次です:

前者はシステム環境設定の "Appearance" セクション {譯注: システム環境設定 -> 一般 -> アピアランス} で變更することができる "Highlight Color" です。後者はフォーカスが外れたときに Cocoa アプリケーションによつて使はれる選擇カラーです。

システムカラーとは別に、標準的な X11 カラーの名前 (http://en.wikipedia.org/wiki/X11_color_names を參照) を使ふことができます。これはたいてい "rgb.txt" といふファイルにあります。

MacVim にはこのやうなファイルはありません。代はりに "Colors.plist" と呼ばれる辭書內にこれらのカラーを保存してゐます。この辭書の key はカラーの名前で、value は RGB 値 (#rrggbb といふ形の整數) です。

MacVim には Vim のデフォルトカラースキームの代はりに、カスタムカラースキームが同梱されてゐます。このカラースキームは次のやうにして變更することができます:

:colorscheme macvim

ダークカラーがお好みなら、"macvim" カラースキームを讀み込んだあとに次のやうに入力しませう。

:set bg=dark

他のカラースキームを使ひたいのなら、|:colorscheme| コマンドを使ひます。

Note:
シンタックスハイライトの色を手動で設定したい場合、自身のカラースキームを作成するか、~/.vimrc (~/.gvimrc ではうまくいかないでせう) に次の行を加へるか、のどちらかをしなければならないことに注意してください。

let macvim_skip_colorscheme=1

さもなければ、システムの gvimrc ファイルが讀み込まれた時に "macvim" カラースキームが讀み込まれるでせう。そしてあなたが變更したものが臺無しになるのです。

カラースキームはシステムの "Highlight Color" を使ひます。これはシステム環境設定の "Appearance" パネルで變更することができます。window がアクティブでなくなつたときの "Highlight Color" も變更することができます。

5. メニュー

macOS でのメニューは他のプラットフォームとは少しばかり擧動が違ひます。そのため、Vim に 2 つの新しいコマンドが追加されてゐます。これらのコマンドが何をするのかを理解するため、まづは macOS でのメニューがどのやうに動作するのかを理解しなければなりません。

メニューのエントリは "menu item" と呼ばれます。メニュー項目はそれぞれが關聯づけられてゐます: タイトルと等價キー {譯注: ショートカットキーのこと?} とアクションメッセージ。

メニューが表示されたとき、タイトルが左側に表示され、(もしもあるなら) 等價キーが右側に表示されます。等價キーはメニュー項目にマウスを使ふ代はりに、キーボードを使つてアクセスすることを可能にします。

メニュー項目がクリックされると、それに關聯付けられたアクションメッセージが送られます。アクションは MacVim にテキストをペースト (paste:) すること、新規 window を開くこと (newWindow:) などを指示するのに使はれます。 あるアクションは macOS にすつかり標準化されてゐます。MacVim はこれらをそれぞれのメニュー項目について設定しうるやうになつてゐなければならないからです。(例へば、メニュー項目の "Edit.Paste" は "paste:" アクションに束縳されてゐなければなりません。さうでないと、ダイアログでペーストが機能しません。このアクションは何かをペーストすることを指示するからです。)

メニューは |:macmenu| コマンドを使つて設定され、|:macaction| コマンドはアクションメッセージを送るのに使ふことができます。

:maca[ction] {action:}

最初の responder にメッセージ "action:" を送ります。 可能なアクションのリストは次を入力することによつて見ることができます。

:maca <C-d>

ここでリストされてゐないアクションを送らうとすると、エラーになります。このリストは |Actions.plist| と呼ばれるプロパティリストのファイルに記されてゐます。

:macm[enu] {menu} {key}={arg} ...

{menu} の Mac 特有のプロパティを設定します。設定できるプロパティは:

actionこのメニューが送るアクション
alt前のメニューの切り替へなら "yes" {譯注: メニューを表示して option (alt) キーを押すと別のメニューが表示されるあれのこと?}
keyこのメニューの等價キー

このコマンドは起動ファイル中で使はれなければなりません。例へば "~/.gvimrc"。さうでなければ效果がありません。

便宜上、<Nop> に束縳された "action=name:" といふメニューは、":maca name:<CR>" と束縳されたかのやうに動作します。それゆゑ、もし "Menu.Item" が次のやうに與へられてゐるのなら、

:an Menu.Item <Nop>
:macm Menu.Item action=name:

":emenu Menu.Item" は ":maca name:" と等價です。

等價キーは <D-..> 構文で明示されてゐます。これは大文字小文字を區別するので、<D-a>Cmd-a を意味し、<D-A>Cmd-Shift-a を意味します。

Note:
等價キーは Cmd 修飾フラグ (<D-..>) を含んでゐなければならないことに注意してください。そしてこれらは普通のマッピングよりも優先されます。

メニューの等價キーをクリアするには構文 "key=<nop>" を使ひます。これはシステムの gvimrc で設定されてゐるキーコンビネーションを解放するのに使ふことができます。そのため、":map" を使つてマップされるでせう。

"alt" で認識される値は "0", "no", "1", と "yes" です。デフォルトは "no" です。alternate (切り替へ) メニューは、修飾フラグが異なつてゐなければならないことを除いて、前のメニューとして同樣の等價キーを持つてゐなければなりません。alternate メニューはデフォルトで隱されてゐて、修飾キーが押された時にだけ表示されます。

これらのコマンドの使ひ方の例をいくつかあげます:

  1. "File" メニューの下に "New Window" といふタイトル、等價キーは Cmd-n でメニュー項目を作成します。これは選擇されると新規 window を開きます:
    :an 10.290 File.New\ Window <Nop>
    :macm File.New\ Window action=newWindow: key=<D-n>
    
  2. TabCmd-Left/Right により、等價キーを囘歸的に變更します:
    :macm Window.Previous\ Tab  key=<D-Left>
    :macm Window.Next\ Tab      key=<D-Right>
    
  3. ノーマルモードでのマッピングを作成します。これは現在のタブや window を閉ぢます:
    :map <C-w> :maca performClose:<CR>
    
  4. Cmd-t を解放し、分割畫面でファイルビューアを開くやうに再マップします:
    macm File.New\ Tab key=<nop>
    nmap <D-t> :sp .<CR>
    

Note:
この 2 行は .gvimrc に記述されてゐなければならないことに注意してください。さうでなければ、1 行目は失敗するでせう。2 行目は大文字小文字を區別しますので、<D-T> (Cmd-Shift-t) は <D-t> (Cmd-t) と同じではありません!

デフォルトのメニューは "$VIMRUNTIME/menu.vim" で設定されてゐます。メニューがどのやうに設定されてゐるかのより多くの例はこのファイルを見ませう。

Note:
window が無い狀態ではデフォルトのメニューが使はれることに注意してください。デフォルトのメニューは MainMenu.nib で設定されてゐます。これは bundle アプリケーション內の "Resources/English.lproj/" フォルダにあります。

いくつかのアクションメッセージは Vim の範疇から呼ぶに適してゐません。そのため "Actions.plist" と呼ばれる (bundle アプリケーションの Resources フォルダ內に) 辭書 があります。ここには呼ばれるであらうすべてのアクションが含まれてゐます。この辭書の key はアクションメッセージの (大文字小文字を區別する) 名前で、value は使はれてゐません。

Hint:
|:macaction| コマンドはコマンドラン補完をサポートしてゐます。ですので、すべての利用できるアクションのリストを ":maca<Space><C-d>" と入力することで見ることができます。

Actions.plist から役に立ちさうなアクションを未分類であげてみます。

Action說明
fileOpen:"File Open" ダイアログを開く
findNext:"Find Pasteboard" を使つて次を檢索
findPrevious:"Find Pasteboard" を使つて前を檢索
useSelectionForFind:選擇されたテキストを檢索し、"Find Pasteboard" と共有する
fontSizeDown:フォントのサイズを小さくする
fontSizeUp:フォントのサイズを大きくする
hide:MacVim を隱す
miniaturizeAll:すべての window を Dock に收納する
newWindow:(空の) 新規 window を開く
orderFrontCharacterPalette:"Special Characters" ダイアログを開く
orderFrontFontPanel:フォントパネルを開く
orderFrontPreferencePanel:環境設定パネルを開く
performMiniaturize:window を Dock に收納する
performZoom:(綠色のボタンを押したのと同じやうに) window を擴大する
terminate:MacVim を終了する
zoomAll:すべての window を擴大する
_cycleWindows:(<D-`> と同じやうに) 次の window を選擇する
_cycleWindowsBackwards:(<D-S-`> と同じやうに) 前の window を選擇する

6. ツールバー

MacVim のツールバーは、2 つのセパレーター項目 (|menu-separator| を參照) を加へて、他の GUI (|gui-toolbar| 參照) と同じやうに動作します。次のやうに使ふことができます:

:an ToolBar.-space1-        <Nop>
:an ToolBar.-flexspace2-    <Nop>

最初の例はツールバーに空のスペースを作成します。次の例は伸縮する空のスペースを作成します。そのため、右側の項目は右揃へにされます。スペース (flexspace) は、"-space" ("-flexspace") ではじまり "-" で終はる名前の、どのやうなツールバー項目も作成します。

ツールバーのアイコンは、32x32 か 24x24 ピクセルサイズの tiff, png, icns もしくは heic 形式である必要があります。大きい方のサイズは ’tbis’ が "medium" か "large" の時に使はれます。さうでなければ小さい方のサイズが (デフォルトとして) 使はれます。

アイコンファイルが 1 つのサイズしかないとき、macOS は必要があればアイコンを適切なサイズに調整します。これを囘避するために、(icns のやうな) 複數の解像度をサポートするファイル形式を使ひます。そして 32x32 と 24x24 の兩方のアイコンを準備しておきます。

Note:
アイコンを持つてゐるのは、現在は組み込みのツールバー項目のサブセットだけであることに注意してください。もしもアイコンが見つからなければ、變はりに警告三角が表示されます。

7. Touch Bar

MacVim では、タッチバーはツールバーと同じやうに動作します (|macvim-toolbar| を參照)。違ひは "ToolBar" スペシャルメニューのかはりに "TouchBar" スペシャルメニューを使ふことです:

:an TouchBar.Hello          :echo "Hello"<CR>

區切りはツールバーの動作と同じやうに働きます:

:an TouchBar.-Sep-          <Nop>
:an TouchBar.-space1-       <Nop>
:an TouchBar.-flexspace2-   <Nop>

最初の例は Vim の區切り (|menu-separator| を參照) で、2 つのボタンの閒にスペースを入れます。2 つ目は通常の區切りよりも狹いスペースをつくり、"-space" で始まり "-" で終はる名前によつて特定されます。3 つ目は柔軟に伸縮する空スペースをつくり、この後の項目は右寄せされ、-flexspace" で始まり "-" で終はる名前によつて特定されます。

タッチバーボタンのためのアイコンをツールバーアイコンと同じ方法で指定することができます。タッチバーアイコンは理想的には 36x36 から大きくても 44x44 ピクセルサイズであるべきです。また、Apple によつて提供されてゐるデフォルトの雛形アイコンを、これらの名前を指定することによつて使ふこともできます:

:an icon=NSTouchBarListViewTemplate TouchBar.ShowList <Nop>

この機能はタッチバーを搭載する Mac デバイスでのみ動作します。これ以外のデバイスでは何も生じません。

8. ダイアログ

ダイアログをキーボードでコントロールする方法は 2 つあります。デフォルトではダイアログのそれぞれのボタンはキーに束縳されてゐます。靑色でハイライトされてゐるボタンは Enter に、"Cancel" ボタンは Escape に、"Don’t Save" ボタンは <D-d> に束縳されてゐます。

他のボタンはたいていボタンタイトルの最初の文字に束縳されてゐます。ボタンがどの文字に束縳されてゐるかの表示については視覺的なフィードバックはありません。そのため、どのキーを押せば良いのか理解するために試行錯誤が必要かもしれません。

キーボードでダイアログをコントロールする 2 つ目の方法は、システム環境設定の "Keyboard" パネルで "Full keyboard access" を有效にすることです (Ctrl-F7 を押すことでオン・オフをトグルすることもできます)。

いつたんキーボードアクセスが有效にされると、Tab でボタン閒を移動し、Space を押すことで現在のボタンを選擇することができるやうになります。現在のボタンは靑枠で示されてゐます。

9. システムサービス

MacVim は 2 つのシステムサービスをサポートしてゐます。これらは MacVim のサービスメニュー {譯注: Services ▶} のサブメニューから、もしくはマウスの右クリックで表示されるポップアップメニューからアクセスすることができます。

サービスが動作するために MacVim.app は /Applications フォルダ內に置かれてゐる必要があります。(macOS が MacVim のサービスを見つける前に、ログアウトして再度ログインする必要があるかもしれません。)

現在サポートされてゐるサービスは:

Services は一般設定にある "Open files from applications" を尊重します。{譯注: 右クリックで表示されるポップアップメニューにあるやつかな?}

10. mvim:// URL ハンドラー

MacVim は "mvim://" URL のために、カスタム URL ハンドラーをサポートしてゐます。このハンドラーは TextMate と互換性のある URL スキームをサポートしてゐます。これについてのドキュメントは下記。

http://blog.macromates.com/2007/the-textmate-url-scheme/

現在のところ、次のフォーマットが使へます。

mvim://open?<arguments>

"arguments" が取りうるのは:

url開きたい實際のファイル (すなはち file://... URL)。この引數を省略したなら、最前面の書類が指定されます。
line移動したい行番號 (1 から始まる)
column移動したい列番號 (1 から始まる)

例へば、次のリンクは

mvim://open?url=file:///etc/profile&line=20

ウェブブラウザーでクリックされたときに、/etc/profile ファイルの 20 行目を開きます。

Note:
URL は存在してゐるローカルファイルを差す file:// URL になつてゐる必要があることに注意してください。

11. キーボードショートカット

MacVim ではほとんどのキーボードショートカットがメニュー項目と束縳されてゐて、メニューに目を通すことで見つけることができます (自身のメニューショートカットを作成するには |macvim-menus| を、自身のコマンドを Cmd キーショートカットにマップするには |cmd-key| を參照)。殘りのショートカットは次にあげます:

Cmd-.

Vim を中斷します。通常のキーボード入力 (したがつて、受け取られなければならず、それから解釋されます) として送られる Ctrl-C とは違ひ、これは Vim プロセスに SIGINT シグナルを送ります。

もしも Vim のプロセスがロックアップしてゐるやうに見えて、キー入力を受付けないのであれば、このショートカットを使ひます。この Cmd キーの組み合はせはアンマップすることができません。

Cmd-‘

window を囘歸的に切り替へます。アメリカのキーボード上では、` キーは Esc キーの下に位置してゐます。ヨーロッパのキーボード上では、このキーは左の Shift キーの近くにあり、"‘`’" と記されてゐないかもしれません。この Cmd キーの組み合はせはシステム環境設定の "Keyboard" からでしかアンマップすることができません。

Cmd-Left

カーソルを行の先頭に移動します (|cmd-movement| を參照)。

Cmd-Right

カーソルを行の末尾に移動します (|cmd-movement| を參照)。

Cmd-Up

カーソルを最初の行 {譯注: バッファの先頭} に移動します (|cmd-movement| を參照)。

Cmd-Down

カーソルを最後の行 {譯注: バッファの末尾} に移動します (|cmd-movement| を參照)。

Alt-Left

カーソルを前の單語の先頭に移動します (|alt-movement| を參照)。

Alt-Right

カーソルを次の單語の先頭に移動します (|alt-movement| を參照)。

Alt-Up

カーソルを上の段落に移動します (|alt-movement| を參照)。

Alt-Down

カーソルを次の段落に移動します (|alt-movement| を參照)。

上記の Cmd/Alt + 矢印キーを含むマッピングは、デフォルトでシステムの gvimrc ファイル "$VIM/gvimrc" で有效にされてゐます。これらの全ては "~/.vimrc" (.gvimrc ではない) に次の行を追加することで、素速く無效にすることができます:

if has("gui_macvim")
  let macvim_skip_cmd_opt_movement = 1
endif

Note:
MacVim が作成するキーマッピングだけであることに注意してください (:map では設定されないメニューの等價キーは含みません)。

上記の Cmd/Alt 移動のショートカットと共に Shift でテキストを 選擇したいなら、|macvim-shift-movement| を參照してください。

Cmd キー (Vim の記法では <D-..>) を含むキーマッピングの作成は、ときどき少しばかり難解になりえます。ここでは考察するのに必要なすべてのことをあげます:

12. トラックパッドジェスチャー

MacVim はトラックパッドのスワイプジェスチャーをサポートしてゐます。デフォルトではヘルプの中で back/forward ナビゲーションで使ふことができます (やつてみよう!)。

それそれのジェスチャーは次にあげる Vim の疑似キーを生成します:

トラックパッドを水平方向に 3 つ指でのスワイプしたときに生成されます。Apple のマジックマウスは、水平方向に 2 つ指でスワイプしたときにこれらのイベントを生成します。

トラックパッドを垂直方向に 3 つ指でのスワイプしたときに生成されます。(Apple のマジックマウスではサポートされてゐません。)

トラックパッドを强く押すことにより「强めのクリック」を生じます。(感壓タッチトラックパッドのみをサポートしてゐます。)

|:map| コマンド類を使つて他のキーにこれらのキーを好きなやうにマップすることができます。例へば、下記のコマンドはノーマルモードで left/right スワイプをタブの previous/next にマップします:

nmap <SwipeLeft> gT
nmap <SwipeRight> gt

もうひとつの例。これは left/right にスワイプすることで、バッファを切り替へる方法です:

nmap <SwipeLeft> :bN<CR>
nmap <SwipeRight> :bn<CR>

キーマッピングの方法のより詳しいヘルプは |key-mapping| の節を參照してください。

13. 國際化

英語ではないテキストを編輯してゐるときに、ノーマルモードと插入モードでキーボードレイアウトが分かれたままになつてゐれば便利でせう。これは macOS 10.5 以降で ’imd’ オプションによつてサポートされてゐます (10.4 では ’imd’ オプションのサポートは、Roman 入力ソースと 非 Roman 入力ソースの切り替へのみで、役に立ちません。またぜんぜん賴りにならないことがわかつてゐます)。

例へば: ’noimd’ が有效 (すなはち IM が有效) のときは、ノーマルモードと插入モードを切り替へた最に入力ソースは保存されてゐます。

そのため、ノーマルモードで US レイアウトを使ふことができ、それから、插入モードに移行して Swedish レイアウトを選擇することができます。

ノーマルモードに再び戾ると、US レイアウトが選擇されてゐることでせう。そして、插入モードに移行すれば、Swedish レイアウトが選擇されてゐます。

これはテキスト檢索などのときにも動作します。|'imc'|, |'imi'|, |'ims'| を參照してください。

Note:
ノーマルモードで使はれるレイアウトは、’noimd’ が設定されたとき (すなはち IM が有效にされたとき) に使はれたレイアウトであることに注意してください。ノーマルモードに戾つたときに、MacVim が閒違つたレイアウトに切り替はるやうなら、ノーマルモードで使ひたいレイアウトを選擇し、":set noimd" に續けて ":set imd" を入力してください。

14. バグと未實裝の機能

このリストは決して徹底的ではありません。いくつかのとても突出したバグや未實裝の機能を列擧しただけです。

その他のバグや問題は Github で扱はれてゐます。もしも新たなバグを見つけたなら、次の issue に登錄してください:

https://github.com/macvim-dev/macvim/issues

また、vim_mac メーリングリストもあります。同樣にバグや問題を投稿することができます:

http://groups.google.com/group/vim_mac

ここはまた機能の要求をしたり MacVim に關する一般的な質問をするには良い場所です。

15. ヒント

この節ではいくつかの一般的な (必ずしも MacVim に特有のものではない) ヒントを示します。

Scenario:
タブで複數のファイルを開かうとしたのに、タブですべてのファイルが開かれません。

Solution:
これを恢復するには、.gvimrc ファイルで ’tabpagemax’ に大きな値を設定しませう (例 ":set tabpagemax=100").

Scenario:
すでに開かれた window 內のタブでファイルを開きたいのに、ターミナルで "mvim filename" と入力すると 別の window で開かれます。

Solution:
|--remote-tab| スイッチを使ひます。もしもいくつかの window が開かれてゐるなら、|--servername| スイッチを使ふことによつて、ファイルを開きたい window を指定しなければならないでせう。

たいてい window のタイトルは "VIM" や "VIM3" のやうなもので終つてゐます。--- これはその window のサーバー名です。 ですから、タイトルが "VIM3" で終はつてゐる window で "foobar.txt" といふ名前のファイルを開くには、次のやうに入力します (引數の順番は重要です):

mvim --servername VIM3 --remote-tab foobar.txt

より多くの情報は、|client-server| マニュアルページを調べませう。

Scenario:
テキストを shift キーを押しながら矢印キーで選擇できるのが好みで、選擇したテキストを Vim で檢索すると變です。

Solution:
|macvim-shift-movement| を參照してください。

Scenario:
MacVim にどんなキーマッピングも設定したくありません。

Solution:
|cmd-movement| を參照してください。

Scenario:
ローカライズメニューを有效にすると、ツールバーもメニューも變になります。

Solution:
これは知られてゐる問題です。|macvim-todo| を參照してください。

Scenario:
(綠色の) ズームボタンを押したとき、window を水平と垂直方向に最大化したい。

Solution:
Cmd を押しながらズームボタンをクリックします。もしもこれがデフォルトの擧動であることが好みであれば、ユーザーデフォルトの MMZoomBoth を設定してください (|macvim-prefs| を參照)。

Scenario:
カーソルが右のブラケット (すなはち ’)’, ’}’, や ’]’) の前にあると、タイピングが緩慢な感じになります。

Solution:
:NoMatchParen を入力することで "matchparen" プラグイン (|matchparen| を參照) を無效にします。

もしもこれが助けになれば、次の行を "~/.vimrc" に追加することで、恆久的に "matchparen" を無效にすることができます:

let loaded_matchparen=1

Scenario:
MacVim を他のアプリケーションの外部エディタとして使ひたい。

Solution:
外部アプリケーションが實行するプログラムを設定することを許可してゐるのであれば、"mvim -f" のやうなものが必要とすることのすべてです ("-f" スイッチは、"mvim" スクリプトがエディタの window を閉ぢたあとでのみ返すことを確實にします。さうでなければ "mvim" は直ちに返します)。

もしも外部プログラムが EDITOR 環境變數を尊重するのであれば (例へば Git はかうなつてゐる)、"~/.profile" に次の行を追加することで囘避できるでせう:

export EDITOR='mvim -f'

パス中に "mvim" スクリプトがインストールされてゐないのであれば、Vim バイナリへのパスを代はりに指定することができます。したがつて、"MacVim.app" が Applications フォルダに存在してゐるなら、次の行を使ひませう:

export EDITOR='/Applications/MacVim.app/Contents/MacOS/Vim -g -f'

Scenario:
MacVim を外部プログラムから開くやうに設定してゐて、(MacVim window を閉ぢて) 編輯を終了したときに、外部プログラムにフォーカスを戾したい。

Solution:
window を閉ぢたときに MacVim を隱すために VimLeave 自動コマンドを使ひます:

au VimLeave * maca hide:

外部プログラムがエディタを起動するためにコマンドを實行するやうに設定されてゐると假定するならば、次のやうなオプションを設定するとよいでせう:

mvim -f -c "au VimLeave * maca hide:"

(上記の "-f" スイッチの說明の Scenario を參照してください。)

Scenario:
Caps LockEsc にリマップしたい。

Solution:
"PCKeyboardHack" アプリケーションは Caps Lock をリマップすることに使へます。以下から自由にダウンロードすることができます:

http://pqrs.org/macosx/keyremap4macbook/extra.html

いくつかの Apple キーボードでは Caps Lock キーは卽時に登錄できません。そしてこれは Caps Lock のキー入力を "取りこぼす" やうになります。この問題を囘避するために、システム環境變數 "Keyboard" に移動して、まづは Caps LockCtrl にリマップします ("Modifier Keys..." ボタンを押します)。

もしも Esc にリマップしてゐるにもかかはらず、Caps Lock のライトがオン・オフするのであれば、このトリックが必要になるかもしれません。

Scenario:
Cmd キーを含むカスタムキーマッピングを作成するのに問題があります。

Solution:
Cmd を含むキーを束縳するために、"<D-..>" 構文を使ひます。

多くの Cmd キーマッピングはメニューによつてすでに使はれてゐます。そのため、もしあなたのマッピングが動作しないのであれば、解決策は通常、はじめにメニューの束縳をアンマップすることです (|macvim-menus| を參照。特に節の終はりを讀みませう)。

また、メニューによつて使はれてゐるのではなく、カスタムバインディングで使はれる前になおも解放される必要のある Cmd キーの組み合はせのためには、|macvim-shortcuts| の節を確認してください。

Scenario:
マニュアルページの中に思ふやうに MacVim の情報を見つけられません。

Solution:
|vim_mac| メーリングリストに質問を投稿してください。そして囘答を待ちませう。


Up: 目次   [Index]