2017-01-23 31 views
3
内のユーザー定義コマンドからのモード

私は私のvimrcに自分のコマンドを定義しています挿入:切り替え** ** Vimの

command! Tcs :normal lvf`hc 

狙いがある私はバッククォートに行くこと、それが削除されますここから次のバックティックへの内部コンテンツ。同様に:

`hi there` -> `` 

問題はそれがあるが、通常モードのまま、私は挿入モードですぐに入力を開始することができるようcコマンドの動作を再現したいと思います。

私はcommand! Tcs :normal lvf`hc :startinsertを試しましたが、最後に入れたものはcです。エディタに直接入力されます。

おかげ

+2

そして、何ci' **と間違っている**(** C **ハンゲ**私** n側バッククォート) ?!!!これは組み込みのノーマルモードコマンドで、バックティックの間にいなくても機能します。 – dNitro

答えて

1

:help :normal >

 :norm[al][!] {commands}     *:norm* *:normal* 
     (...) 
     {commands} should be a complete command. If 
     {commands} does not finish a command, the last one 
     will be aborted as if <Esc> or <C-C> was typed.    

This implies that an insert command must be completedから。あなたのケースでは

 (...) 

コマンドnormalはなぜまだノーマルモードでのそれはだ中止されました。あなたはまだあなたの代わりに何をしたいあなたが行うことができます取得するには:normal! i

を試すことができます。

command! Tcs execute "normal lvf`hd" | :startinsert 
+1

それは動作します、ありがとう!私は実際にその助けを読んだが、あなたがそれを仕上げた方法を理解できなかった。私はそれが少し不明だと言いたい。 – pietro909