Cửa sổ Terminal có thể được thay đổi kích thước bằng lệnh Terminal không?


38

Để tôi có thể thay đổi kích thước cửa sổ thành một kích thước nhất định từ bên trong Terminal.

Câu trả lời:


58

Vâng. Terminal hỗ trợ các chuỗi thoát để thao tác với các cửa sổ, bao gồm kích thước và vị trí, phân lớp và thu nhỏ. Kích thước có thể được thể hiện bằng pixel hoặc ký tự. Xem Trình tự điều khiển Xterm để biết chi tiết (tìm kiếm thao tác trên Window Window, nếu bạn không quen thuộc với ký hiệu này, thì CS CSI là viết tắt của Giới thiệu Trình tự điều khiển trình tự, đó là ESC [).

Ví dụ: lệnh shell này sẽ đặt cửa sổ thành 100x50 ký tự:

printf '\e[8;50;100t'

Thu nhỏ cửa sổ trong vài giây, sau đó khôi phục lại:

printf '\e[2t' && sleep 3 && printf '\e[1t'

Di chuyển cửa sổ đến góc trên cùng / bên trái của màn hình:

printf '\e[3;0;0t'

Thu phóng cửa sổ:

printf '\e[9;1t'

Đưa cửa sổ ra phía trước (không thay đổi tiêu điểm bàn phím):

printf '\e[5t'

Kích hoạt chuỗi điều khiển trong trình mô phỏng đầu cuối

Một số trình giả lập thiết bị đầu cuối bỏ qua các chuỗi điều khiển này theo mặc định và yêu cầu cấu hình để kích hoạt chúng.

Để kích hoạt những thứ này trong XTerm , hãy đặt tài nguyên sau thành true:

allowWindowOps

Để bật những thứ này trong iTerm2 , bỏ chọn tùy chọn sau:

Tùy chọn> Cấu hình> [hồ sơ]> Thiết bị đầu cuối> Tắt thay đổi kích thước cửa sổ khởi tạo phiên


Điều này là hoàn hảo!
LopSae

2
Từ giờ em là thần của anh!
d12frosted

2
Điều này dường như không hoạt động trên Yosemite với iterm2
Jistanidiot

Điều này hoạt động rất tốt nhưng có vẻ như Terminal không chấp nhận các phép cộng lại sẽ khiến cửa sổ chỉ hiển thị một phần trên màn hình. Tôi vừa thử printf '\ e [8; 100; 100t' và cái này bị cắt ngắn thành 79x100, chỉ là những gì có thể phù hợp. Vấn đề của tôi là tôi cần bỏ qua chuột chỉ trong trường hợp mở rộng Terminal vượt quá giới hạn màn hình ...
phs

1
Điều này cũng hoạt động với iTerm2.
TextGeek

10

Bạn luôn có thể sử dụng AppleScript:

setwidth() { osascript -e "tell app \"Terminal\" to tell window 1
set b to bounds
set item 3 of b to (item 1 of b) + $1
set bounds to b
end"; }

Điều này chỉ hoạt động cho cửa sổ / tab thiết bị đầu cuối hiện đang hoạt động. Để làm việc này một cách đáng tin cậy, hãy lấy tên đường dẫn thiết bị tty hiện tại và xác định tab thiết bị đầu cuối phù hợp.
Chris Trang


10

Sử dụng /usr/X11/bin/resize.

resize -s 30 80 sẽ cung cấp cho bạn 30 hàng và 80 cột.

resize -s 30 0 sẽ cung cấp cho bạn 30 hàng và cột đầy đủ.

resize -s 0 80 sẽ cung cấp cho bạn đầy đủ hàng và 80 cột.


1
Giải pháp này không giới hạn ở MacOS. Nó dựa trên thiết bị đầu cuối, vì vậy nó sẽ hoạt động trên tất cả các thiết bị đầu cuối. Tôi sử dụng điều này để thay đổi kích thước cửa sổ PuTTY trên Windows đang chạy bash shell với TERM = xterm.
DrStrangepork

4
Điều này dường như không hoạt động trên Yosemite trong iterm2.
Jistanidiot

Điều này làm việc với tôi với Apple Terminal nhưng không phải iTerm2. Tuy nhiên, việc gửi chuỗi thoát \ e [8; 24; 80t hoạt động với cả hai.
TextGeek

1
@KrishenGreenwell Tham khảo tài liệu iTerm2. Theo mặc định, nó bỏ qua các chuỗi điều khiển. Có một ưu tiên để kiểm soát xem chúng có bị bỏ qua hay không.
Chris Trang

1
Giải pháp này được sử dụng để làm việc, nhưng tôi nghĩ, các lệnh X11 đã biến mất. Có thể, chúng có thể được cài đặt bằng cách cài đặt X11, nhưng tôi không muốn cài đặt X11 chỉ để có lệnh thay đổi kích thước.
Gabriel

-2

Trên thực tế, bạn biết rằng, di chuyển một cửa sổ thay đổi kích thước bằng chuột là rất chậm.

Tôi đã sử dụng ứng dụng SizeUp này từ rất lâu rồi. Về cơ bản, nó thay đổi kích thước bất kỳ cửa sổ ứng dụng nào bằng cách sử dụng lệnh bàn phím của bạn.

Bạn có thể làm như sau (các lệnh bàn phím tùy chỉnh của tôi bên dưới):

  • làm cho cửa sổ toàn màn hình ( control+ option+ command+ m)
  • di chuyển cửa sổ 1/2 kích thước màn hình sang trái hoặc phải ( control+ option+ command+ / )
  • di chuyển cửa sổ kích thước màn hình 1/4 sang bất kỳ góc nào ( control+ option+ shift+ / / / )
  • di chuyển cửa sổ giữa các màn hình
  • di chuyển cửa sổ giữa các không gian

Tôi nghĩ rằng điều này có thể thực hiện các mẹo và cũng giúp quản lý cửa sổ khác.


Mặc dù hữu ích, nhưng điều này không giải quyết được câu hỏi mà người hỏi đã hỏi.
Andrew Ferrier
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.