コンソールからコピーするときの末尾のスペース

コンソールからコピーするときの末尾のスペース

私が時々経験する迷惑な動作は次のとおりです。コンソールでマウスでテキストを選択(コピーなど)して貼り付けると、各行の末尾に余分なスペースが表示されます。それは、

line 1                                                                          
line 2                                                                          

変える

line 1
line 2

したがって、各行の末尾には空白だけがあるわけではありません。

問題を確実に再現できず、回答が見つかりません。私はいくつかのソフトウェアでは、しばらくしてから明らかになると信じています。

しかし、ちょうど同じファイルをから開くと、vim最初はコンソールで開き、次にはで開くと前者tmuxの場合は正しく動作することがわかりました。後者はそうではありません。TERM=xterm-256colorコンソールとTERM=screen-256colorそれを考慮すると、tmux端末がこの操作を正しく実行していないか、アプリケーションが正しく実行できないことに関連しているようです。私はこれがやや曖昧な推測だと思います。それで、最初の質問は「この問題の原因は正確に何ですか?」です。

もう一つの質問は「どうすればいいですか?」です。最悪のシナリオは、ファイルがリモートにあるということです。私はそれをローカルにコピーしてから最新のものに開いたgedit。これで、新しいコンソールで開き(主にtmuxセッションで作業するため)、そこからコピーするオプションが必要です。これをもっと簡単にできますか?

私が逃げたらvim変にtmux行動TERM=xterm-256color vimします。テキストがなければ、背景が描かれていないようです。私にとっては、変数を変更するのは適切ではないようですTERM(ソフトウェアが他の端末を扱っていると思うようにします)。

私は通常ローカルファイルを編集するときにこれを行います:!gedit %

ベストアンサー1

アプリケーションがそこにスペースを表示している場合は、ターミナルで選択してコピーすると、行の末尾にスペースが表示されます。アプリケーションは、古いコンテンツを削除するためにスペースを表示できます。端末には行全体を削除するか、カーソルの右側にある文字を削除するコマンドがあります。アプリケーションは、最も効率的であると考えているものに基づいて、表示スペースと表示スペースの中から選択します。たとえば、プロンプトで何かを入力してバックスペースキーを押すと、アプリケーション(シェルなど)が最後の文字を空白で上書きできます。

X11接続がある場合は、ファイルを使用するxselか、ローカルクリップボードにコピーできます。xclip

実験的に、Vimは(バッファに空白で終わる行があっても)空白で終わる行を表示しないように努力しているようです。したがって、X11接続がない場合は、X11接続からコピーすることを選択できます。

もう1つの方法は、コピー後に後処理することです。

xsel | sed 's/  *$//' | xsel

おすすめ記事