タグ付けされた質問 「delimiter-matching」


2
カーソルが既に文字列内にない場合にのみ、挿入時に自動的に閉じ「または」を追加します
でvimrc開き括弧を入力すると、閉じ括弧と中括弧を自動的に入力するマッピングを定義しましたinoremap ( ()<esc>i。 私は同じことをやってみたい"と'、しかし、カーソルが現在の文字列内にない場合にのみ、 -文字列の中のように'、おそらくアポストロフィではなく、ストリング区切り文字です。これどうやってするの?

7
vimで現在の行に一致する行を検索する方法
通常はで単語を検索しますが:/string、現在の行全体を検索する必要がある場合は、その方法を調べます。 event: 1 beacon: 0x02 //line 1 event: 19 beacon: 0x02 //line 2 event: 1 beacon: 0x03 //line 3 event: 1 beacon: 0x02 //line 4 event: 8 beacon: 0x01 //line 5 event: 19 beacon: 0x02 //line 6 event: 1 beacon: 0x02 //line 7 たとえば、現在の行全体を含むテキストの場合cursorとline 1同じように検索する方法が現在ある場合:/。カーソルは次に一致するline 4にジャンプし、再びline 7

1
選択時にmatchit.vimで定義された一致する「%」名(if / end、for / endなど)を強調表示するにはどうすればよいですか?
現在、私のVimは一致する括弧、角括弧、引用符などをシアンの背景と白の前景で強調表示しています-でカーソルをこれらの間で移動できます%。matchit.vimのおかげで%、if / end、for / endなどを切り替えることもできます。ただし、これらは選択時に強調表示されません。 括弧で自動的に行われるように、選択時にこれらの一致するペアを自動的に強調表示するにはどうすればよいですか? さらに、これらのペアに使用されている背景色をどのように変更でき:highlightますか? 前もって感謝します。 以下の@Tommy Aの回答を更新して、不十分に指定されたmatchit.vimグループや、%オペレーターがカーソルを元の位置に戻さないその他の状況を説明しました。「while」ループの違いを確認してください。このスレッドを読む人は、このバージョンを使用して、無限ループを回避することをお勧めします。 function! s:get_match_lines(line) abort " Loop until `%` returns the original line number; abort if " (1) the % operator keeps us on the same line, or " (2) the % operator doesn't return us to the same line after some …

1
括弧のマッチングを複数のウィンドウに強制的に表示できますか?
深くネストされた異種構造の長いリストを含むソースファイルがあります。構造が長いので、次のことを行います。 :splitコマンドを使用して、画面を2つに分割します。 一方のウィンドウを下にスクロールし、もう一方のウィンドウを上にスクロールします。ウィンドウ1のカーソルが括弧の上にあり、他の括弧が他のウィンドウに表示されている場合、他のウィンドウの他の括弧が強調表示されます(同じウィンドウに表示されていたのと同じように)。 どうすれば2番目のステップを実行できますか?

1
「<(>)」で一致しているのに、「<(>)」の終了「>」と一致しない一致ペアを作成するにはどうすればよいですか?
私はset matchpairs+=&lt;:&gt;C ++コードで使用していますが、うまく機能します。ただし、次のC ++コードのように、完全に存在しない場合もあります。 #include &lt;type_traits&gt; template&lt;int X&gt; typename std::enable_if&lt;(X&gt;9),int&gt;::type func() { return 5; } int main() { func&lt;10&gt;(); } ここで、カーソルをの&lt;後ろに置くenable_ifと、&gt;in X&gt;9が強調表示されます。もちろん、それはC ++コンパイラでもIDEでもないVimの観点からは理にかなっています。しかし、閉じていない括弧で分割されたペアと一致しないようにする簡単な方法はありますか?&lt;()&gt;つまり、閉じ山括弧を一致させたいのですが、一致させたくあり&lt;(&gt;)ません。

2
ペアのバランスを崩さずに自動的にペアを削除
私は、挿入モードでは、ことができます、ということVIML機能を書いています&lt;BS&gt;(ペアの開口部を通じて[、{それはカーソルの後に次の文字である場合(ペアの閉塞部を削除するなど、)のような多くの自動ペアをおよびvim-autoclose)。不均衡なペアがある場合、ペアの終了部分は削除されないため、この関数は異なります。 例: 形式は&lt;initial&gt; =&gt; &lt;result-after-backspace&gt;、カーソルがの前にある場所|です。 ((|) =&gt; (|) ((|)) =&gt; (|) (|) =&gt; | (defn =&gt; (defn (|) |) どうすればペアをアンバランスにするかどうかを判断してから、最後のペアを削除できますか? 自動ペアとvim-autocloseの両方をテストしました。両方のプラグインを使用すると、ペアの終了部分は常に削除されます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.