2012-04-10 30 views
1

閉じ括弧のタブを押すとカーソルが右に動くようにvimを設定したいと思います。これは、オートカッコで使用する場合に便利です。ここで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>" 

何をしているのですか?

+0

閉鎖区切り文字を押すと、ほとんどの自動閉鎖プラグインがこれを行います。そのうちの1人を見て、彼らがそれをやっているかどうかを見て、閉じた区切り文字の代わりにTabを使うように変更したいかもしれません。 –

答えて

2

1つのキーへの作業マッピングは1つしかできません(バッファローカル(バッファごとに1つ)とグローバルに2つ以上を定義できますが、同時に動作しません)ので、その:

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

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

+0

ありがとう!あなたはロック!私が今行っている唯一の問題は、カーソルが右端にある場合、タブキーにタブが挿入されないことです。( – zfedoran

+0

行末タブの問題を修正しました:https://gist.github.com/2356736 – zfedoran

関連する問題