駆け出しの初心者です。
gqでwrapscanを無効にしたいんですが、
次のようにしてもwrapscanが有効なままになるようです。
どこがまずいんでしょうか?

nnoremap <F4> :set opfunc=GqNoWrapscan<CR>g@
function! GqNoWrapscan(type)
let s:wrapscan = &wrapscan
set nowrapscan
silent exec "normal! '[gq']"
let &wrapscan = s:wrapscan
unlet! s:wrapscan
endfunction