2012-01-06 5 views
3

Vim関数を作成して、選択したすべての行に何らかのテキストを付ける(C-V Iなどを使うよりも速い)。すべての行の先頭にVim関数を作成する

私は、スクリプトでの経験がないと、この偉大な文書が見つかりました:http://www.ibm.com/developerworks/linux/library/l-vim-script-1/index.htmlと、この質問:How can I prepend text in the middle of the line to multiple lines in Vim?

私は接頭辞にテキストを取得するためにinputを使用され、その後、実際のプレフィックスを行うために:'<,'>s/^/prefix_text/を使用すると思いますがしかし、私は代わりの表現の変数としてprefix_textをどのように提供するかについて全く知らない。

私は(それが唯一の現在の行にinput("Enter prefix text: ")を追加しているため、明らかに、動作しない、)この非常に単純な解決策を試してみました:あなたの助けのための

感謝を!

+0

あまりにも疲れていますが、実際の解決策を提示するにはあまりにも疲れましたが、「実行」と「正常」を読み上げてください。次に普通のモードで普通にやっていることをC-v I.でコピーしようとします。 – Rook

+3

中間コマンドを使わずに ': '<,'> s/^/prefix /'を使わないのはなぜですか? –

+0

私はいつもそれを使用しているので! – charlax

答えて

5

以下のVimスクリプトは、 質問の説明に続くコマンドを実装しています。

command! -range -bar Prepend <line1>,<line2>call PrefixLines() 
function! PrefixLines() range 
    call inputsave() 
    let t = input('Prefix: ') 
    call inputrestore() 
    exe a:firstline.','.a:lastline 's/^/\=t' 
endfunction 
+0

ありがとう!デフォルトの範囲がファイル全体になるように '-range =%'を追加しました。 – charlax

関連する問題