コンテキストに応じて異なるコマンドを割り当てたい。
私はこのようなことをしようとしています:
if line is empty:
map x key to y command
else
map x key to z command
コンテキストに応じて異なるコマンドを割り当てたい。
私はこのようなことをしようとしています:
if line is empty:
map x key to y command
else
map x key to z command
これは通常、<expr>
マッピングによって実現されます。
nnoremap <expr>((empty(getline('。')))?('y'):('z'))
NerdCommenterを使用するため、「nore」を使用しないように強制されます。
nmap <expr> empty(getline('.')) ? '' : '\cc'
''
「コメントを追加する」とはどういう意味かわからないので、目的のコードに置き換えてください。
より良いアプローチは、動作が行の内容に依存する単一の関数を持つことです。そうすれば、別のマッピングを気にする必要はありません。例えば:
function! LineOperation()
let curline=getline('.')
if curline =~ '^\s*$'
" empty line (except for whitespace): perform y command
else
" perform z command
endif
endfunction
次に、目的のキーをマップして、この関数を呼び出します。
nnoremap <silent> x :call LineOperation()<CR>