2

viで自分のショートカットをマップしようとしています。ショートカットを呼び出している関数の宣言を含む分割ウィンドウを開くことができるようにしたいと考えています。私のvimrcで次のようなもの:

nmap <unique> <silent> <Leader>tg :exe 'vsplit'\| equivalent of <C-]>

しかし、コマンドモードの C-] に相当するものは何ですか?

4

4 に答える 4

3

タグを含む行で vim を開くにfoobarは、シェル コマンドラインで次のように入力します。

vim -t foobar

vim コマンドラインで同じタグにジャンプするには、次のように入力します。

:tag foobar

ウィンドウを分割して新しいウィンドウのタグにジャンプする場合は、vim のコマンドラインで次のように入力します。

:stag foobar

「カーソルの下の単語」を指定するキーストロークが必要な場合は、この質問に従って、 CTRL+ R CTRL+を使用してWそれを取得できます。

:tag CTRL+R CTRL+W

次のものも使用できます。

:nmap <leader>w :tag <c-r>=expand("<cword>")<c-r>

これで入力<leader>+w(これは\私のセットアップにあるので、 を押します\w)は入力と同じになります:tag <word under the cursor>

于 2010-01-03T19:54:17.667 に答える
3

参照:help CTRL-]:

CTRL-] カーソル下のキーワードの定義にジャンプします。":tag {ident}" と同じです。ここで、{ident} はカーソルの下または後のキーワードです。

編集

これに組み込みがあるかどうかはわかりませんが、次はカーソルの「下または後」のキーワードに一致するようです:

matchstr(getline('.'), '\%'.col('.').'c\s*\zs\k\+')
于 2010-01-03T15:29:39.787 に答える
0

カーソルの下にある単語の定義にジャンプできますexe "tag " . expand("<cword>")。エキスパンド関数は、特別なトークンをその意味に置き換えます。これには、カーソルの下のファイル名、現在のファイル名などが含まれます。フルセットのexpand()関数については、Vimのヘルプを参照してください。

または、:exコマンドから通常モードのキーシーケンスを実行できる:normalコマンドを使用することもできます。

于 2010-01-04T14:33:45.273 に答える
0

次のように書くこともできます (たとえば Ctrl-Q にマップするため):

:nmap <C-Q> <C-]>

このような場合、ネストされた/再帰的なマッピングを避けるために :nn[oremap] を検討することもできます。

于 2010-01-03T20:01:28.563 に答える