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

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


1
「g」の意味は何ですか?
注:この質問にはStackOverflowに関する2種類の回答がありますが、おそらくここからより良い回答が得られると思いました。そうでない場合は、少なくとも、それがどこにあるべきかが文書化されます。 gで始まるvimコマンドは何ですか? vimノーマルモードでのgキーの使用 g通常モードのコマンドでの文字の意味的な意味は何ですか?私は外の一体を使用しているgg、Gと<n>G、今日まで、私はの意味は何かを見つけるために考えたことがなかったg大規模であるのVi禅。 今日、コード内の一連の定数を小文字にする必要があり、文字ごとよりも優れた方法が必要だと考えました(<n>~私が知らない奇妙な理由のために機能しないため)。g~特にで見つけましたg~iw。 これにより、リンクされた回答が見つかりましたが、それらは満足できる説明ではなく、起動するためにvi.SEではなくStackOverflowにあります。 そう、 viの意味論的意味はg何ですか? viセマンティックな意味で、私は人々が理解することを期待します。ciwつまり、単語のc変更はi、変更を意味し、は、内部のテキストアイテムをw意味し、スペースまたは句読点で区切られた単語を意味し_ます。 PS、これにタグを付けるにはどうすればよいですか?

1
<Esc>を再マップするとカーソルがジャンプするのはなぜですか?
で.vimrc: inoremap ii &lt;esc&gt; " ii to go back into command mode 問題は、の後ii、カーソルが35列右にジャンプすることです。に影響する他の唯一の行Esc: nnoremap &lt;esc&gt;&lt;esc&gt; :noh&lt;return&gt;&lt;esc&gt; 私はそれをコメントアウトしようとしました、助けにはなりません。 フル.vimrc: set nocompatible filetype off " Vundle --------------------------------------------------------------------- set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'gmarik/Vundle.vim' Plugin 'bling/vim-airline' Plugin 'vim-airline/vim-airline-themes' Plugin 'scrooloose/nerdtree' Plugin 'scrooloose/nerdcommenter' Plugin 'scrooloose/syntastic' Plugin 'freitass/todo.txt-vim' Plugin 'plasticboy/vim-markdown' Plugin 'tpope/vim-fugitive' " :GitCommands Plugin …

4
“ gf”(または同様の)を使用してファイルを開き、検索語にジャンプできますか?
ファイルパスの引数gfを認識するvimのコマンド(または類似のもの)を取得する方法はあり+{cmd}ますか? vimを起動して、次のようにして検索語に直接移動できます。 $ vim +/coding_effort ~/project/file 同様に、コマンドモードでは次のことができます。 :e +/coding_effort ~/project/file 私はよくメモを取り、次のような他のファイルを参照します。 For more info see +/coding_effort ~/project/file where there's a detailed discussion. 私はを選択し+/coding_effort ~/project/file、のようgfに入力して、vimに正しいことをしてもらいたいと思っています。

2
別のキーマップで疑似挿入モードを作成するにはどうすればよいですか?
私は2つの異なるキーボードレイアウトを定期的に使用する(Programmers-DvorakとTurkish-F)、少し変わった位置にいます。これらのレイアウトはお互いにかなり異なり、私は1組の筋肉の記憶でvimに習熟することができるだけです。私はDvorakレイアウトのvimコマンドにはかなり熟練していますが、キーボードがトルコ語Fレイアウトの場合は、ほとんど使用できません。残念ながら、私は定期的に英語とトルコ語の両方、さらには混合言語でファイルを編集しています。私の能力は、それぞれのキーボードレイアウトでどちらかの言語をうまく入力できるほどですが、私の脳はそれらをクロスワイヤして、Dvorakレイアウトからトルコ語で単語を数文字入力することを拒否します。 Xorgのレイアウトを変更するための2つのキーと敬礼のバインディングがありますが、混合言語ファイルを編集する場合、vimで厄介なワークフローが残ります。 &lt;vim commands…&gt;i&lt;switch to tr&gt;…content…&lt;escape&gt;&lt;switch to en&gt;&lt;vim commands…&gt; これを次のように短縮できるようにしたいと思います。 &lt;vim commands…&gt;&lt;leader&gt;i…content…&lt;escape&gt;&lt;vim commands…&gt; ...を使用すると、システムのキーボードレイアウトを変更せずにトルコ語のレイアウトをエミュレートするために&lt;leader&gt;i一連の:imap値が設定されます。同時に、i追加モードなしで挿入モードに切り替わり:imapます。値自体は簡単です。次のようなアルファベットのマッピングが必要です。 :imap a u :imap A U :imap o i :imap O İ "etc. 質問ですが、どのようにセットアップ2つのインサートモードへ、マッピングの束を除いて同一である、そしてどのように私はこれらのモードトリガすることができます1つのノーマル挿入モードとモードのインサート1つの擬似&lt;leader&gt;i、&lt;leader&gt;aなど?

