素人の備忘録。
動機
MacVimで、挿入中にCtrl + Enterで改行して上に移動するようマッピングしていた。
inoremap<C-CR><CR><Up>
ところがこれがGUIだと動くのだが、iTerm2上のCUIでは全く動かない。
無理矢理でもいいのでなんとかしたい。
解決策
Ctrl + Enterで自分が使わない適当なUnicode文字を送るようにiTerm2で設定し、その文字に対してvimrcでマッピングする。
iTerm2の設定
iTerm → PreferencesからProfilesタブを開き、自分のプロファイルを選択。
右のKeysタブを選択し、+ボタンを押しショートカットを追加。
Keyboard ShortcutでCtrl + Enterを押し、ActionでSend Textを選択、適当な文字(例:✠
)を入力する。
これでiTerm2上でCtrl + Enterを押すと✠
が入力されるようになった。
vimrcの設定
✠
にマッピングすればいいのだが、GUIの設定も残したいので以下のとおりに。
if has('gui_running')inoremap<C-CR><CR><Up>elseinoremap✠ <CR><Up>endif
これでCUIでもGUIでもCtrl + Enterにマッピングできた。
参考
http://stackoverflow.com/questions/5388562/cant-map-s-cr-in-vim