現在選択されているテキストから改行を削除するには、ショートカットが必要です。私は私のコマンドをKDEグローバルショートカットに入れたいのですが、その方法をすでに知っています。私が思いついた命令は次のとおりです。
sh -c 'xclip -o -sel p | tr -d "\-\n" | tr "\n" "\ " | xclip -sel c; xdotool key --clearmodifiers ctrl+v'
目的は、現在の選択をパイプで連結して行末のハイフンをtr
削除し(そして部分を連結し)、残りの改行を空白に変更し、クリップボードに(フォーカスがある場所に)貼り付けることです。
問題:改行文字を空白に置き換えないでください。 tr "\n" "\ "
。そうする代わりに、改行文字を何も置き換えません。さまざまな空間表現を試しましたが、そのうち何も機能しませんでした。
私は試してみましたが、xdotool type
これはすべての空白を食べて、使用せずにすべてを一緒に実行しますtr
。
私はクリップボードの代わりに選択肢(デフォルトまたはセカンダリ)を使用することを好み、可能であればそれを使用する必要はありませんxdotool key ctrl+v
。xdotool
スペースを処理する方法が私の経験上予期しないものであるため、完全に避けることができればより良いでしょう。
まだインストールしておらず、xvkbd
インストールしたくありません。ただし、役に立つ場合はインストールできます。コピー、Python-pyperclipまたはxorg-xクリップボード。主なArchリポジトリには、私が考慮できる他のツールがあります。
答え1
これが私が思いついたものです:
sh -c 'xclip -o -sel p | perl -p -e "s/-\n//g"| tr "\n" " "| xclip -sel c; xdotool key --clearmodifiers ctrl+v'
私は最初のものをperlに置き換えましたtr
。tr
シーケンスが-\n
文字列ではなく2つの別々の文字として扱われることがわかりました。
ここでPerlの提案を見つけました。
https://stackoverflow.com/a/7697604/463994
単一のPerlコマンドを使用してこれを行う方法があるかもしれませんが、それについてはわかりません。より良い答えを受け入れます。
編集:これより良いソリューションありがとう、Rakesh Sharma(コメントを参照):
sh -c 'xclip -o -sel p | perl -pe "s/-\n// || s/\n/ /" | xclip -sel c; xdotool key --clearmodifiers ctrl+v; xdotool key Alt'
xdotool key Alt
Altキーの組み合わせにバインドされたショートカットがあり、Altキーをクリアする必要があるため、これを追加しました。