나란히 모드에서 diff를 전체 터미널 너비로 사용


40

대부분의 응용 프로그램은 사용 가능한 터미널의 전체 너비를 사용하는 것이 현명합니다. 내 셸은 screen, vim 등을 수행하지만 diff병렬 모드 ( -y)에서는 그렇지 않습니다. 이것은 나를 화나게한다. 126 문자 너비를 사용하는데, 이는 270 블록 너비 터미널의 절반도 아닙니다.

매뉴얼 페이지를 살펴보면 너비 자동 조정에 대한 특별한 내용이 표시되지 않고를 통해 수동으로 지정해야합니다 -W.

diff터미널의 전체 너비로 자동 확장되도록 "숨겨진 기능"이 있습니까? 또는; -W <terminalsize>diff 명령을 실행할 때마다 자동으로 삽입하는 가장 쉬운 방법은 무엇입니까 ?

나는 -W를 모든 것에 자동으로 추가하면 아무것도 해칠 수 없다고 가정합니다. 왜냐하면 "x $ 컬럼 사용"만 의미하기 때문입니다. 그렇지 않으면.

답변:


51
$ alias diff='diff -W $(( $(tput cols) - 2 ))'

해야합니다. ~ / .bashrc에도 추가하고 싶을 것이다.

- 2(? 유니 코드 이중 폭 포함)의 경우 뭔가 주로 편집증 인 자동 줄 바꿈을 할 수있을 정도로 충분한 확장; 원한다면 그냥 사용할 수 있습니다

$ alias diff='diff -W $(tput cols)'

나는 $ COLUMNS를 알아 채기 시작했고 같은 줄을 따라 무언가를 생각하고있었습니다. 별명 diff = "diff -W $ {COLUMNS}". 나는 환경에 의존하기보다는 쉘을 요구하는 것을 선호한다고 생각한다.
VxJasonxV

1
tput고려 $COLUMNS, stty -a의미있는 값을 갖는 것들의 제를 이용하여, 상기 단말의 설명. eval $(resize)터미널이 생각하는 크기와 동기화되도록 강제 할 수 있습니다.
geekosaur

당신이 (예를 들어, 비표준이 tab stop이있는 경우주의 tabs 2당신의 .bashrc에) 당신은 또한 매우 기괴한 출력을 생성합니다 -t 플래그 또는 DIFF를 사용해야합니다
제프
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.