0

この関数をコピーして、 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 グループにも報告しました。

4

2 に答える 2