Tìm kiếm một thiết bị đầu cuối toàn màn hình ở giữa


8

Có tồn tại một số 'biên tập viên không phân tâm' khác nhau để viết: chúng cung cấp một môi trường toàn màn hình, tối thiểu với mục tiêu buộc bản thân phải tập trung vào nhiệm vụ trong tay.

Tôi muốn làm một cái gì đó tương tự với vim. Mặc dù tôi có thể chỉ cần kích hoạt nó trong một thiết bị đầu cuối và sau đó nhấn F11 để đặt nó ở chế độ toàn màn hình, tôi cũng muốn giới hạn chiều rộng khoảng 75 ký tự và căn giữa khu vực tôi đang sử dụng.

Hãy suy nghĩ về cách các trình xử lý văn bản cung cấp một trang ảo ở giữa chương trình - đó là điều tôi muốn. Sắp xếp

Có cách nào để làm điều này, với một chương trình thiết bị đầu cuối đặc biệt hoặc với một số cài đặt trong vim không? Nếu một trong các chương trình GUI vim có khả năng này hoặc nếu có bất kỳ cách nào khác để làm điều đó mà tôi chưa từng nghĩ đến thì đó cũng sẽ là một câu trả lời hữu ích.

Câu trả lời:


12

Nếu bạn bắt đầu screenở mức tối đa xterm( Alt-Entertrong xterm) là:

screen -c this-file

Nơi this-filechứa:

focusminsize 75 25
split -v
focus
only
split -v
split -v
focus

Bạn sẽ có được một khu vực trung tâm của chiều rộng 75.


Điều này rất gần với hoàn hảo, cảm ơn. Điều này đặt các đường viền màu trắng xung quanh khu vực hoạt động và dọc theo đáy của thiết bị đầu cuối; Bạn có biết có cách nào để loại bỏ chúng không?
evilsoup

Điều này đã không làm việc cho tôi.
slm

1
RE: nhận xét trước đây của tôi, câu trả lời để thoát khỏi biên giới có thể được tìm thấy tại câu hỏi SU này . Tôi đặt các dòng trong của tôi .screenrc, vì vậy mặc định của tôi screensẽ sử dụng tất cả các lệnh ở đây. Hoạt động hoàn hảo với tôi trên Ubuntu 13.04, gnome-terminalphiên bản 3.6.1 (và trên xterm và guake) và screenphiên bản 4,00.03jw4. Cảm ơn!
evilsoup

Tôi đang dùng Fedora 14 và gnome-terminal phiên bản 2.32.0. Phiên bản màn hình 4,00,03. xterm -v, 6.8.99.903. Không làm việc ở đó.
slm

Đã thử nó trên Ubuntu 13.04 làm việc ở đó. Bây giờ tôi thấy những gì nó đang làm. Đó là 3 tấm, chia đều, và tiêu điểm nằm ở giữa.
slm

1

Một cách khác là sử dụng một chương trình như devilspieđể thực hiện điều này. Trong trường hợp bạn chưa bao giờ nghe nói về devilspie:

đoạn trích

Một tiện ích phù hợp với cửa sổ, lấy cảm hứng từ tùy chọn Windows Match của Windows của Sawfish và thiếu chức năng trong Metacity. Metacity thiếu khớp cửa sổ không phải là một điều xấu - Metacity là một trình quản lý cửa sổ nạc và khớp cửa sổ không phải là một nhiệm vụ của trình quản lý cửa sổ.

Devil's Pie có thể được cấu hình để phát hiện các cửa sổ khi chúng được tạo và khớp cửa sổ với một bộ quy tắc. Nếu cửa sổ khớp với quy tắc, nó có thể thực hiện một loạt các hành động trên cửa sổ đó. Ví dụ: tôi có thể làm cho tất cả các cửa sổ được tạo bởi X-Chat xuất hiện trên tất cả các không gian làm việc và cửa sổ Gkrellm1 chính không xuất hiện trong danh sách máy nhắn tin hoặc tác vụ.

Nó nên có trong hầu hết các bản phát hành của distro.

Thí dụ

Vì vậy, để tập trung vào một xtermcửa sổ chạy vimbên trong nó, bạn sẽ làm như sau.

  1. Tạo cấu hình Devil's Pie của bạn. thư mục

    $ mkdir ~/.devilspie
    
  2. Tạo một .dstệp chỉ định quy tắc Pie của Devil

    $ cat ~/.devilspie/something.ds 
    (if
        (matches (application_name) "vim")
        (begin
            (geometry "600x400")
            (center)
        )
    )
    
  3. Chạy đi devilspie. Tôi thích chạy chế độ gỡ lỗi ( -d) để bắt đầu.

    $ devilspie -d
    Devil's Pie 0.22 starting...
    Loading /etc/devilspie
    /etc/devilspie doesn't exist
    Loading /home/saml/.devilspie
    Loading /home/saml/.devilspie/something.ds
    1 s-expressions loaded.
    
  4. Chạy của chúng tôi xtermvới vim.

    $ xterm -e vim
    

    ss của xterm vim

Tên cửa sổ của tôi là gì?

Bạn có thể sử dụng lệnh xlsclient -lđể lấy danh sách các cửa sổ đang mở. Tôi thấy đó là cách dễ nhất để xác định tên của một cửa sổ để hợp nhất vào devilspie. Bạn cũng có thể muốn sử dụng xwininfoquá.

Thí dụ

$ xlsclients -l|less
...
Window 0x6800023:
  Machine:  grinchy
  Name:  vim
  Icon Name:  vim
  Command:  xterm -e vim
  Instance/Class:  xterm/XTerm
...

Bạn có thể điều khiển một tên cửa sổ như thế này:

$ xterm -title WeirdWindow -e vim

Người giới thiệu


Điều này chắc chắn gọn gàng, nhưng đó không phải là điều tôi đang cố gắng thực hiện. Nó chỉ định vị cửa sổ ở một vị trí xác định & với kích thước cửa sổ được chỉ định, phải không? Tôi muốn có một 'trang' hoạt động ở giữa màn hình, với phần còn lại của màn hình trống - vì vậy không có phiền nhiễu trong nền.
evilsoup

@evilsoup - vâng, nó tập trung vào xterm @ kích thước được chỉ định. Bạn có thể để trống nền, tôi sẽ cập nhật câu trả lời của tôi để chúng tôi có một phương pháp thay thế. Câu hỏi của bạn không nói rằng bạn muốn nó trống trong nền, có thể tôi đã bỏ lỡ điều gì đó. Ngoài ra tôi nghĩ rằng bạn đang thiếu sức mạnh của devilspie. Ví dụ, bạn có thể thêm quy tắc vào tệp .ds để giảm thiểu mọi thứ khác.
slm

@evilsoup - sẽ xóa nền đủ? Tôi biết bạn đã có giải pháp khác nhưng tôi chỉ muốn cung cấp một phương pháp thay thế.
slm

1

Có một plugin cho Vim gọi là VimRoom cung cấp cái này thông qua ánh xạ (mặc định là V).

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.