Tạo khung mới chỉ với chế độ dòng


13

Tôi muốn tạo một khung mới không chứa gì ngoài dòng chế độ. Đặc biệt không phải là một bộ đệm tập tin.

Tại sao tôi cần cái này? Tôi sử dụng đồng hồ của chế độ org để tính giờ. Chế độ Org hiển thị bộ hẹn giờ cho tác vụ hiện tại tôi đang làm việc trong dòng chế độ và cập nhật bộ hẹn giờ theo thời gian thực. Tôi sử dụng các ứng dụng khác ngoài Emacs, vì vậy khi tôi chuyển sang chúng (ví dụ: khi sử dụng trình duyệt hoặc thiết bị đầu cuối), tôi vẫn muốn có thể nhìn vào bộ đếm thời gian đang chạy. Tôi nghĩ rằng tôi có thể tạo một khung mới, nhưng khi tôi nhấp vào bộ đếm thời gian trong dòng chế độ, tệp .org sẽ được mở trong khung mới (đã được thay đổi kích thước để chỉ hiển thị dòng chế độ) thay vì quay lại nó trong khung đầu tiên.

Đây là cách dòng chế độ của tôi trông (thanh màu xanh) - đó là tất cả những gì tôi muốn trên khung mới:

nhập mô tả hình ảnh ở đây

(Cuối cùng, tôi sẽ phải tìm ra cách làm cho khung mới xuất hiện luôn ở trên đầu, nhưng điều đó nằm ngoài phạm vi của câu hỏi này)

Tôi sử dụng OS X nếu điều đó có liên quan.


1
Chỉ cần ngẩng cao đầu, tôi đang làm việc trên một tập lệnh elisp và macruby sẽ hiển thị thông tin dòng chế độ org trong thanh menu OSX. Nó làm việc cho tôi nhưng tôi sẽ cố gắng hoàn thành nó thật tốt.
Jordon Biondo

@JordonBiondo - xuất sắc! giải pháp của bạn có thể thậm chí còn tốt hơn những gì tôi đang làm ở đây. đang chờ nó. xin vui lòng giữ cho tôi cập nhật.
SRID nói Khôi phục Monica

Bạn nên đặt lại tên và viết lại câu hỏi của bạn, nếu bạn thực sự cảm thấy rằng câu trả lời bạn đang nói " Tuyệt vời! " Để trả lời câu hỏi đó. Bởi vì theo như tôi có thể nói rằng họ không trả lời yêu cầu của bạn về một khung với " không có gì ngoài một dòng chế độ " - hoàn toàn (và tôi nghi ngờ rằng bất kỳ câu trả lời nào cũng sẽ). IOW, nếu bạn đã nới lỏng mục tiêu của mình kể từ khi xây dựng yêu cầu ban đầu, vui lòng xem xét cập nhật câu hỏi cho phù hợp.
vẽ

Tôi đồng ý, sau khi đọc, có vẻ như OP có một vấn đề cụ thể, nhưng chỉ yêu cầu một giải pháp chứ không phải giải pháp tốt nhất.
Jordon Biondo

@Drew - Bạn có đề xuất bất kỳ chỉnh sửa cụ thể nào không? Giải pháp ban đầu của PythonNut trả lời yêu cầu ban đầu của tôi. Lưu ý rằng tôi đã nói "Đặc biệt không phải là bộ đệm tệp." Và giải pháp của anh ấy - mặc dù tạo ra một bộ đệm trống - không dẫn đến bộ đệm tệp xuất hiện trên khung mới.
Srid nói Phục hồi lại

Câu trả lời:


7

Mở rộng câu trả lời của Jorgen Schäfer với đề xuất của Matthew Piziak tạo ra đoạn trích sau:

(with-current-buffer (generate-new-buffer "*empty*")
  (make-frame '((minibuffer . nil)
                 (unsplittable . t)
                 (buffer-predicate . (lambda (x) nil))
                 (height . 2)
                 (left-fringe . 0)
                 (right-fringe . 0)
                 (tool-bar-lines . 0)
                 (menu-bar-lines . 0)))
  (set-window-dedicated-p
    (get-buffer-window (current-buffer) t) t))

Theo như tôi có thể nói, điều này chính xác khóa cửa sổ vào một bộ đệm trống. Cố gắng chuyển sang một bộ đệm khác sẽ mở bộ đệm trong một cửa sổ hiện có trong khung cha.


Tuyệt vời, tôi đã xác minh điều này để làm việc. Bất kỳ cách nào để làm cho khung mới kế thừa kích thước phông chữ (và tên phông chữ) của khung chính? Ngoài ra, các phần dành riêng cho bộ đệm dự phòng của dòng chế độ *empty* All L1 (Fundamental)- có thể bị xóa không? Đây là cách tôi nhìn: i.imgur.com/iOLw57c.png
SRID nói Khôi phục Monica

