2011-01-23 3 views
4

This thread私は私のrst.vimファイルに保存しようとしていますレジスタbに格納されている次のマクロを持っていますの「...」内部vimにマクロを保存すると、vimマクロをファイルに保存すると説明されているが、動作させることができないという説明がある。<Esc>

let @b = '<Esc>bea**<Esc>`<i**<Esc>gvoo<Esc>e' 

すべてが"bpを使用してバッファからマクロを貼り付けてから来ました。私は閉じてのみ文The quick brown fox jumped over the moonとタイプ[email protected]を含む最初のファイルを再び開いたときに、これは結果の文である。しかし、:だから

Thc>bea**<Esc>`<i**<Esc>gvoo<Esc>e quick brown fox jumped over the moon. 

、そこに私が行方不明ですいくつかのエスケープキーストロークでなければなりませんが、私は何を見つけることができません彼らです。私はGoogleと:help同様のマクロの例のための無駄を検索してみました。私は何が欠けており、検索の際にどのような用語を探していますか?ありがとう!

+1

'<'、 'E'、' s'、 'c'、'> 'という文字ではなく、エスケープ文字を使用していますか?私がテストしたとき、それは私のために働いた。 – some

+0

'<,E,s,c,>'が '' bp'から貼り付けられているので、私は ':reg b'を見ると' 'を使っています。 ?*更新:*私の質問に答える[この質問](http://stackoverflow.com/questions/2943555/how-to-save-a-vim-macro-that-c​​ontains-escape-key-presses)が見つかりました – wdkrnls

+1

私はリテラル制御文字をどこかに持っているのが好きではないので、エスケープに '' \ e "'を使用し、他の制御文字には '" \ "'を使用します( '" \ "も同様です)。 – ZyX

答えて

3

一部でを示唆したとおり、問題は<Esc>が実際<Esc>ということでした。 Vimは、C-v <ESC>を使ってテキストファイルにエスケープを生成します。だから質問の:let行で:s/<Esc>/^[/gを実行しました。 ^,[は、C-v <Esc>によって生成された^[と同じではありません。

は、私が\e^[を切り替え、数ヶ月、今から自分自身に頭痛を保存します。一重引用符が機能しなかったので、マクロを二重引用符で囲んでいることを確認しなければなりませんでした。

+0

'\ e'と二重引用符が私のために働く唯一の解決策であるようです'nnoremap'セットでティン。 ''または '^ ['は 'E114:Missing quote'になります。 – dev

関連する問題