タグ付けされた質問 「cursor-movement」

カーソルをバッファ内の別の場所に移動します。

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

5
視覚的な選択をキーボードにコピーした後、元の場所に戻ります
突然、その段落をコピーする必要があると判断したときに、カーソルが段落の中央にあります。 そこでvip、視覚的に入力して段落を選択します。 今、私はcmd+Cクリップボードにコピーするためにヒットします(これはシステムによって異なる場合がありますが、私の投稿の中心的な質問に関連するべきではありません)。 目的の位置ではなく、私が始めたときの位置です。 で選択を非視覚的にヤンクすると同じ問題が発生することに注意してくださいyip。 このような選択/コピーアクションを実行した後、デフォルトの動作を「元のカーソル位置に戻す」ようにしたいと思います。これを可能にする構成はありますか?

4
内側のテキストをヤンクしたテキストに置き換える方法
私がよく遭遇する編集パターンは次のとおりです。引用符または括弧内のテキストをヤンクし、引用符/括弧の別のペア内のテキストを置換したい。 たとえば、クラス名をコピーしてfoo bar別の場所に貼り付ける場合: <span class="foo bar"> <div class="this-should-be-replaced-with-foo-and-bar"> 私が知っているのはこれです:スパンのクラス内を移動する場合yi"、引用内のテキストをヤンクするために使用します。 今、私はこれをレジスタに持っているので、divのクラスの内容をそれで置き換えることができるはずです。しかし、私はこれを行う便利な方法を見つけることができません。 これを使用するciwと、変更する内容でレジスタが上書きされるため、ヤンクしたテキストが失われます。 私が思いつくことができる最高のことは、divのクラスの最初の引用に移動しp、を押してから、で次の引用に削除することdt"です。 通常、私は自分の立場を台無しにし、引用符の中のどこかにそれを貼り付けて2つの文字列をマージし、それは物事を台無しにしている。 これを簡単にするために、「内側のテキストをヤンクしたコンテンツに置き換えてください」の組み合わせを行う方法があることを望んでいます。

