Trong emacs làm thế nào tôi có thể giữ nhiều tệp mở cùng một lúc?


10

Hiện tại tôi sử dụng C-xC-fđể mở một tập tin mới, nhưng nó khá tẻ nhạt.


Mục tiêu của bạn là gì? Mở một loạt các tập tin cùng một lúc? Hoặc quản lý nhiều tập tin đã mở?
viam0Zah

Hay bạn chỉ muốn xem nhiều tập tin cùng một lúc? Bởi vì Emacs giữ cho tất cả các tệp này "mở" (theo nghĩa nào đó, chúng được tải, nhưng không "mở" theo nghĩa "mô tả tệp là mở").
Jürgen A. Erhard

Tôi muốn chỉnh sửa một số tệp nguồn của một chương trình
Yazz.com

Truy

Câu trả lời:


19

Khi bạn tải một tệp trong Emacs bằng tệp tìm kiếm (được ràng buộc Ctrl-x Ctrl-ftheo mặc định), nó sẽ được đặt vào "bộ đệm". Miễn là bạn không giết bộ đệm, nó vẫn còn trong bộ nhớ, bạn không phải tải lại nó.

Bạn truy cập các tệp đã tải (bộ đệm) bằng bộ chuyển đổi sang bộ đệm (bị ràng buộc Ctrl-x b). Nhấn các phím, sau đó nhập tên bộ đệm bạn muốn chuyển sang (theo mặc định đó là tên cơ sở cho bất kỳ tệp được tải nào).

Bạn cũng có thể nhấn Ctrl-x Ctrl-bđể có danh sách các bộ đệm hiện có. Và nhấp vào bất kỳ bộ đệm nào ở đó bằng chuột để chuyển sang nó (IIRC, hiếm khi sử dụng chuột với Emacs ;-))

Bạn cũng có thể chia màn hình thành hai (hoặc nhiều) phần để xem các tệp (bộ đệm) khác nhau với Ctrl-x 2. Ban đầu, điều này cho thấy bộ đệm tương tự hai lần. Chuyển sang bộ đệm khác trong một trong các cửa sổ để xem tệp khác.


1
Cx 3 cũng có thể được sử dụng để chia đôi màn hình, Cx 0 để chỉ hiển thị một bộ đệm cùng một lúc.
Rémi

3

Cx b và Cx Cb là những gì bạn muốn. Cũng xem xét thử iswitchb hoặc ido. Vì tôi bắt đầu sử dụng những chương trình mà tôi muốn mọi chương trình tôi sử dụng có thể chuyển đổi tab / cửa sổ / tài liệu nhanh chóng và thuận tiện như emacs. Thường thì tôi có 50 tệp trở lên mở trong emacs, bạn có thể tìm thấy tệp bạn muốn rất nhanh với iswitchb hoặc ido.


1

Ngoài ra, nếu bạn đang sử dụng phiên bản đồ họa của emacs, bạn có thể thực hiện ctrl-x 5 b để mở bộ đệm hiện có trong cửa sổ mới (được gọi là khung trong emacs-speak) hoặc ctrl-x 5 f để tải tệp mới trong một cửa sổ mới


1
cx 5 b cũng hoạt động ở chế độ tty, nhưng chuyển khung hình gây khó chịu ở chế độ tty :)
Justin Smith

@Justin Cảm ơn. Tôi chưa bao giờ chơi với khung hình trong một tty. Có bất kỳ lợi ích hơn chỉ sử dụng nhiều bộ đệm.
KeithB

Bạn có thể sử dụng khung so với cửa sổ theo cách bạn sẽ sử dụng không gian làm việc so với cửa sổ trong trình quản lý cửa sổ Linux - tức là. để làm việc với mã elisp khung 1 có hai cửa sổ, một cửa sổ có tệp thông tin cho elisp, cửa sổ còn lại để thử mã tương tác, khung 2 chỉ có một cửa sổ, với bất kỳ tệp nào bạn đang chỉnh sửa (vì vậy bạn có thể nhìn thấy nhiều dòng càng tốt nó càng không tốt). Với một liên kết phím tốt cho khung hình khác, đó có thể là một sự sắp xếp rất hiệu quả nếu bạn vì một lý do nào đó không muốn chạy X.
Justin Smith

0

Bạn có thể dễ dàng mở nhiều tệp cùng một lúc (hoặc hành động theo chúng theo những cách khác).

  1. Sử dụng C-x dđể truy cập một thư mục (thư mục), trong đó liệt kê tất cả các tệp và thư mục con của nó.

  2. Đánh dấu các tệp bạn muốn mở (hoặc hành động theo một cách khác). Bạn có thể đánh dấu các tệp riêng lẻ hoặc theo nhóm dựa trên các đặc điểm khác nhau, bao gồm các mẫu tên tệp. Xem các menu thanh menu MarkRegapi - nó hiển thị cho bạn một số khả năng đánh dấu có sẵn, cũng như các phím tắt của chúng.

Ví dụ:

  • % m đánh dấu các tệp có tên khớp với biểu thức chính quy.

  • % g đánh dấu các tệp có nội dung khớp với biểu thức chính quy.

  • * * đánh dấu các tập tin thực thi.

Để mở tất cả các tệp được đánh dấu cùng một lúc, bạn cần tải thư viện chuẩn dired-x.el. Làm M-x load-library dired-xhoặc đặt (require 'dired-x)trong tập tin init của bạn.

Sau đó, bạn có thể sử dụng F( dired-do-find-marked-files) để truy cập tất cả các tệp được đánh dấu cùng một lúc. Sử dụng C-x C-bđể xem danh sách các bộ đệm mở, nơi bạn có thể chọn trong số các bộ đệm tệp đó.

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.