*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 はありません}
MacVim のゴールのひとつは、Vim を macOS 本來のアプリケーションの動作をするやうにすることです。この理由は、MacVim は Vim の他の GUI 版とは少しばかり擧動が異つてゐるからです。修正の多くは、システムの gvimrc ファイルで提供されてゐます。次のやうに入力することで、このファイルを素速く開いて確認することができます:
:tabe $VIM/gvimrc
Note:
このファイルは MacVim をアップデートする度に上書きされることに注意してください。そのため、自分の變更は "~/.gvimrc" に書いておくのが良いです。
MacVim の "window" といふ用語に關していくつかの混亂があります。それは、ひとつは Vim についての事と、もうひとつは MacVim についての事です。Vim での "window" は ":sp" を入力したときに開いたものです。ところが MacVim での "window" は、テキストビュー、スクロールバー、ツールバーそしてタブラインを含んでゐる GUI ウィンドウのことなのです。混亂を囘避するために、前者を Vim-window と呼び、後者は單に window と呼ぶことにします。
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 のやうな單純なシングルバイトのエンコーディングに設定する必要があります。さうすると、ファイルがメモリに讀み込まれた時に、オリジナルのバイトには手を加へられません。
macOS のテキストエディタでは、シフトキーを押しながら矢印キーを押すことで選擇範圍を伸縮します。また、選擇をした狀態で printable なキー {譯注: ⌘
や fn
ぢやない 1
や a
のキーのこと?} を押すと、現在選擇されてゐるものが、その押された文字で置き換へられます。
MacVim ではこのやうな擧動をエミュレートすることができます (そのやうにキーバインドを設定し、’keymodel’ と ’selectmode’ を初期値以外に設定することによつて)。とはいへ、デフォルトでは有效にされてゐません。MacVim をもつと TextEdit に似せたり、Vim とは違つたものにしたいのなら、次の設定を "~/.vimrc" (.gvimrc ではないよ!) に追加しませう:
{譯注: そんなやつおるんか?Vim 使ふ意味ないんちやふ?}
if has("gui_macvim") let macvim_hig_shift_movement = 1 endif
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 のデフォルトのメニューは Apple のヒューマンインターフェイスガイドライン (HIG) により適合するやうに變更されてゐます。現時點でこれは、ローカライズされたメニューを壞します。ですから、英語のメニューだけがサポートされてゐます。
Note:
メニューは作業中です。HIG について何か知つてゐて、MacVim に貢獻したいと思ひましたら、メニューをより良くして貢獻してください。
デフォルトの window タイトルは引數のリストを含んでゐません。これはいつたんタブ機能を使ひはじめると、本當に見た目が良くないからです。例へば、2 つのファイルをドロップし、それから 2 つ以上のファイルをドロップし...としてから、最初のタブに戾るとします。すると window タイトル中に "((3) of 2)" のやうな奇妙な文字列が現れてしまひます。
デフォルトでは、タブのラベルは深くネストされたフォルダのファイルを編輯してゐる際に、タブをより讀み易くするため、ファイル名の末尾を表示します。Vim のタブラベルのデフォルトに戾すには、.gvimrc ファイルに "set guitablabel=" を加へてください。.vimrc で ’guitablabel’ に何かを設定すると、このデフォルトの效果を妨げることになるでせう。
MacVim がサポートしてゐる非標準なオプションがあります:
’antialias’, ’blurradius’, ’fullscreen’, ’fuoptions’, ’macligatures’, ’macmeta’, ’macthinstrokes’, ’toolbariconsize’, ’transparency’
MacVim がサポートしてゐる非標準なコマンドがあります:
|:macaction|, |:macmenu|
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 でも檢索が繰り返されるでせう。
delete
キー’backspace’ オプションは、新規ユーザーがとても慣れ親しんだ delete
キーの動作となるやうに、システムの vimrc で 設定されてゐます。この非デフォルトの擧動が好きでないのなら、"~/.vimrc" ファイルに "set backspace&" を加へてください。
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 パラメーターがサーバーアプリケーションに送り戾されます。
いくつかの設定は MacVim アプリケーションに對してグローバルなもので、Vim のオプションとしては意味を無しません。これらの設定はユーザーのデフォルトデータベース保存されてゐて、"MacVim.Preferences..." メニュー項目を通してアクセスすることができます。
普通は標準的な環境においては、ユーザーによつて變更されるべきではないので、ユーザーデフォルトデータベースの一部が環境設定から見られます。これらのオプションは今でもターミナルを開いて "defaults" コマンドによつて次のやうに變更することができます。
defaults write org.vim.MacVim KEY VALUE
このコマンドのより多くの情報は、macOS ユーザーデフォルトに關する一般的な情報と同じやうに、"defaults" の man ページを確認してください。
關聯する辭書項目のリストをあげます:
キー | 値 |
---|---|
MMCellWidthMultiplier | em 單位の標準的なグリフの幅 [float] |
MMDialogsTrackPwd | open/save ダイアログが Vim の pwd を追跡する [bool] |
MMDisableLaunchAnimation | 新規 MacVim ウィンドウを開いたときにアニメーション效果を無效にする [bool] |
MMFullScreenFadeTime | 非ネイティブのフルスクリーンがフェードする遲延時閒 [float] |
MMLoginShellArgument | ログインシェルのパラメーター [string] |
MMLoginShellCommand | Vim を起動するのに使ふシェル [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] |
MMTranslateCtrlClick | ctrl-click を right-click と解釋する [bool] |
MMUseMouseTime | 複數のクリックを解釋するのに mousetime を使ふ [bool] |
MMVerticalSplit | 垂直に分割してファイルを開く [bool] |
MMZoomBoth | zoom ボタンをどの方向にも最大化する [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 に "--" を設定します。
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" も變更することができます。
macOS でのメニューは他のプラットフォームとは少しばかり擧動が違ひます。そのため、Vim に 2 つの新しいコマンドが追加されてゐます。これらのコマンドが何をするのかを理解するため、まづは macOS でのメニューがどのやうに動作するのかを理解しなければなりません。
メニューのエントリは "menu item" と呼ばれます。メニュー項目はそれぞれが關聯づけられてゐます: タイトルと等價キー {譯注: ショートカットキーのこと?} とアクションメッセージ。
メニューが表示されたとき、タイトルが左側に表示され、(もしもあるなら) 等價キーが右側に表示されます。等價キーはメニュー項目にマウスを使ふ代はりに、キーボードを使つてアクセスすることを可能にします。
メニュー項目がクリックされると、それに關聯付けられたアクションメッセージが送られます。アクションは MacVim にテキストをペースト (paste:) すること、新規 window を開くこと (newWindow:) などを指示するのに使はれます。 あるアクションは macOS にすつかり標準化されてゐます。MacVim はこれらをそれぞれのメニュー項目について設定しうるやうになつてゐなければならないからです。(例へば、メニュー項目の "Edit.Paste" は "paste:" アクションに束縳されてゐなければなりません。さうでないと、ダイアログでペーストが機能しません。このアクションは何かをペーストすることを指示するからです。)
メニューは |:macmenu| コマンドを使つて設定され、|:macaction| コマンドはアクションメッセージを送るのに使ふことができます。
最初の responder にメッセージ "action:" を送ります。 可能なアクションのリストは次を入力することによつて見ることができます。
:maca <C-d>
ここでリストされてゐないアクションを送らうとすると、エラーになります。このリストは |Actions.plist| と呼ばれるプロパティリストのファイルに記されてゐます。
{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 メニューはデフォルトで隱されてゐて、修飾キーが押された時にだけ表示されます。
これらのコマンドの使ひ方の例をいくつかあげます:
Cmd
-n
でメニュー項目を作成します。これは選擇されると新規 window を開きます:
:an 10.290 File.New\ Window <Nop> :macm File.New\ Window action=newWindow: key=<D-n>
Tab
を Cmd
-Left
/Right
により、等價キーを囘歸的に變更します:
:macm Window.Previous\ Tab key=<D-Left> :macm Window.Next\ Tab key=<D-Right>
:map <C-w> :maca performClose:<CR>
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 を選擇する |
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:
アイコンを持つてゐるのは、現在は組み込みのツールバー項目のサブセットだけであることに注意してください。もしもアイコンが見つからなければ、變はりに警告三角が表示されます。
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 デバイスでのみ動作します。これ以外のデバイスでは何も生じません。
ダイアログをキーボードでコントロールする方法は 2 つあります。デフォルトではダイアログのそれぞれのボタンはキーに束縳されてゐます。靑色でハイライトされてゐるボタンは Enter
に、"Cancel" ボタンは Escape
に、"Don’t Save" ボタンは <D-d> に束縳されてゐます。
他のボタンはたいていボタンタイトルの最初の文字に束縳されてゐます。ボタンがどの文字に束縳されてゐるかの表示については視覺的なフィードバックはありません。そのため、どのキーを押せば良いのか理解するために試行錯誤が必要かもしれません。
キーボードでダイアログをコントロールする 2 つ目の方法は、システム環境設定の "Keyboard" パネルで "Full keyboard access" を有效にすることです (Ctrl
-F7
を押すことでオン・オフをトグルすることもできます)。
いつたんキーボードアクセスが有效にされると、Tab でボタン閒を移動し、Space を押すことで現在のボタンを選擇することができるやうになります。現在のボタンは靑枠で示されてゐます。
MacVim は 2 つのシステムサービスをサポートしてゐます。これらは MacVim のサービスメニュー {譯注: Services ▶} のサブメニューから、もしくはマウスの右クリックで表示されるポップアップメニューからアクセスすることができます。
サービスが動作するために MacVim.app は /Applications フォルダ內に置かれてゐる必要があります。(macOS が MacVim のサービスを見つける前に、ログアウトして再度ログインする必要があるかもしれません。)
現在サポートされてゐるサービスは:
Services は一般設定にある "Open files from applications" を尊重します。{譯注: 右クリックで表示されるポップアップメニューにあるやつかな?}
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 になつてゐる必要があることに注意してください。
MacVim ではほとんどのキーボードショートカットがメニュー項目と束縳されてゐて、メニューに目を通すことで見つけることができます (自身のメニューショートカットを作成するには |macvim-menus| を、自身のコマンドを Cmd
キーショートカットにマップするには |cmd-key| を參照)。殘りのショートカットは次にあげます:
Vim を中斷します。通常のキーボード入力 (したがつて、受け取られなければならず、それから解釋されます) として送られる Ctrl-C とは違ひ、これは Vim プロセスに SIGINT シグナルを送ります。
もしも Vim のプロセスがロックアップしてゐるやうに見えて、キー入力を受付けないのであれば、このショートカットを使ひます。この Cmd
キーの組み合はせはアンマップすることができません。
window を囘歸的に切り替へます。アメリカのキーボード上では、`
キーは Esc
キーの下に位置してゐます。ヨーロッパのキーボード上では、このキーは左の Shift
キーの近くにあり、"‘`’" と記されてゐないかもしれません。この Cmd
キーの組み合はせはシステム環境設定の "Keyboard" からでしかアンマップすることができません。
カーソルを行の先頭に移動します (|cmd-movement| を參照)。
カーソルを行の末尾に移動します (|cmd-movement| を參照)。
カーソルを最初の行 {譯注: バッファの先頭} に移動します (|cmd-movement| を參照)。
カーソルを最後の行 {譯注: バッファの末尾} に移動します (|cmd-movement| を參照)。
カーソルを前の單語の先頭に移動します (|alt-movement| を參照)。
カーソルを次の單語の先頭に移動します (|alt-movement| を參照)。
カーソルを上の段落に移動します (|alt-movement| を參照)。
カーソルを次の段落に移動します (|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-..>) を含むキーマッピングの作成は、ときどき少しばかり難解になりえます。ここでは考察するのに必要なすべてのことをあげます:
Cmd
+Shift
+d
にマップしたいのなら、<D-S-d> や <D-S-D> ではなく、<D-D> を使ふ必要があります。
Cmd
+Space
)。
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| の節を參照してください。
英語ではないテキストを編輯してゐるときに、ノーマルモードと插入モードでキーボードレイアウトが分かれたままになつてゐれば便利でせう。これは 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
" を入力してください。
このリストは決して徹底的ではありません。いくつかのとても突出したバグや未實裝の機能を列擧しただけです。
その他のバグや問題は Github で扱はれてゐます。もしも新たなバグを見つけたなら、次の issue に登錄してください:
https://github.com/macvim-dev/macvim/issues
また、vim_mac メーリングリストもあります。同樣にバグや問題を投稿することができます:
http://groups.google.com/group/vim_mac
ここはまた機能の要求をしたり MacVim に關する一般的な質問をするには良い場所です。
この節ではいくつかの一般的な (必ずしも 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 Lock
を Esc
にリマップしたい。
Solution:
"PCKeyboardHack" アプリケーションは Caps Lock をリマップすることに使へます。以下から自由にダウンロードすることができます:
http://pqrs.org/macosx/keyremap4macbook/extra.html
いくつかの Apple キーボードでは Caps Lock
キーは卽時に登錄できません。そしてこれは Caps Lock
のキー入力を "取りこぼす" やうになります。この問題を囘避するために、システム環境變數 "Keyboard" に移動して、まづは Caps Lock
を Ctrl
にリマップします ("Modifier Keys..." ボタンを押します)。
もしも Esc
にリマップしてゐるにもかかはらず、Caps Lock
のライトがオン・オフするのであれば、このトリックが必要になるかもしれません。
Scenario:
Cmd
キーを含むカスタムキーマッピングを作成するのに問題があります。
Solution:
Cmd
を含むキーを束縳するために、"<D-..>" 構文を使ひます。
多くの Cmd
キーマッピングはメニューによつてすでに使はれてゐます。そのため、もしあなたのマッピングが動作しないのであれば、解決策は通常、はじめにメニューの束縳をアンマップすることです (|macvim-menus| を參照。特に節の終はりを讀みませう)。
また、メニューによつて使はれてゐるのではなく、カスタムバインディングで使はれる前になおも解放される必要のある Cmd
キーの組み合はせのためには、|macvim-shortcuts| の節を確認してください。
Scenario:
マニュアルページの中に思ふやうに MacVim の情報を見つけられません。
Solution:
|vim_mac| メーリングリストに質問を投稿してください。そして囘答を待ちませう。