挿入モード時のmapの動作

28 views
Skip to first unread message

tora

unread,
Sep 12, 2018, 8:45:51 AM9/12/18
to vim_jp
挿入モードの時に、挿入モードから抜け出ることなく、空行を
挿入したいと考えました。
_vimrc に次の二行を書き加えてみました。

"--- 挿入モードで空行を入れる ---- 2018/09/12 -----------
inoremap <C-b> <ESC>O<ESC>I        " 上に入れる
inoremap <C-s> <ESC>o<ESC>I        " 下に入れる

次の文の * の直後にカーソルを置いて、

extern  int gettime_sub( char * );

挿入モードで<C-b>を打つと

        " ã“ü
extern  int gettime_sub( char * );

上記のようになり、上側に行は挿入されるのですが、変な文字列が
現れてしまいます。
mapを使わずに、挿入モードで、<ESC>O<ESC>I と打つと、
期待したように空行が挿入されます。

map の機能を使って一回の動作で、これを行うにはどのように
すればよいのでしょうか。
Message has been deleted

Hiroyuki Yoshinaga

unread,
Sep 12, 2018, 9:59:40 AM9/12/18
to vim_jp
mapではそのままではコメントを書けませんね
マップコマンドでは '"' (ダブルクォート) も {lhs} や {rhs} の一部と見なされるため、マップコマンドの後ろにコメントを置くことはできません。しかし、|" を使うことができます。これはコメント付きの空の新しいコマンドを開始するからです。
これが原因では?

tora

unread,
Sep 13, 2018, 1:10:44 AM9/13/18
to vim_jp
ご応答ありがとうございます。

VIm 日本語ドキュメントを読んでも、意味が理解できませんでした。
マップコマンドの行内に書いてあったコメントを削除したら、
期待通りに動きました。

ありがとうございました。

2018年9月12日水曜日 22時59分40秒 UTC+9 Hiroyuki Yoshinaga:
Reply all
Reply to author
Forward
0 new messages