X11環境でNBSP文字を無効にする

X11環境でNBSP文字を無効にする

「alt-gr」文字の後に「空白」文字を使用すると、その場所に「改行しない空白文字」(別名nbsp)を入力できないことがよくあります。

パイプラインコマンドの例:mount |<space>tail最後のmount |<nbsp>tail コマンドはエラーをトリガします..." tail" command unfindable...(コマンドの前のビジュアルスペースを参照)。コマンド名は実際にはnbsp文字です。

だから私が見つけた完璧なソリューション私の場合は、nbsp文字を無効にするだけです。

setxkbmap -option "nbsp:none"

ただし、この変更はシステム全体に即座に影響を与え、これを証明するためにLibreOffice Writerでグループ化する必要がある2つの単語の間にnbsp文字を追加したい場合は機能しません。

以前から、私はうまくいかなかったコマンドや、なぜそのクソの役割のためにスクリプトやサービスが起動しないのかを調べるのに多くの時間を費やしました。

それで、中和をシェル(コンソール、ターミナル、vty、ttyなど)に制限するソリューションがあるかどうか自分に尋ねました。 bashや他のシェルから...

このクソnbspの役割がシェルでどのような役割を果たしているのか教えていただけますか?いつ、どこで、何に使用されますか?それを使用しないことによって私たちが失うものは何ですか?

もう一つの提案:それを中和するのではなく、色付きのグラフィック文字で表示できますか?

ベストアンサー1

〜のようにカミールNBSP機能がほぼ95%の場合、機能しないことに気づきました。したがって、これを無効にすることができ、残りの5%については、この文字が必要なすべてのアプリケーションにこの文字を挿入できるように別のパッチを実装する必要があります。

はじめに:私たちが同じことを話していることを確認するために、PTSコンソールとTTYコンソールの違いを説明したいと思います。私にとって、PTSはデスクトップ環境で開くGUIコンソール(グラフィックス)、私にとっては、TTYは組み合わせで開くCLI(コマンドライン)です。Ctrl-Alt-Fn(nは通常1〜7のセッション番号を表し、7はデフォルトでX11グラフィックスセッション用に予約されています。)

X11環境でNBSP文字を無効にする

したがって、私の検索(上記参照)に基づいて、My X11環境でNBSP文字を無効にすることができます。 X11はグラフィカル環境なので、非アクティブ化はグラフィカル環境で実行する必要があります。

だから私は自動起動スクリプトでこれを実装することを提案します(私の場合はXFCE DEで):

