有用なもの:間違ったレイアウトの再コーディング

テキストが間違ったレイアウトで入力されることがよくあります。
もちろん、ブラインドタイピングを使用すると、この確率は大幅に低下しますが、インシデントは引き続き発生します。
テキストが非常に大きく、再入力が面倒な場合は特に残念です。


1. UNIXの方法

最も明白なのは、標準入力から標準出力へのトランスコーダーを書くことです。
#!/usr/bin/perl -CS
use utf8;
$lat=q(`~!@#$%^&qwertyuiop[]asdfghjkl;'zxcvbnm,./QWERTYUIOP{}ASDFGHJKL:"|ZXCVBNM<>?);
$cyr=q(!"№;%:?./,);
while(<>) { eval "tr{$lat$cyr}{$cyr$lat}"; print; }

/ *「-CS」は、stdinおよびstdoutのutf8エンコーディングを設定します。「use utf8」-スクリプトテキスト自体のエンコーディング。
原則として、これらすべてを1行に入れることができます。
perl -CS -Mutf8 -pe 'tr/qwerty....../...qwert.../;'
* /
更新:
perlの代わりに、よりデフォルトのsedを使用できます。
sed -e 'y/qwerty....../...qwerty.../'

たとえば、kdeのklipperでこのスクリプトをねじ込むのは非常に自然です。
正規表現.* (任意のテキスト)の場合、コマンド: echo -n "%s" | translit echo -n "%s" | translit
おそらくgnomeにも似たようなものがあります。
確かに、klipperは個々のアクションにホットキーを掛けることができないため、呼び出すのはあまり便利ではありません。
  1. テキストを選択
  2. バッファに入れる
  3. アクションメニューを呼び出す
  4. アクションを選択する(カーソル)
  5. バッファからテキストを貼り付ける


2.xclip

xclipユーティリティを使用すると、バッファからテキストを引き出して元に戻すことができます。
さらに、クリップボード(クリップボード)とマウスで選択されたテキスト(プライマリ選択)の両方を処理できます。
コマンド: xclip -out | translit | xclip -in xclip -out | translit | xclip -in
マウスの左ボタンで選択を再コーディングし、マウスの中央ボタンで結果を貼り付けることができます。
マウスの選択ではなく、クリップボードを処理するには:
xclip -out -sel clip| translit | xclip -in -sel clip

3.xdotool

Xには、「選択したテキストをバッファに入れたり、バッファから入れたりする」という汎用コマンドはありません。
しかし、ほとんどのプログラムでは、これはCtrl-C / Ctrl-Vを押すことで行われます。
これらのキーを押すと、xdotoolでシミュレートできます。
結果としてのコマンドは次のとおりです。
xdotool key 'ctrl+c'; xclip -out -sel clip | translit | xclip -in -sel clip; xdotool key 'ctrl+v'
グローバルホットキーに掛けることができます。
  1. 好きなようにテキストを選択してください
  2. ホットキーを押す


Source: https://habr.com/ru/post/J105104/


All Articles