キーマッピングnnoremap <SCk>:w <CR>が機能しないのはなぜですか?


8

1回のキーストロークでバッファをディスクに書き込むことができるようにしようとしています。

(サイドノート:理想的には、これをすべてのモードで動作させたいのですが、とりあえず、最初は通常モードで動作させようとしているだけです。

Vim wikiにはこう書かれています...

以下のような象徴的な表記法を使用して制御文字を表すVimのサポート<F1><C-W><C-S-F1>、など

そしてまた...

Ctrlキー修飾子を持つキーは、<C-key>表記法を使用して表されます。たとえば、Ctrl-Rを使用して表され<C-R>ます。Shiftキー修飾子を持つキーは、<S-key>表記法を使用して表されます。たとえば、Shift-F2を使用して表され<S-F2>ます。Altキー修飾子を持つキーは、<A-key>または<M-key>表記を使用して表されます。1つ以上のキー修飾子を組み合わせることができます。たとえば、を表すCtrl+Shift+F3にはを使用できます<C-S-F3>

これを私の中に入れればうまくいくと言っているよう.vimrcです...

 nnoremap <S-C-k> :w<CR>

しかし、効果はありません。リロード.vimrcしてshift+ control+ を押すと、下部にメッセージが表示されKません[File] written

私もこれを試しましたが、option+ Kも効果がありませんでした...

 nnoremap <M-k> :w<CR>

エラーメッセージはありません。

OS Xを使用しています。


更新

わかりました、これを試してみました...

inoremap <M-s> Hey whats up

次に、挿入モードにしてoption+ を押すとS、Vimが出力します...

ß

OS XはVimがキーストロークを受け取る前にキーストロークをインターセプトしますか?これが機能しないのはなぜですか?

もしそうなら、別のコンピュータを購入する以外にそれをやめる方法はありますか?


5
Control +キーとは別にControl + Shift +キーのマッピングは機能しないことに注意してください。参照:Ctrl +大文字をCtrl +小文字とは別にマッピングできますか?(F1などのキーは特殊なケースです)。そうは言っても、マッピングは問題なく見えます。どのVimが使用していますか?MacVim?
Martin Tournoij 2016年

教えてくれてありがとう。の<M>代わりに使用してみます<S-C>。MacVimを使用していません。MacPorts経由でインストールされた通常のVim 7.4.1129を使用しています。
イーサン


4
OS XはOption-Sをßとして解釈します。Vimでマッピングするには、を実行する必要があります:inoremap ß Hey whats up
アマダン

1
<S-C-k>3つのキーストロークです。言ってるだけ'。
アントニー

回答:


1

キーボードの反応が予想と異なる場合があります。たとえば、それはあなたの言語のいくつかの特殊文字を提供することができます。

任意の組み合わせを押してシステムの動作を確認するには:

ctrl+v挿入モードで、次にoption+kまたはalt+k

代わりにvimrcマッピングで出力シンボルを使用します <M-k>

警告:この方法は大まかなものです-記号はシステム、端末などによって異なります。したがって、次のような.vimrc条件を設定する必要があります。

if has("gui_running")
    if has("x11")
        <map_command_here>
    if has("gui_gtk2")
        <map_command_here>

またはここのようなシステム(OS X)を検出する


0

に変更し<C-S-k>ます。それは私にとってはうまくいきます。あなたは次のように、また、他のいくつかのキーを与えることができます<F10>について:wq!

:map <F10> :wq!<CR>

SCkは、nnoremapモードでも動作します。
SibiCoder 2016年

どのOSと端末?
トム・ヘイル

Linuxおよびvim 7.2
SibiCoder
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.