2
`:w'`を`:w`にエイリアスして、 'という名前のファイルを作成しないようにする方法はありますか?
たまに、私の小指が'エンターに到達するまでキーをかすめるため、が発生し:w'&lt;Enter&gt;ます。 私はもう試した: cabbrev w' :w cabbrev w\' :w cabbrev "w'" :w それらのどれも動作しません。エイリアスする方法がある:w'のでは:w? また、通常のコマンドラインの代わりにcmdwin(:help cmdwin+ nnoremap : :&lt;C-F&gt;)を使用しているので、そこでも機能する場合はボーナスポイントになります。


2
Ctrl + sのマッピングが機能しない
Ctrl+ をマップsしてファイルを保存しようとしていますが、機能しません。 私のマッピング: map &lt;C-s&gt; :w &lt;CR&gt; :echo "Saved" &lt;CR&gt; imap &lt;C-s&gt; &lt;Esc&gt; :w &lt;CR&gt; :echo "Saved" &lt;CR&gt; i 挿入モードでは/:echo "Saved"、代わりに下隅に表示され、saved通常モードでは同じものが表示されます。何が悪いのですか? これは私のvimrcの最上部にあるので、他のコードが問題を引き起こしていないはずです。OSXターミナル内でVimを実行しています。

1
ビジュアルモードでコマンドをマッピングすると、エラーE481が発生する
選択したブロックを開いたNeovim端末に送信するキーボードバインディングをNeovimで作成しようとしています。これらの回答をガイドラインとして使用しましたhttps://vi.stackexchange.com/a/3390/3405 https://stackoverflow.com/a/6271254/859391 Visual Lineを選択してコマンドを呼び出そうとすると、No Range Allowedエラーが発生し続けます。私は明白な何かを見逃していますか? function! s:get_visual_selection() " Why is this not a built-in Vim script function?! let [lnum1, col1] = getpos("'&lt;")[1:2] let [lnum2, col2] = getpos("'&gt;")[1:2] let lines = getline(lnum1, lnum2) let lines[-1] = lines[-1][: col2 - (&amp;selection == 'inclusive' ? 1 : 2)] let lines[0] = lines[0][col1 …

1
Enterをクイックフィックス以外のカスタムコマンドにマップする方法
折りたたみをすばやく開閉できるように、再マップ&lt;cr&gt;(Enter)しましたza。 ただし、クイックフィックスウィンドウを使用してEnterキーを押すと、エラーのある行にジャンプしなくなりました(クイックフィックスウィンドウに存在しない折り畳みを開閉しようとしているため)。 クイックフィックスウィンドウに入るときに、マッピングを無効にするか、ローカルで再設定する方法はありますか?

