【问题标题】:How to disable automatical line-cutting in emacs-term?如何在 emacs-term 中禁用自动换行?
【发布时间】:2012-10-05 12:04:51
【问题描述】:

我正在使用 emacs 终端模拟器。带有 GNU bash 的 GNU Emacs 23.2.1,版本 3.00.0(1)-release。 当某些命令,比如 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 字符分隔。 很烦,怎么处理?

【问题讨论】:

    标签: emacs term


    【解决方案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))
    

    然后是 C-y(我使用 multi-term 扩展名)。

     (cons "C-y" 'paste-into-term-singlelined)
    

    【讨论】:

      猜你喜欢
      • 2013-11-06
      • 2015-01-21
      • 1970-01-01
      • 1970-01-01
      • 2016-08-19
      • 2021-08-27
      • 1970-01-01
      • 1970-01-01
      • 2021-04-21
      相关资源
      最近更新 更多