2009-11-06 35 views
5

Tôi đang làm việc với các dự án Ruby on Rails hầu hết thời gian nên tôi cần một cách để lưu dự án và trạng thái của vùng đệm/cửa sổ tôi đang làm việc, chủ yếu là vì tôi thường thấy mình đang chuyển đổi cho một dự án khác trong vài phút và sau đó quay lại dự án tôi đang làm. Desktop.el có vẻ rất gần, ngoại trừ việc lưu cấu hình cửa sổ.Emacs phiên/dự án/quản lý cửa sổ

Đối với những người quen thuộc với TextMate, tôi đang tìm một thứ gì đó giống như tệp dự án của bạn bè mà bạn có thể mở và họ mở một phiên bản khác của trình chỉnh sửa chỉ mở tệp trong dự án đó.

Cảm ơn, Cezar

Trả lời

3

Tôi đã cố gắng đặt mình vào đôi giày của mình và gợi lên giải pháp Emacs ưa thích của tôi. Tốt nhất tôi có thể nghĩ ra là thỉnh thoảng tôi đi vào một chế độ mà tôi không muốn cửa sổ của mình bị kẹt bằng cách xử lý ngắt Emacs, cái mà đòi hỏi các nguồn tài nguyên Emacs khác nhau (bộ đệm/cửa sổ). Nói ví dụ tôi có một ediff đang diễn ra và tôi muốn đi đến bộ đệm đầu để kiểm tra một ý tưởng mà không mucking với quan điểm ediff của tôi, để mượn khái niệm Eclipse. Trong trường hợp này, tôi thường làm C-x 5 2 để hiển thị khung mới. Nếu tôi đã có nhiều khung lên trên màn hình, tôi sẽ làm C-x 5 f để chọn một khung có tên.

Trong trường hợp của bạn, bạn có thể có một bộ khung có tiền tố "proj-x" và một khung khác có tiền tố "proj-y". Trong trường hợp này C-x f proj-x-foo cung cấp công tắc nhanh để xử lý ngắt C-x f proj-y-fee chuyển bạn trở lại. Trong hầu hết các trường hợp, tôi nghĩ bạn đang nói về hai khung hình, thậm chí còn dễ dàng hơn: C-x f o để chuyển đổi giữa hai khung hình.

Tôi nghĩ điểm quan trọng là với Emacs, người ta có thể "thả" những gì bạn đang làm mà không cần phải đóng bất cứ thứ gì, làm điều gì đó khác và sau đó quay trở lại môi trường ban đầu của bạn với ít ồn ào hoặc ồn ào. Đây là một hệ quả cho quan niệm rằng với Emacs bạn có thể có hàng trăm tệp mở đồng thời, tức là bạn không cần phải đóng tệp và sau đó mở tệp khác. Mở tất cả và có một quả bóng. :-) Và khi bạn nắm lấy phong cách này, C-x s là bạn của bạn.

+0

Tôi không muốn có khung mới, tôi chỉ muốn có một tập hợp các tệp mà tôi đang làm việc trong một khung và cửa sổ nhiều lần (thường là 2-3) một trong số đó nên được dired (mà không đóng) – Cezar

1

Có thể bạn đang cố gắng để làm cho các emacs hoạt động như một IDE, mà nó không phải là. Tôi thường có nhiều dự án mở trong các emacs và không bao giờ đóng emacs, không phải trong nhiều tuần. Đây là một trong những lý do chính tôi đã kết thúc trên các emacs năm trước. Về dự án hiện tại của tôi, tôi chuyển đổi giữa java, ruby ​​và Lisp. Tôi cũng cần các tính năng chỉnh sửa jsp, erb, html và css, điều duy nhất tôi chưa phân loại là javascript. Cũng như khả năng tùy chỉnh hoàn toàn môi trường của tôi, đây là sức mạnh của các emacs.

Tôi sử dụng ECB mọi lúc, và thường là di chuyển xung quanh tệp, nó theo tôi, tôi không làm việc từ phối cảnh 'cửa sổ', nhưng từ quan điểm 'Im đây'. Một bộ đệm cụ thể đang mở hay không thực sự là không quan trọng. Tôi cũng sử dụng IDO, vì vậy việc chuyển đổi bộ đệm thực sự dễ dàng và trực quan. Tôi thường có hai bộ đệm hiển thị tối đa (nhưng có khả năng rất nhiều mở). M-X cũng hữu ích để đảm bảo bạn đã lưu vì nó sẽ liệt kê tất cả các bộ đệm chưa được lưu và nhắc bạn về chúng.

Khi tôi phải đóng các emac, tôi thường quay trở lại nơi tôi đã rất nhanh chóng bằng cách chuyển sang thư mục đó và gõ emacs app/controllers/my_controller.rb. Từ đó chuyển hướng đường ray là rất hữu ích. Mũi tên M-Shift-down và chúng tôi đang tắt ...

+0

khi làm việc với ruby ​​trên đường ray, bạn thường có rất nhiều tập tin inde.html tách ra chỉ bằng đường dẫn thư mục mà là một kéo để tìm các tập tin bên phải đặc biệt là khi có hơn 1000 tệp trong dự án của bạn, chưa kể đến việc mở nhiều hơn một dự án – Cezar

+2

Bạn muốn bật "duy nhất". Nếu bạn có foo/index.html và bar/index.html mở, nó sẽ đặt tên các bộ đệm 'foo/index.html' và' bar/index.html' thay vì 'index.html' và' index.html <1> ' – jrockway

+0

@jrockway - Đó là một mẹo tuyệt vời! – wentbackward

3

Tôi thích cấu hình cửa sổ để đăng ký (C-x r w <register_name>) cho các tình huống tương tự như những gì bạn mô tả.Khi bạn đã lưu cấu hình cửa sổ vào thanh ghi, chỉ cần C-x r j <register_name> để quay lại cấu hình đã lưu của bạn.

0

eprojecteproject-open-all-project-files, đảm bảo tất cả các tệp trong dự án hiện tại được mở (hoặc gọi nó với tiền tố arg để chọn dự án tùy ý) và eproject-kill-project-buffers đóng tất cả các tệp trong dự án hiện tại. Điều này cho phép bạn dễ dàng bắt đầu với một dự án và cho phép bạn dọn dẹp khi bạn hoàn thành.

+0

heya jrockway, giải pháp của bạn chỉ hoạt động cho một số lượng tệp tương đối nhỏ (không phải hàng nghìn tệp như trong trường hợp của tôi) – Cezar

+0

Mở hàng nghìn tệp có eproject không chậm hơn mở chúng theo cách thủ công. Tất nhiên, tại sao các dự án của bạn chứa hàng ngàn tệp? – jrockway

Các vấn đề liên quan