1

Emacs では、 で始まるキー シーケンスC-cは、慣例により、個々のユーザーが設定できるように予約されています。少なくとももう 1 つのコンベンションもあると思います。

Vim のカスタム キー バインドの規則は、もしあれば、どのようなものですか?

4

3 に答える 3

3

<leader>独自の個々のキーマップをデフォルトのものから分離するための規則として、キーを前に付けたコマンドを使用できます。

<leader>.vimrc ファイルで次のようにキーを設定します。

let mapleader = "_"

次に、リーダーに次のように設定したものをプレフィックスとして付けたキー マッピングを作成できます。

nnoremap <leader><space> :noh<cr> 

詳細については、こちらをご覧ください

于 2012-08-02T23:12:21.403 に答える
1

デフォルトでは何もしないバックスラッシュがあり、マッピング リーダー (mapleader と maplocalleader の両方) のデフォルト値のみです。このリーダーはプラグインで使用されます。デフォルトのアクションが添付されたキーを使用してプラグインのみに残すことを強くお勧めしますが、これはあまり役に立ちません。一般的なキーは,(反対方向に t/T/f/F モーションを繰り返す) と_(空白でない最初の文字で 1 行下に移動する) であり、使用しないキーを確認することもできます (たとえば、I 、+およびを使用しないでください。-後者は ) の適切な代替手段です_。@stonesam92 とは異なり、mapleader をそれらに設定せず、代わりに独自のリーダーをマッピングに直接配置することを提案する理由は次のとおりです。

  1. これにより、プラグインが独自のものと競合するマッピングを追加する可能性があります。
  2. ではなく,a、などと入力することに慣れます。_a<Leader>a
  3. これにより、vimrc 内の場所に応じてマッピング コマンドの動作が異なります (<Leader>一度だけ計算されます。後で mapleader を変更しても、既に定義されているマッピングは変更されません)。
  4. それは読みを曖昧にします: 何が何で<Leader>あるかを常に覚えておく必要があります。

プラグインを作成している場合は、常に使用<Leader>し、それらをカスタマイズするためのより良い方法をユーザーに任せます.2つの一般的な解決策は、グローバルオプションを使用し、次を使用することhasmaptoです:

" Global option
if !exists('g:plugin_mapping_key')
    let g:plugin_mapping_key='<Leader>a'
endif
execute 'nnoremap '.g:plugin_mapping_key.' :DoSomething<CR>'

" hasmapto
nnoremap <Plug>PluginDoSomething :DoSomething<CR>
if !hasmapto('<Plug>PluginDoSomething', 'n', 0)
    nmap <Leader>a <Plug>PluginDoSomething
endif
于 2012-08-03T13:11:44.377 に答える
1

Emacs では、それが一般的な選択肢であったほど慣習的であったとは言えません。

Vim ではそれすらありません。Ctrl+何かまたは F キーが一般的ですが、広く普及している「慣習」とはほど遠いものです。

多くの Vim ユーザーは、通常モードでデフォルトの「文字操作」を使用するだけで、テキスト編集で実行します。これは、大部分の Emacs ユーザーが機能に依存しなければならないものです。

于 2012-08-02T23:48:51.483 に答える