タグ付けされた質問 「visual-mode」

ビジュアルモードは、オペレーターがテキストを選択するための柔軟で簡単な方法です。

1
外部コマンドで視覚的に選択されたブロックを変更する方法は?
2つの垂直部分で構成されるファイルがあります。左側では、データは既にフォーマットされており、変更したくありません。右側のデータのみをフォーマットします。次のような行があるファイルがあるとします foo=bar baz # Neato Junk quux=xyzzy # Bilbo Baggins Ring そのような多くの行で。「#」文字の右側のテキストのみを変更したい。次の式で必要なテキストを選択しました。 gg /# ctrl-v G $ しかし、それを(たとえばで:'<,'>!column -t)変更しようとすると、実際にはすべての行全体が変更されます。視覚的に選択された部分のみを変更するために使用する正しい式は何ですか?

1
テキストの長さを簡単に取得するにはどうすればよいですか?
たとえば、次の例のように、テキストの長さを確認したい場合があります。 str = 'Hello, world!' if len(str) == 13: print('Hello back to you!') 文字列の長さを知りたいのHello, world!ですが。 私が今していることは、で列番号を入力rulerformatし%c、最初の文字にカーソルを置き、最後の文字に移動し、手動で減算することです。 しかし、これはかなり厄介です。たとえば、ルーラーの仮想モードでの選択の長さは欲しいのですが、私が見る限り、これに対する選択肢はありません。 これはできますか?または他の簡単な方法で?

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("'<")[1:2] let [lnum2, col2] = getpos("'>")[1:2] let lines = getline(lnum1, lnum2) let lines[-1] = lines[-1][: col2 - (&selection == 'inclusive' ? 1 : 2)] let lines[0] = lines[0][col1 …

1
コマンドラインから行の範囲を選択する
コマンドラインから一定範囲の行を(視覚的に)選択する必要があります。 たとえば、次のコマンド:?^\s*for?+,/^\s*end/- pは、a forとend(の間にある)の間に含まれるすべての行を出力します。印刷操作を実行する代わりに、これらの行が強調表示されたビジュアルモードに切り替えたいと思います。マニュアルで検索しましたが、そのような元のコマンドは見つかりませんでした。

1
単一のキーストロークで、異なる選択に対して以前の置換を実行します
次のコマンドを実行しました :'<,'>s/2/digit/g 手動で視覚的に選択された以下のコード: return _.round(this.getTotalAbs(), 2).toFixed(2); そしてそれは意図したように機能しました return _.round(this.getTotalAbs(), digit).toFixed(digit); ここで、ビジュアル選択モードを介して手動で選択した別のコードスニペットに対して、1つのキーストローク(可能な場合)で同じ置換コマンドを繰り返したいと思います。

3
ブレースを簡単に削除する方法
友人の1人から、下の方法で中かっこを削除できると言われました。 削除する中括弧のペアの内側にカーソルを置きます。 y i {中括弧でテキストをヤンクし、v a {貼り付けpます。 それは次のようにうまく機能します: for(int i = 0; i < s.length(); i++) { int index = s[i] - c; if(root->next[index] == NULL) root->next[index] = new TrieNode; root = root->next[index]; } コマンドを実行した後: for(int i = 0; i < s.length(); i++) int index = s[i] - c; if(root->next[index] …

2
ファイルの一部を調達する方法
たとえば、vimrcwith :so %やでファイルを調達できます:so <filename>。しかし、ファイルの一部のみを調達する必要がある場合はどうすればよいですか。ファイルの一部を視覚的に選択して:h vソースを取得する方法が必要です。ちょっとemacsのようなM-x eval-region

2
現在のカーソル位置から開始して、最後の実際の選択ではなく、最後の視覚的形状を再選択する方法はありますか?
gvが最後のビジュアル選択を再選択することを知っています。これは素晴らしいです、そして私はそれを頻繁に使用します。 しかし、時々私は関連しているが異なる何かをしたい:現在のカーソル位置から、以前の視覚的選択と同じ形であるが、カーソルが現在ある場所に配置されたブロックを選択する。 特に、テキストのチャンクを貼り付けて、何らかの置換や変換をしたいときに、私はこの欲求をよく持っています。したがって、このコマンドを使用すると、貼り付けたものを再選択できます。(そのため、「最後の貼り付けを視覚的に選択する」コマンドも役立ちますが、それでも、「最後の貼り付けを再選択するかどうかに関係なく、最後の視覚的形状を再選択する」という文字列が必要な場合もあります。編集:をご覧ください。現在のカーソル位置から開始して、最後の実際の選択ではなく、最後に貼り付けたテキストを再選択する方法はありますか?この質問の場合) (注:これを行うための組み込みの方法がない場合は、〜/ .vimを編集してvimscriptの例を追加し(そしておそらくそれを変更し)、これを簡単なキーの組み合わせにバインドしますが、最初から作成しますこれを行うことは私の現在の能力を超えています。)

1
特定のリマップにタイムアウトを設定しない方法を教えてください。
この問題は、再マッピングされた巨大な構成を使用する問題から発生するため、少なくとも1つのキーを押すコマンドでは、bépoレイアウトは通常モードのqwertyと実質的に同じです。 ビジュアル選択モードを使用してテキストを選択し、iとして構成されているを押すとnoremap i d、テキストはすぐに削除されることが予想されます。ただし、すぐにトリガーされるのではなく、2番目のキーの可能性を待機しています。 timeoutlenゼロに設定すると、このコンテキストで期待される結果が得られますが、このようなコマンドは、動作しない,,ように構成されてnoremap ,, ggいます。 それで、1つのコマンドに固有のタイムアウトを設定したり、アクティブな選択を使用したビジュアル選択モードのような特定のコンテキストでタイムアウトを設定したりできますか? おそらくtimeoutlenゼロになっているとnoremap ,, gg、役に立たなくなるかもしれません。そのため、このマッピングを削除するだけで、期待した結果が得られる可能性があります。

1
ビジュアル選択モードをUnix選択クリップボードに統合できますか?
:set mouse=aビジュアル選択モードがXの選択バッファーと自動的に統合されるように、vim(明らかにで)やgvim を構成することは可能ですか? コピーレジスタを設定してクリップボードと統合する方法は知っていますが、選択システムも統合したいと考えています。それは可能ですか、もし可能であれば、どのようにですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.