2
中括弧のない言語で%を使用する
CおよびCのような言語で%は、カーソルが置かれている対応する中括弧にジャンプするために使用できます。これはよく知られている「トリック」です。 しかし、例えばRubyでは: def fun [1, 2].each do |n| end end rubyはmatchpairs((:),{:},[:],<:>デフォルトで設定されている文字を使用しないため、これは機能しません。 私はそれを設定しようとしましたが、うまくいきません: :set matchpairs=def:end E474: Invalid argument: matchpairs=def:end これをRubyなどの言語でも使用できますか?これはRuby固有の質問ではなく、他の例はシェルスクリプト(if/ fi)またはLua(function/ end)などであることに注意してください。


3
さまざまな単語を同時に編集します。複数の選択肢があるSublime Textのように、同じ行を1つ編集します
同じ行にある複数の単語を同時に編集することはできますか? たとえば、私がこれを持っているとしましょう: Spam and Eggs is all you need for a healthy breakfast 行を次のように変更したいと思います。 organic_Spam and organic_Eggs is all you need for a healthy breakfast 「スパム」と「卵」を強調表示し、「有機」を「スパム」と「卵」に同時に追加します。ビジュアルブロックを使用して異なる行に同時に書き込むのに少し似ていますが、ここでは同じ行にデータを書き込みます。私は同僚がSublime Textでこれをやっているのを見て、グーグルで試しましたが、うまくいきませんでした。

4
画面の4分の1(25%)を上下にスクロールする
ページ全体をスクロールするのは混乱を招きすぎ、半ページは多すぎると感じることがよくありますが、1/4ページはちょうどいいです。私は現在、矢印キーを押したままにするだけです。 ページの25%を簡単に上下にスクロールするにはどうすればよいですか?


2
通常のコマンドを実行した後、カーソルの位置を復元する方法は?
現在の行の6列目の文字をドル記号($)に置き換える関数をコーディングしようとしていますが、カーソルを関数を呼び出す前の位置に残したいのです。 そこで、現在の列を保存し、変更を実行してから、次の関数を使用して戻ってきました。 function! DollarSplit() let col_number=col(".") "stores the current column number of the cursor normal! 6|r$ " replaces the 6th caracter in line with a $ execute col_number."|" endfunction 私はおそらくexecuteコマンドについて何かを誤解しています...または、実行したいコマンドを含む文字列を作成する必要がありますか?

3
動きのあるマッピング
マッピング内の後続のモーションで演算子を使用する方法を理解しようとしています。例えば: nmap /c c{here we pending for a motion}/<C-r>"<CR> マップは次のことを行う必要があります。 cオペレーターをアクティブにして、次の動きを聞きます。 たとえば、t,次のコンマの前にすべてを変更するためにここに入力できます。 カーソルとコンマの間のすべてを削除する挿入モードに移動します。 削除されたテキストはパターンとして自動的に検索されます 簡単に言うと、モーションテキストが削除された後、削除されたテキストが強調表示された挿入モードのままになります。誰かがこの事件を解決するのを手伝ってくれたらとても感謝しています。 更新 答えはほとんど私が欲しいものです。だが!を押す/cwと、単語の代わりに何かを入力し、を押し<Esc>ます。次の出来事でも同じことをするつもりだ。ただし、presing n(次のオカレンスに移動)および.(最後のコマンドを繰り返す)の後、最後に入力したテキストを置き換えるのではなく、先頭に追加します。マッピングの主な目標は、とそれを使用しているn/Nと.繰り返しに。私は何かを見逃しましたか?

2
通常モードでのj、CTRL-J、<NL>およびCTRL-Nの違いは何ですか?
私は誰かが使用しているWebのどこかを見ましたが、Ctrl-Jこのマッピングを知らなかったので、関連するドキュメントを調べて次のことを見つけました: j or &lt;Down&gt; or CTRL-J or &lt;NL&gt; or CTRL-N [count] lines downward linewise. それはいくつかの質問に私を導きます: 何ですか&lt;NL&gt;:を&lt;CR&gt;押すEnterと、デフォルトで通常モードで1行下に移動しますが、なぜ&lt;NL&gt;ここにあるの&lt;CR&gt;ですか? これらのマッピングの違いは何ですか:これら5つのオプションはすべて同じように1行下に移動しますか?私のテストによると、私はイエスと答えますが、それは私の次の質問につながります。 なぜ、まったく同じことを行うに5つのマッピングがあります:私はそれを理解することができますjし、&lt;down&gt;vimのマッピングに使用されていないユーザーのために保管されているが、それ以外のマッピングはなぜ存在するのか? どちらを使用するのがより興味深いのか:前の質問の続きです:可能性が非常に多い場合、異なる利点があるか、特定のユースケースで使用する方が良いと思います。それらのユースケースは何ですか? 私が見たときに、これらのコマンドの冗長性がさらに奇妙見つける:h kまで行くための唯一の3つの方法があります:k、&lt;UP&gt;とctrl-p。ボーナスの質問は次のとおりです。なぜ下降するのに5つの方法があり、上昇するのに3つの方法しかないのでしょうか。

1
Vimナビゲーション用の手の配置
私は新しいVimユーザーです。Vimを正しい方法で学習し始め、悪い習慣を身につけないようにするために、この少し基本的な質問をしたいと思います。 Vimを使用するとき、右手をどのように配置しますか?jkl;キーを指で始めるのがより自然だと思いますが、hナビゲートしているときにキーを失くしてしまいます。逆に、指を上hjklに置くと、自分の手でキーボードをjk押し続けるように訓練された位置ではないため、自分の言葉を間違って入力していることに気づき、中指と中指でキーを切り替えると扱いにくい場合があります。


1
カーソルが<Esc>の後の行の先頭に移動するのはなぜですか?
挿入モードで.txtファイルの行に沿って編集しているときに、キーシーケンスを使用した書き込みに続いてカーソルが行の先頭に移動することに気付きました。 &lt;esc&gt;:w この動作を変更して、カーソルが:writeの後の位置に留まるようにしたいと思います。これは可能ですか?カーソルを挿入モードのままにしておく必要はありません。書き込み後に最後の位置を維持したいだけです。 WindowsでgVim 7.4を使用しています。私の.vimrcは非常に基本的なものであり、私の動作のいずれかがこの動作を妨げるとは思わない。mswin.vimとexample.vimのソースを.vimrcから削除しました(公式のvim.org Windowsインストーラーにバンドルされています)。 以下のコメントを読んだ後、もう一度問題を確認しましたが、末尾の空白で完全に構成されている行を書き込んだ後、カーソルが左端にしかスライドしないことに気付きました。つまり、行がぶら下げインデントで、スペース以外の文字がない場合、カーソルはesc-:wで左端までスライドするだけです。.vimrcは、次の設定でインデント動作を処理しています。 set tabstop=4 set softtabstop=4 set shiftwidth=4 set expandtab set autoindent したがって、インデントされた行の下に作成された新しい行には、行の最初の4つのスペース(保持したい)として4つの末尾の空白が含まれます。「esc」キーを押すと、カーソルがバッファの左端にスライドします。 末尾の空白(インデントとして)で構成される行で、「esc」を押して通常モードに戻るときにカーソル位置を保持する方法はありますか?

4
Vim HardModeの細粒度の動き
最近、Vimのハードモードについて知り、それを試してみることにしました。しかし、細かい動きで問題が発生しています。 たとえば、本当に1行上または下に移動したいとします。以来jとk無効になっている、私はこのためにそこにあるものをより良い選択肢はよく分かりません。 1つまたは2つのキャラクターを右または左に移動したいときに、同じ問題に遭遇しました。誰かがこれらのタイプの動きをどのように置き換えるか知っていますか? これは私が使用しているプラ​​グインです:https : //github.com/wikitopian/hardmode。

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