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