1

閉じ括弧でTabキーを押すと、カーソルが右に移動するようにvimを設定したいと思います。これは、オートコンプリート括弧とともに使用すると便利です。

これが私がこれまでに持っているものです(動作しません):

inoremap <expr> <Tab> strpart(getline('.'), col('.')-1, 1) == "}" ? "\<Right>" : "\<Tab>"
inoremap <expr> <Tab> strpart(getline('.'), col('.')-1, 1) == ")" ? "\<Right>" : "\<Tab>"
inoremap <expr> <Tab> strpart(getline('.'), col('.')-1, 1) == "]" ? "\<Right>" : "\<Tab>"

私は何が間違っているのですか?

4

1 に答える 1

3

1つのキーへのマッピングは1つしか機能しません(少なくとも2つを定義できます:buffer-local(バッファーごとに1つ)と1つのグローバルですが、同時には機能しません)。したがって、次のようなものが必要です。

inoremap <expr> <Tab> stridx('])}', getline('.')[col('.')-1])==-1 ? "\t" : "\<Right>"

を使用しないでください。正常strpart()に動作し( 、、のstring[idx1:idx2]すべてはオプションですが、少なくとも1つは存在する必要があります)、入力が少なく、読みやすくなっています。idx1idx2:

于 2012-04-11T02:26:58.637 に答える