タグ付けされた質問 「key-bindings」

キーを押したときにアクションを実行する。これらは、キーマッピングまたはマッピングとも呼ばれます。デフォルトのキー割り当て、およびキー割り当ての作成または再定義についての質問。

2
プラグインキーマッピングを再定義するにはどうすればよいですか?
定義したキーマッピングを無効にするメカニズムを提供しないプラグインをインストールしました。<leader>ccプラグインによって定義されたマッピング()の1つを自分の目的のために再定義したいので、次の行を次の行に入れようとしました.vimrc。 noremap <leader>cc echo "my purpose" しかし、これは機能せず、<leader>ccまだpluginコマンドを実行しています。 プラグインによって定義されたマッピングをオーバーライドするようにマッピングを定義するにはどうすればよいですか?

1
「マップされたキーシーケンス」と「キーコード」の違いは何ですか?(timeoutlen v ttimeoutlen)
vimのマニュアルでは、我々が使用できると言うtimeoutlenのタイムアウトの長さを指定するためにマッピングされたキーシーケンスをして使用することができるttimeoutlenのタイムアウトの長さを指定するキーコードを: 便利な設定は :set timeout timeoutlen=3000 ttimeoutlen=100 (3秒後のマッピングでのタイムアウト、1/10秒後のキーコードでのタイムアウト)。 キーコードとは何ですか?マッピングされたキーシーケンスとはどう違うのですか? マッピングされたキーシーケンスの例はjk、以下のマッピングのものです。 inoremap jk <esc> この例では、挿入モードでを入力するとj、vimはtimeoutlen押すのをミリ秒待ってからk、意図を決定します。 しかし、キーコードとは何であり、どのようにttimeoutlen影響しますか?ありがとうございます。


1
どのプラグインがキーバインディングの原因であるかを把握する
私は質問に答えようとしていましたが、私の答えは、インストールしたプラグインによって提供されるキーバインディングに依存していることに気付きました。さらに悪いことに、どのプラグインがそれを提供するのかわかりません。 この問題を解決する唯一の方法は、インストール済みのプラグインの半分を無効にし、残りの半分を有効にして「バイナリ検索」することです。Vundleを使用してプラグインを管理しているため、各反復ではプラグインリストの一部をコメントアウトするだけで済みますが、それでも面倒な手順です。 特定のキーバインディングを担当するプラグインを判断するより良い方法はありますか?代わりに、特定のキーバインディングがvimrcファイルによって直接提供されるかどうかを判断する方法はありますか? Vimにはプラグインの概念が組み込まれていないことに気付いたので、「vimscriptを含むどのファイルが特定のキーバインディングの原因であるかを判断するにはどうすればよいですか?」


1
map、noremap、abbrev、noreabbrevコマンドの違いは何ですか?
これらのコマンドは、何らかの方法でキーストロークのセットを別のキーストロークに変換しますが、特定の状況に最も適しているキーストロークはいくらか曖昧です。さらに、!それらのバリアントもあります。現時点では、それらの使用法はかなり偶然であるため、それぞれに関連する落とし穴を知ることができますか?特に、コマンドを使用しているときだけでなく、行のどこにでも展開できるコメントでPeter Rinckerから学んだので、さまざまなモードバージョンに関する特定のメモが役立ちます。潜在的な落とし穴に対してどのような予防策を講じることができますか?cmap:

3
「?」で検索を開始した場合でも、「n」を先に進めるにはどうすればよいですか?または「#」?
Vimには、(少なくとも)反対方向に検索するコマンドのセットが2つあります。入力して/からパターンを入力すると、ドキュメント内でパターンが前方に検索されます。入力?してからパターンを逆方向に検索します。コマンド*と#コマンドの間に同じ関係が存在します。 私が嫌いなのは、これらのコマンドがnand Nコマンドの検索方向も設定することです。使用した後/、n文書を前方になり、N後方に行きます。を使用した後?、n後方にN進み、前方に進みます。(つまり、n常に元の検索と同じ方向に進み、常にN別の方向に進みます。) 検索を開始した方向に関係なく、どのようにnしてドキュメントを前に進み、後に進むことができNますか?

1
CTRL-Uの組み合わせについて
で、この答えは私が直面したCTRL-U後、関数呼び出しで使用される:と、実際の関数名の前に。 :nnoremap <buffer> <cr> :<C-U>call append('.', repeat([''],v:count1))<cr> ヘルプの内容は次のとおりです。 CTRL-U Scroll window Upwards in the buffer. The number of lines comes from the scroll option (default: half a screen). If [count] given, first set the 'scroll' option to [count]. 自分で試してみたところ、思ったとおりに機能しました。しかし、私はscrollオプションに関する部分をよく理解していませんでした。彼らはどういう意味'scroll' optionですか? また、挿入モードでは奇妙なことをします。私の知る限り、カーソルから行の先頭までをすべて削除し、結果の行と上の行を結合します。

4
[0] [d] [$]よりも速く行をクリアします
行のテキストを消去するよりも速い方法はありますか を押し0て最初にジャンプし、次に d$行の終わりまで削除するために押す? また、インデント以外のすべてを削除する場合はどうなりますか?それを行う方法はありますか?

4
vimで異なるキーボードを操作する最も便利な方法は何ですか?
私は時々ギリシャ語の単語を書く必要がありますが、ギリシャ語のキーボードを使用しているとき、打つことは、たとえば、意図するコマンド<C-p>として<C-π>ではなく、理解されるでしょう。これはで修正できます:map <C-p> <C-π>。すべてのリストを作成せずにすべての文字に対してこれを実行できますか? PS。すべてのリストを作成しても、完璧な結果は得られません。例えば、qある;Grの上。キーボード、ただしマッピングしたくない; qへ また、何らかの理由で、after(zeta zeta)は後に機能しません:map Ζ Z。そして、私が定義したコマンドは、\lwとして機能しません\λς。

