中括弧のない言語で%を使用する


17

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)などであることに注意してください。

回答:


17

matchitプラグインを使用できます。これは最新のvimディストリビューションに含まれているため、vimrcに次を追加するだけで使用できます。

runtime macros/matchit.vim

必要に応じて、プラグインとしてパッケージ化することもできます。デフォルトで多くのキーワード(defおよびを含むend)を認識し、さらに認識できるように拡張できます。


1
注:入力:runtime macros/matchit.vimは機能しません。あなたは...あなたのvimrcにに入れてVimを再起動する必要があります
マーティンTournoij

やった それでも私のために動作しません:(
Thirupathi Thangavel

0

次のdoc matchit、以下の〜/ .vimrcの追加は私のために働いた

:runtime macros/matchit.vim
filetype plugin on

サイトへようこそ!これは、既存の承認済みの回答と基本的に同じ回答です。違いはfiletypeコマンドです。この行を追加した理由と、質問への回答に役立つ方法を詳細に説明すると役立つ場合があります。(いくつかのタイプミスもあります:「doc」、「the」。)
Rich
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.