2

emacsターミナルエミュレータを使用しています。GNU Emacs23.2.1とGNUbash、バージョン3.00.0(1)-リリース。grep 1 file.txtなどのコマンドが非常に長い行を出力する場合、emacsはウィンドウ幅に合うようにそれらをトランクします。しかし、それはその行で正しく行われるので、そのような行をコピーすると、単一の長い行ではなく、複数の等幅の行が表示されます。

例えば:

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 

それをエコーし​​た後、cat lorem.ipsum 私が得ると言います(私が38文字の幅の端末を持っている場合):

Lorem ipsum dolor sit amet, consectet
ur adipisicing elit, sed do eiusmod t
empor incididunt ut labore et dolore 
magna aliqua. 

そして今、それを端末からコピーすると、4行が\n文字で区切られます。それは非常に迷惑です、それをどのように処分するのですか?

4

1 に答える 1

1

実際には答えが見つかりませんでしたが、そのようなカットを用語に簡単に貼り付けるための簡単なハックを作成しました。

;; Linearize the last kill-ring entry
(defun make-single-line-in-clipboard ()
  (interactive)
  (with-temp-buffer
    (yank)
    (pop kill-ring)
    (goto-char 0)
    (while (search-forward "\n" nil t)
      (replace-match "" nil t))
    (kill-region (point-min) (point-max))))

;; Paste into terminal the linearized last killed text
(defun paste-into-term-singlelined ()
  (interactive)
  (term-line-mode)
  (make-single-line-in-clipboard)
  (end-of-buffer)
  (clipboard-yank)
  (term-char-mode))

そして、Cy のどんちゃん騒ぎ (私は多項拡張を使用します)

 (cons "C-y" 'paste-into-term-singlelined)
于 2012-10-30T14:58:05.110 に答える