@SridharRatnakumar May mắn thay, tước thông tin dòng chế độ bổ sung là không đáng kể. Tôi đã sửa đổi câu trả lời của mình để bao gồm điều đó. Tôi không chắc ý của bạn là gì khi giữ phông chữ? Bộ đệm có trống không?
PythonNut 2/2/2015

Tôi đã đề cập đến thuộc tính phông chữ của văn bản trong dòng chế độ (không phải bộ đệm trống).
Srid nói Phục hồi lại

ah, mã sau này của bạn cũng xóa dòng chế độ của khung chính! Nếu điều này là không thể, hãy hoàn nguyên thay đổi đó và tôi sẽ chấp nhận câu trả lời của bạn (nó thỏa mãn câu hỏi).
Srid nói Phục hồi lại

Tôi chỉ nhận thấy điều đó quá. Tôi đã sửa nó. Phông chữ chế độ không thay đổi khi tôi thực hiện, vì vậy tôi không chắc có gì.
PythonNut

5

Đây là điều tốt nhất tôi có thể nghĩ ra:

(with-current-buffer (generate-new-buffer "*empty*")
  (make-frame '((minibuffer . nil)
                (unsplittable . t)
                (buffer-predicate . (lambda (x) nil))
                (height . 2)
                (left-fringe . 0)
                (right-fringe . 0)
                (tool-bar-lines . 0)
                (menu-bar-lines . 0))))

Tôi không thấy cách vô hiệu hóa ít nhất một cửa sổ với một bộ đệm ở đó, nhưng cửa sổ được hiển thị bằng đoạn mã này không được liên kết với bất kỳ tệp nào. Cái buffer-predicateđó ngăn khung hình được chọn để hiển thị bất kỳ bộ đệm (khác) nào, vì vậy nếu bạn có thể xử lý thêm một dòng trống, điều này sẽ làm điều đó.


Nó không hoạt động như mong đợi. Bộ đệm vẫn đang được kích hoạt trong khung mới. Đây là một gif hoạt hình để minh họa: i.imgur.com/07Q3tcW.gifv
Srid nói Phục hồi lại

2
Sử dụng display-buffer-alistcó thể là giải pháp cho việc này.
Kaushal Modi

Tôi không biết tại sao sử dụng org ở đây không tuân thủ buffer-predicate. Sử dụng display-buffer-alistcó thể là một ý tưởng thực sự, nhưng tôi không biết làm thế nào để sử dụng nó để ngăn chặn một khung cụ thể được sử dụng.
Jorgen Schäfer

2
Điều này có thể được sửa chữa với set-window-dedicated-p?
Matthew Piziak

1
Các buffer-predicatelà, theo thông tin, chỉ được sử dụng bởi các other-bufferchức năng, tức là nó không ngăn cản các chức năng khác từ hiển thị bất kỳ bộ đệm trong khung.
politza

3

Một giải pháp khác cho đồng hồ org trong osx

Một hộp nhỏ trong thanh trạng thái. Nó chuyển sang màu đỏ khi bạn không đồng hồ.

minh họa cho hộp màu đỏ, xem trang github

https://github.com/koddo/org-clock-statusbar-app


1
Tôi hơi muộn và không trả lời chính xác câu hỏi, nhưng tôi đưa ra một giải pháp thay thế có thể phù hợp với ai đó.
koddo

3

Giải pháp hiển thị thông tin đồng hồ org trong thanh menu OSX

Đây là một giải pháp thay thế cho vấn đề bạn đã chỉ định:

Tôi sử dụng các ứng dụng khác ngoài Emacs, vì vậy khi tôi chuyển sang chúng (ví dụ: khi sử dụng trình duyệt hoặc thiết bị đầu cuối) tôi vẫn muốn có thể nhìn vào bộ đếm thời gian đang chạy.

Bạn có thể sử dụng điều này để hiển thị thông tin từ đồng hồ org trong thanh thực đơn osx mà bạn hầu như luôn có thể nhìn thấy.

https://github.com/jordonbiondo/osx-org-clock-menubar Có sẵn trên MELPA

Lưu ý rằng điều này đòi hỏi macruby.

Nó trông như thế nào trong khi đồng hồ.

nhập mô tả hình ảnh ở đây


1
Một triển khai đơn giản không dựa vào macruby có thể được thực hiện với emacsclient -e "(org-clock-get-clocked-time)"và bitbar: getbitbar.com
mankoff

Thật tuyệt vời bạn nên viết ra một giải pháp!
Jordon Biondo
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.