1
d [count] dをマップするにはどうすればよいですか?
NBこれは、「d3fg」コマンドがどのように機能するかを複製したものではありませんか?投票する前に読んでください! 小さな削除を大きな削除のようにしようとする私の探求で少し行き詰まりになりました。私が持っている問題は、のようなコマンドを再マップする方法を理解できないことd3dです。実際、そもそもそれらがどのように機能するかを理解することも、Vimのヘルプでそれらの言及を見つけることもできません。 d3j簡単です:dオペレータを3jモーションに適用します。 3ddまた、簡単ddです。3の「カウント」でコマンドを実行します。 d3d それは簡単なように見えますが、d演算子を...に適用しますが、何3dですか?それは動きではありません。自分で入力3dした場合、Vimはそれをカウントの後に演算子が続くものとして扱い、それ以上の入力を辛抱強く待ちます。 また、演算子を他の演算子に適用することはできません。ddヘルプでは、2つの演算子のシーケンスとして説明されていません。これは、独立した2キーストロークコマンドです。(cf. dc、何もしません。) また、2つのキーストロークを必要とするコマンドの場合、カウントの配置が柔軟であるということはないようです:2gjカーソルを2画面行下に移動しますがg2j、最初の2キーを完全に破棄し、カーソルを1行下に移動します。 それでは、どのように機能しますか?これはVimの内部コードの特殊なケースですか?d[count]dマッピングを作成する方法はありますか? 編集:それはテキストオブジェクトですか?:h text-objects「テキストオブジェクト選択コマンド」のリストには含まれませんが、「小さなオブジェクトから大きなオブジェクトにグループ化された」削除のリストにはdd が含まれます。そしてd2aw、カーソルの下の単語と次の単語を削除します。一方、c2d何もしません。 *それらについての言及が存在するに違いないと確信していますが、見つけることができません。私が読んだ:help deleting、:help motion.txtと試してみました:helpgrep dNd1-9からのNの全ての値のために。

2
エールリンター+エスリント:次のエラーにジャンプ
JavaScriptコードをリントするためにeslintwith を使用しaleます。コードブロックを編集した後、修正すべきいくつかのエラーがよくあります。修正は、次の誤った行に移動し、ルーラーから問題を読み取り、修正することによって行われます。 ナビゲーションフェーズをスキップして、特定のキーバインドを使用して次のエラーの場所(その行、できればその列)に移動できれば、それは素晴らしいことです。 キーバインディングを使用して次のlint / aleエラーに移動する方法はありますか?

2
viで(vimではなく)A、B、C、Dを表示する矢印キーを修正
私はvimに私が追加できることを知っています set nocompatible で.vimrc矢印キーが挿入モードではA、B、C、Dを表示することを回避します。 しかし、私はvi バージョン4.0(グリッター)12/25/06を使用しています。 同じ動作を取得するにはどうすればよいですか? ==編集==(1) 私が使用しているアーチのLinuxからviのバージョンこのことから構築されているCVSリポジトリを次のコマンドで(前回2007年2月24日をコミット): make PREFIX=/usr LIBEXECDIR=/usr/lib/ex PRESERVEDIR=/var/lib/ex \ TERMLIB=ncurses FEATURES="-DCHDIR -DFASTTAG -DUCVISUAL -DMB -DBIT8" そして、これらの3つのパッチ:fix-tubesize-short-overflow.patch、navkeys.patchおよびpreserve-dir.patch。 ==編集(2)== この問題は、LXTerminal 0.2.0、Termite 10-1、Tilda 1.2.4-1、Terminator 0.98-1、xterm 320-2で発生しますが、urxvt v9.21でもLinux仮想コンソールでも発生しません。 ==編集(3)== よると、単一のUNIX仕様左矢印、それぞれ以下のcapnameに対応して上向き矢印、右矢印、下矢印、: 、、kcub1 と。これらのcapterms からのterminfoエントリを比較すると、以下が得られます。kcud1kcuf1kcuu1xtermrxvt-unicode-256color $ infocmp xterm rxvt-unicode-256color | grep -E 'kcuf1|kcub1|kcud1|kcuu1' kcub1: '\EOD', '\E[D'. kcud1: '\EOB', '\E[B'. kcuf1: '\EOC', …

1
Ctrl +小文字をCtrl +大文字とは別にマッピングできますか?
私はウィンドウを少し速くナビゲートする方法を見つけようとしているので、次のものをマップしたいと思います: :nmap <silent> <C-F> :wincmd f<CR> 問題は、これが^f(小文字のf)マッピングを再マッピングすることで、これはページダウンです。リマップ^F(大文字F)のみを行い、その^fままにする方法はありますか?

3
neovimターミナルペインに入るときに挿入モードに入る方法
neovimのターミナルペインから簡単に移動できるように、次のマッピングがあります。 tnoremap <C-h> <C-\><C-n><C-w>h " Workaround since <C-h> isn't working in neovim right now tnoremap <C-w>h <C-\><C-n><C-w>h tnoremap <C-j> <C-\><C-n><C-w>j tnoremap <C-k> <C-\><C-n><C-w>k tnoremap <C-l> <C-\><C-n><C-w>l 唯一の問題は、ターミナルペインに戻ったときにを押しiて挿入モードに戻る必要があることです。ターミナルを実行しているneovimペインに移動するときは、常に挿入モードにする必要があります。これを達成する最良の方法は何ですか?

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