2
キーマッピングnnoremap <SCk>:w <CR>が機能しないのはなぜですか?
1回のキーストロークでバッファをディスクに書き込むことができるようにしようとしています。 (サイドノート:理想的には、これをすべてのモードで動作させたいのですが、とりあえず、最初は通常モードで動作させようとしているだけです。) Vim wikiにはこう書かれています... 以下のような象徴的な表記法を使用して制御文字を表すVimのサポート&lt;F1&gt;、&lt;C-W&gt;、&lt;C-S-F1&gt;、など そしてまた... Ctrlキー修飾子を持つキーは、&lt;C-key&gt;表記法を使用して表されます。たとえば、Ctrl-Rを使用して表され&lt;C-R&gt;ます。Shiftキー修飾子を持つキーは、&lt;S-key&gt;表記法を使用して表されます。たとえば、Shift-F2を使用して表され&lt;S-F2&gt;ます。Altキー修飾子を持つキーは、&lt;A-key&gt;または&lt;M-key&gt;表記を使用して表されます。1つ以上のキー修飾子を組み合わせることができます。たとえば、を表すCtrl+Shift+F3にはを使用できます&lt;C-S-F3&gt;。 これを私の中に入れればうまくいくと言っているよう.vimrcです... nnoremap &lt;S-C-k&gt; :w&lt;CR&gt; しかし、効果はありません。リロード.vimrcしてshift+ control+ を押すと、下部にメッセージが表示されKません[File] written。 私もこれを試しましたが、option+ Kも効果がありませんでした... nnoremap &lt;M-k&gt; :w&lt;CR&gt; エラーメッセージはありません。 OS Xを使用しています。 更新 わかりました、これを試してみました... inoremap &lt;M-s&gt; Hey whats up 次に、挿入モードにしてoption+ を押すとS、Vimが出力します... ß OS XはVimがキーストロークを受け取る前にキーストロークをインターセプトしますか?これが機能しないのはなぜですか? もしそうなら、別のコンピュータを購入する以外にそれをやめる方法はありますか?

1
現在の演算子に依存するテキストオブジェクトを定義する
テキストオブジェクトにその演算子を認識させることができるかどうか、私は興味があります。特に、オペレーターに応じて異なる動作が必要なLaTeX環境用のテキストオブジェクトを作成しています。たとえば、次のLaTeXスニペットを考えてみます。 \begin{example} Hello world \end{example} ここではdie、行ごとにコンテンツを削除するのが最も便利ですが、cie「Hello world」は削除されますが、インデントは保持されます。つまり、 \begin{example} | \end{example} |カーソルはどこですか。

2
ggをgに再マッピングする方法は?
通常モードg combinationsではgg、以外は使用しません。g一度押すだけで十分になるようにするにはどうすればよいですか? nnoremap g ggコマンドの継続を3秒ほど待機させます。マッピング解除g、私はにマップすることはできませんので予めことは、どちらか動作しません。gg私はアンマップ場合g。私はそうではないすべての組み合わせのマッピングを解除する必要がありggますか?

3
executeとnormalを使用したマッピングで以下を使用すると、引用符の欠落エラーが発生するのはなぜですか?
コマンドは nnoremap &lt;leader&gt;; :execute "normal! mqA;\&lt;esc&gt;`q" 次にを押すと&lt;leader&gt;;、がE114: Missing quote: "normal! mqA;\続きますE15: Invalid expression: "normal! mqA;\。どうしてこれなの?コマンドラインに直接入力すると、コマンドは正常に機能します。 このコマンドは;、カーソル位置を変更せずに、現在の行の終わりにa を追加します。 私は私がnnoremap &lt;leader&gt;; mqA;&lt;esc&gt;`qどれが機能するかをただ実行できることを理解しています、問題は上記が機能しない理由、そしてそれを実行正規形で機能させるために何ができるかです。 私の推測では、ネストされたエスケープのある程度のレベルが必要ですが、うまくいくものを見つけることができませんでした。

1
1つのキーコマンドのタイムアウト値を変更するにはどうすればよいですか?
私が欲しいもの 特定のキーコマンドのタイムアウト値を一時的に変更するには 私が見たところ :help 'timeout'私があります。 The timeout only happens when the 'timeout' and 'ttimeout' options tell so. A useful setting would be &gt; :set timeout timeoutlen=3000 ttimeoutlen=100 (time out on mapping after three seconds, time out on key codes after a tenth of a second). キーコマンドでこれを実装する方法や、タイムアウトの現在の設定を確認する方法がわかりません。 たとえばhh、行の先頭に移動するように設定したかったのですが、その特定のキーコマンドのタイムアウトを、たとえば100ミリ秒とかなり速くしたかったのです。 私が試したこと :set timeout …

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