この関数をコピーして、 and で視覚的に検索しまし*た#。
function! s:VSetSearch(cmdtype)
let temp = @s
norm! gv"sy
let @/ = '\V' . substitute(escape(@s, a:cmdtype.'\'), '\n', '\\n', 'g')
let @s = temp
endfunction
xnoremap * :<C-u>call <SID>VSetSearch('/')<CR>/<C-R>=@/<CR><CR>
xnoremap # :<C-u>call <SID>VSetSearch('?')<CR>?<C-R>=@/<CR><CR>
マッピングは#正常に機能しますが、*マッピングは視覚的な選択を終了しません (次の検索語まで視覚的な選択の範囲を拡張します)。なぜこれが起こっているのかわかりません。解決策はありますか?
編集:問題を再現するには、コード スニペットを保存し、MS インストーラーcmd.exeをダウンロードし、 vimを開いて起動し、保存したコードvim -u NONEを実行:set nocpして最後にソースします。実際、次の単純なマッピングも機能しません。
nnoremap * *<C-o>
編集 2:他の誰かがこの問題を再現できますか? それは報告されるべきですか?
編集 3:問題 (バグ?) は、*(スター) キーを再マップできないことだと思います: vim -N -u NONE(Vim 7.4 パッチ 1-274) で vim を起動し、コマンドを実行して:noremap * :echo "star"<CR>を押す*と、vim は検索を実行しようとします. これは vim dev グループにも報告しました。