2016-04-01 8 views
0

私は現在、次のコードを使用しています。すべての行が改行文字で始まり、それ以外の場合は動作しません。 Autohotkeyが文字列の先頭を自動的に取り除くという結果になるいくつかのバリエーションを試しました。オートホットキーで選択したテキストの各行の先頭に4つのスペースを追加するにはどうすればよいですか?

AppsKey:: 
    oldClipBoard := ClipboardAll ; old Clipboard 
    clipboard = ; Emptying clipboard to prepare for ClipWait 
    SendInput, ^c ; Copying the selected text (Crtl+C) 
    ClipWait 

    selected_text := Clipboard 

    StringReplace, selected_text , selected_text , `r`n , `n , All 

    placeholder := "`n " 
    StringReplace, selected_text , selected_text , `n , %placeholder% , All 

    SendInput, %selected_text% 

    ClipBoard := oldClipBoard ; restore ClipBoard 

    return 

答えて

2

貼り付ける文字列の先頭に4つのスペースを追加してみてください:

SendInput, {space 4}%selected_text% 

、前の行の末尾に改行やキャリッジリターン文字(複数可)を選択しないでくださいあなたの選択で。

注:通常、テキストの選択は改行文字で始まらないので、上記のコードでは、選択肢の先頭に4文字の文字を追加するだけで、OPの元のコードは新しい行ごとに4つのスペースを処理します先行する改行文字は改行と4つのスペースで置き換えられます)。

+0

あなたはOPを読んでいないと思います。つまり、すべての行が改行文字で始まり、そうでなければ動作します。つまり、OPには**改行**ごとに4つのスペースを追加したコードがすでにありました。これは改行文字 'nを改行文字に4つのスペースを加えたもの。残念なことに、そのアプローチは元の選択の最初の行を無視します(前の改行文字がないため)。そして受け入れられた答え(AA)がその問題を解決します。 – PGilm

+0

ああね!愚かな私。 – Blauhirn

+1

私はdownvoteを元に戻すことはできません。 wtf。あなたがあなたの投稿を編集すれば、私はできます。そのことを知りませんでした。ごめんなさい。 – Blauhirn

関連する問題