Buộc mọi thiết bị đầu cuối mới mở trong tab mới


8

Tôi có thói quen mở một thiết bị đầu cuối bằng cách sử dụng lệnh "Mở thiết bị đầu cuối ở đây" trong các thư mục. Điều này khiến một vài thiết bị đầu cuối vẫn mở trong khi tôi không thực sự sử dụng chúng nữa hoặc tôi bối rối không biết thiết bị đầu cuối nào phục vụ mục đích nào.

Tôi biết tôi có thể gắn nhãn các tab thiết bị đầu cuối và như vậy, nhưng tôi có thể buộc một thiết bị đầu cuối mới đang được mở, để trở thành một tab mới trong màn hình thiết bị đầu cuối không (nếu đã mở một thẻ?) Theo cách này tôi luôn có chúng được gắn thẻ trong một thiết bị đầu cuối.

EDIT Được rồi, vì vậy đã được một lúc và mojo linux của tôi đã được cải thiện rất nhiều. Vì vậy, giải pháp hiện tại cho tình huống này đối với tôi đã được sử dụng tmux. Nó cao cấp hơn một chút so với các thiết bị đầu cuối và tab thông thường nhưng một khi tôi đã hiểu rõ về nó (khoảng một giờ cố gắng) tôi rất hài lòng với cách thức tiến hành mọi thứ.

Trước hết, tôi chắc chắn rằng bất cứ khi nào tôi mở một thiết bị đầu cuối bằng cách sử dụng ctrl-alt-t, nó sẽ mở tmux theo mặc định. Điều này có thể đạt được bằng cách thêm dòng sau vào .bashrctệp của bạn sau tất cả các bí danh:

[[ $TERM != "screen" ]] && exec 'tmux

Bây giờ mỗi khi bạn sinh ra một thiết bị đầu cuối bằng cách sử dụng ctrl-alt-tbạn sẽ được trình bày với một tmux.

Để đảm bảo bạn chỉ có một thiết bị đầu cuối mở cùng lúc tôi đã làm như sau:

Trước hết, bạn có thể gắn lại một phiên tmuxbằng cách chạy tmux attach -d. Điều này sẽ ngắt kết nối tất cả các khách hàng khác được kết nối với phiên này. Điều này hoạt động tốt nếu bạn là người duy nhất sử dụng các phiên.

Nhưng, nếu bạn không có phiên chạy, nó sẽ không tìm thấy phiên nào. Ergo, bạn cần một cái gì đó như if (nosession) {tmux} khác {tmux Đính kèm -d}. Để thực hiện việc này, hãy thêm vào ~/.tmux.conftệp của bạn dòng sau:

#if run as "tmux attach", create a session if one does not already exist
new-session -n $HOST

(Nhờ bài này )

Trong .bashrctập tin của tôi , tôi đã thay đổi dòng được thêm trước đó vào sau:

[[ $TERM != "screen" ]] && exec 'tmux attach -d'

Điều này làm là tách tất cả các khách hàng khác khỏi tmuxphiên. Khi bạn làm điều này, tất cả các thiết bị đầu cuối khác đóng cửa. Chúng đóng vì dòng này cũng đảm bảo rằng khi bạn mở một thiết bị đầu cuối (ctrl-alt-t), nó sẽ bắt đầu một phiên tmux.

Ergo, attach -dgiết chết các phiên khác. Vì vậy, đây là cách khắc phục gần nhất tôi có thể nhận được và tôi khá hài lòng với nó! :)

Điều duy nhất tôi vẫn muốn là khi tôi nhấn ctrl-alt-tnó sẽ mở ra phiên hiện tại của tôi và cũng tạo ra một cửa sổ mới. Tôi chưa tìm ra điều đó nên rất thoải mái để giúp đỡ!


Nhấn ctr + shift + t để mở tab trong thiết bị đầu cuối.
Ankur Khandelwal

Vâng, tôi biết điều đó. Tuy nhiên, như tôi đã nói, tôi thường xuyên mở các tab từ trong một thư mục bằng cách sử dụng plugin "Open terminal here" (ví dụ này là mặc định trong Xubfox). Chúng mở một cửa sổ mới. Tôi muốn chúng được mở dưới dạng một tab mới trong cửa sổ terminal hiện có.
Barshe De Troyer

Câu trả lời:


3

Thật không may, việc mở các tab mới trong phiên gnome-terminal hiện tại đã là một tính năng mong muốn trong vài năm nay - xem tại đây .

Nó có thể hack một cái gì đó cùng nhau, mặc dù. Ví dụ , câu trả lời này cung cấp một hack để mở một tab mới trong cửa sổ hiện tại của gnome-terminal.


Thông minh. +1 cho liên kết đến báo cáo lỗi. Tôi chỉ có thể khuyến khích mọi người nhấp vào liên kết "điều này cũng ảnh hưởng đến tôi" để thu hút sự chú ý về điều này. Ngoài ra +1 cho hack. Câu trả lời chính xác!
Barshe De Troyer
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.