user@host:~$ cat <<EOF > $HOME/.config/autostart/setxkbmap_no_nbsp.desktop
[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=No NBSP
Comment=Disable NBSP key
Exec=/usr/bin/setxkbmap -option "nbsp:none"
OnlyShowIn=XFCE;
StartupNotify=false
Terminal=false
Hidden=false
EOF

Libre Office Writer用NBSPショートカットリダイレクト

場合によっては、Libre Office WriterでNBSP文字を挿入する必要がありますが、無効になっているため(上​​記を参照)、その文字を挿入する方法を見つける必要があります。

使用することをお勧めしますCtrl-Shift-スペースバー交換してください。

したがって、マクロの場合(ここで利用可能:ツール→マクロ→マクロ構成→LOdev基本→マイマクロ>標準>モジュール1>編集):

REM  *****  BASIC  *****

' Based on : https://ask.libreoffice.org/t/special-characters/1089/3
Sub InsertNBSP
 Dim oDoc as variant
  oDoc = ThisComponent
 Dim oCurrentController as variant
  oCurrentController = oDoc.getCurrentController()
 Dim oTextViewCursor as variant
  oTextViewCursor = oCurrentController.getViewCursor()
 Dim oText as variant
 If IsEmpty(oTextViewCursor.Cell) Then
  oText=oTextViewCursor.Text
 Else
  oText=oTextViewCursor.Cell.Text
 End If
 ' NBSP unicode : https://www.compart.com/en/unicode/U+00A0
 oText.insertString(oTextViewCursor,_
  chr(clng("&H00A0&")),false)
End Sub

注:NBSP UnicodeコードはU + 00A0で、私の場合、結果コードは次のように書かれています。$HOME/.config/libreoffice/4/user/basic/Standard/Module1.xba

キーバインディングの場合(ツール→カスタマイズ...→キーボード)を使用します。Ctrl-Shift-スペースバーというマクロ関数にバインドされます。挿入NBSP

注:私の例では、結果の接続は次のように作成されました。$HOME/.config/libreoffice/4/user/registrymodifications.xcu


vimにいくつかの文字を表示する(NBSPを含む)

ベース源泉重要な人物をすべて明らかにする方法を見つけました。精力(これは私のお気に入りのテキストエディタです。)色は緑です(私の場合)。 NBSP入力を妨げる要素がないため、これはTTYコンソールに役立ちます。

重要:シェルへのアクセス権があるかどうかによって異なります。PTSまたはテレタイププライターコンソールでは、Unicode文字(最初の場合)を使用するか、Unicode文字を部分的に使用できます(2番目の場合は、TTYが完全なUnicodeをサポートするようにすることができます(テストされていません)。

前提条件:以下の構成行を追加する前に、以下を確認してください。精力まだインストールされていません。

# See more here : https://vimhelp.org/options.txt.html#%27listchars%27
user@host:~$ mkdir .vim
user@host:~$ echo -e "set list\nset listchars=tab:\>\ ,trail:·,nbsp:?" >> $HOME/.vim/vimrc

メモ:

  • 商標すべてのタブは空白グループを区別するために表示され、より大きい(>)に置き換えられます。
  • 追跡する行の末尾にあるすべての末尾のスペースが表示され、このUnicodeを入力するには、途中でドット(・)に置き換えられます。下記をご覧ください。
  • NBSPほとんどの場合、有用ではないすべてのNBSP文字が表示され(絶対に使用されない)、疑問符(?)で示されます。
  • これはPTSコンソールでのみ機能するため、お勧めできませんが(TTYで完全なUnicodeサポートを統合しない限り)、より意味のあるエキゾチックなUnicode文字を使用できます。たとえば、tabは⇥で構成でき、nbspは次のように構成されます。 「☠」(下記参照)

PTSコンソールでUnicode文字を使用する

重要:この方法は私の構成に適していますが、どの環境でも機能するかどうかはわかりません。

タブ文字を入力するには(下記の他のコードを参照):

  • シェルから(源泉):Ctrl-Shift-U 21e5

  • vimから(源泉):Ctrl-V u 21e5

PTSのUnicode文字:

TTYシェルコンソールでNBSP文字を無効にする

最後に処理されなかったケースはTTYコンソールです。@Kamilが私に提案したように$HOME/.bashrc ファイルに次の行を追加して NBSP を無効にできます。

user@host:~$ echo -e "bind '\"\302\240\":\" \"'" >> $HOME/.bashrc

結論として

これでX11、PTS bashシェル、精力PTSではsetxkbmap -option "nbsp:none"(持続性のためにの自動起動スクリプトで実装しました$HOME/.config/autostart)。bind '"\302\240":" "'TTY bashシェルの無効化を使用してTTY bashシェルを無効にすることもできます$HOME/.bashrc。 NBSP(およびその他の問題のある文字)の使用について警告できます。精力TTYのlistchars構成はにあります$HOME/.vim/vimrc。最後に、Libre Office Writerに必要なNBSP文字を追加して、いつでもNBSPショートカットを別のキーの組み合わせにリダイレクトできます(これもX11に依存するため、NBSPがブロックされます)。

最後に、さまざまな環境事例がすべてカバーされているわけではありませんが、ここで述べたことは、他の事例への道を見つけるための良い出発点になると言いたいと思います。

おすすめ記事