実際のマッピングを簡単にするために、別のモードでVimコマンドラインモードへのアクセスを標準化しようとします。たとえば、<f6>
キーをどこでも操作できるように、次のマッピングを定義しました。
noremap <script> <unique> <silent> <f6> <sid>:echomsg 'Hello World!'<cr>
noremap! <script> <unique> <silent> <f6> <sid>:echomsg 'Hello World!'<cr>
上記のマッピングは、<sid>:
作業を開始する前に、以下に提供されるキーマッピングに再マップされます。
noremap <unique> <expr> <sid>: <sid>StartCmdLineMode()
noremap! <unique> <expr> <sid>: <sid>StartCmdLineMode()
function! s:StartCmdLineMode()
let a=mode()
if a ==# 'n'
return ':'
" Type <c-v><c-v> to insert ^V.
elseif a =~ '[vV^V]'
return ":\<c-u>"
elseif a ==# 'no'
return "\<c-c>:"
elseif a ==# 'i'
return "\<c-o>:"
elseif a ==# 'c'
let b=getcmdtype()
if b ==# ':'
return "\<c-e>\<c-u>"
else
return "\<c-c>:"
endif
else
return ''
endif
endfunction
難読化されたメソッドを置き換える簡単な方法はありますか?
ベストアンサー1
次はいつ動作しませんか?
nnoremap <F6> <ESC><ESC>:command<CR>