2017-06-16 4 views
0

私は、ファイルにマークするためにmと任意の大文字の組み合わせを使用する、VIMのマーク関数のわずかに強化されたバージョンを書き込もうとしています。vimで単純な非マップを繰り返すには?

私が実装したいのは、1文字のみを使うのではなく、2文字の組み合わせを許可するマークを設定することです.test_views、test_models、test_formsという名前のファイルがある場合は、tv、そしてtfを実行すると、どのファイルにマップするかを気にする必要はありません。

nnoremap <some-prefix>tv :let tv = expand("%")<cr> 
nnoremap <leader>tv :execute 'edit' tv<cr> 

が、より効果的にこれを書くために見つけ出すことができませんでした:

私が思い付くことはこれまでのところです。 (私は26 * 26回これを繰り返すべきではないでしょうか?)。

作成機能は片方向にする必要がありますが、私がこれを書き終えることができたとしても、使いやすさは私が期待しているものとは思えません。

nnoremap , :call StoreFile(k_map) 

fun! StoreFile(k_map) 
    let k_map = expand("%”) 
endfunl 

いずれかの提案があります。

答えて

1

あなたは:help :forループのカップルとすべてのそれらのマッピングを作成することができます。

let alphabet = split('abcdefghijklmnopqrstuvwxyz', '\zs') 
for first_key in alphabet 
    for second_key in alphabet 
     let pair = first_key . second_key 
     execute "nnoremap <Space>" . pair . " :<C-u>let " . pair . " = expand('%')<CR>" 
     execute "nnoremap <leader>" . pair . " :execute 'edit '" . pair . "<cr>" 
    endfor 
endfor 
+0

感謝!魅力的に働いた! – hirofujitaaki

関連する問題