X 기반 터미널에서 줄 바꿈 선택/붙여넣기

X 기반 터미널에서 줄 바꿈 선택/붙여넣기

X 기반 터미널에서 줄 바꿈을 잘라내어 붙여넣는 안정적인 방법이 있습니까? 즉, 버튼 3을 선택하고 붙여넣을 경우 텍스트가 줄 끝에 도달하여 줄 바꿈되면 붙여넣기가 캐리지 리턴을 가져와 삽입합니다. 나는 차라리:

if (endcolumn==non-space character) {
  assume wordwrap
}
else {
  insert carriage return after last non-space character
}

이것은 나를 미치게 만든다. 특히 80열 이상의 코드를 붙여넣을 경우 더욱 그렇습니다. 때로는 작동하지만 대부분의 경우 작동하지 않습니다.

답변1

Unix 터미널은 자동으로 줄바꿈을 하지 않습니다. 이는 터미널 내에서 실행되는 애플리케이션의 기능입니다. 동일한 명령을 받은 후 터미널에 다음이 표시됩니다.

|This is text formatted  |        |This is line 1.         |
|to 24 columns           |   or   |This is line 2.         |

가능하다면 애플리케이션에 래핑을 수행하지 않도록 지시하십시오. 이런 식으로 터미널은 줄을 줄 바꿈하지만 항상 마지막 열에 있습니다.

|This is a single long li|
|ne of text.             |

세 번 클릭하면 This is a single long line of text끝에 줄 바꿈만 표시됩니다(또는 터미널 에뮬레이터에 따라 줄 바꿈이 전혀 표시되지 않음).

붙여넣을 때 터미널은 마치 사용자가 텍스트를 입력한 것처럼 해당 텍스트를 응용 프로그램에 보냅니다. 터미널 너비에 따라 달라지는 동작(예: 줄 바꿈)이 관찰되면 이는 터미널이 아닌 애플리케이션에 의해 발생합니다.

답변2

나는 이것이 유용성에 큰 영향을 미친다는 데 동의합니다. 세 번 클릭하고 줄 바꿈된 줄을 복사/붙여넣을 수 있는 것이 매우 중요하다고 생각합니다. 작동시키는 방법에는 두 가지가 있습니다. CR을 삽입하지 않고 세 번 클릭(클릭한 채 드래그)하여 줄 끝을 다음으로 보이는 줄로 선택합니다. 또는 보이는 줄 하나만 선택하려면 세 번 클릭하지만 붙여넣을 때 Enter 키가 없습니다.

잘못된 접근 방식은 세 번 클릭하여 보이는 행만 선택한 다음 붙여넣을 때 끝에 CR이 있다고 가정하는 것입니다. xterm 및 gnome 터미널에서 잘못된 동작을 보았습니다. Mac 터미널 응용 프로그램과 다른 Mac 터미널 응용 프로그램인 iTerm에서 좋은 동작을 보았습니다.

다른 터미널 프로그램을 시도하는 것 외에는 나쁜 상황을 좋은 상황으로 바꾸는 방법이 없습니다. 나는 이것이 터미널 프로그램이 실제로 보이는 모든 CR의 위치를 ​​기억하는지 아니면 단지 CR을 해석하고 잊어버리는지와 관련이 있다고 확신합니다.

관련 정보