2012-03-07 82 views

Trả lời

11

shell-command là những gì bạn đang theo dõi.

Hỏi Emacs về nó: C-h f "shell-command". Nó bị ràng buộc với M-!

EDIT: làm rõ hành động chính xác cần thiết

Làm điều này:

M! foo-programnhập

Trường hợp foo-program là tên của tệp thực thi đã biên dịch.

+2

Tôi đã xem và không hữu ích. – clay123

+2

Tôi khuyên bạn nên đọc tài liệu kỹ lưỡng hơn. Đề xuất của event_jr khá hợp lý. – Perry

+1

Tôi đã đọc nó. Tôi rất mới này. Tôi không hiểu một nửa ý nghĩa của nó.Tôi chỉ cần biết những gì để gõ để có được chương trình của tôi để chạy – clay123

18

Một ý tưởng tốt hơn là nên sử dụng một Makefile

---- X Makefile X---- 
build: 
     gcc -o exec_name input.c 
run: 
    ./exec_name 

Và sau đó bạn có thể làm Mx biên dịch và đưa ra lệnh như làm xây dựng để biên dịch chương trình và Mx biên dịch tiếp theo hãy chạy để chạy chương trình.

Một cách khác để chạy sẽ M-x gdb

+1

Tất nhiên bạn muốn làm cho mục tiêu 'run' phụ thuộc vào thực thi và có thể không có đích' build'. Tôi đã từng sử dụng một thiết lập như thế này. Chúng tôi đã có các mục tiêu '%: run','%: gdb', '%: valgrind', v.v. sẽ tạo bất kỳ tệp thi hành nào của chúng tôi và chạy (thông thường, dưới gdb, dưới valgrind). Nó rất hữu ích đặc biệt là nếu biên dịch mất một thời gian dài. –

3

Một cách khác là để chạy chương trình trực tiếp trong vỏ với M-x shell hoặc M-x term để mở vỏ trong bộ đệm trong trường hợp đầu tiên và vỏ thực trong thứ hai. Sau đó, chạy chương trình của bạn ./myprog

3

Bạn luôn có thể sử dụng compile giống như bạn muốn tạo. Điều này là tốt đẹp nếu chương trình của bạn spits ra các tin nhắn có thể được đánh dấu và nhảy lên như một trình biên dịch. Bạn cũng có thể viết một chức năng ngắn như:

(defun run-current-file() 
    "Runs the compilation of the current file. 
Assumes it has the same name, but without an extension" 
    (interactive) 
    (compile (file-name-sans-extension buffer-file-name))) 

để bạn không phải nhập tên tệp mọi lúc. Điều này có lợi ích bổ sung mà bạn có thể để ràng buộc default-directory nếu sản phẩm xây dựng nằm trong một thư mục khác và bạn có thể có tên gọi phức tạp hơn. Tất nhiên bạn có thể thay đổi compile thành shell-command v.v. nếu bạn thích đầu ra đó.

5

Mặc dù đây có thể không phải là phương pháp tối ưu nhất để làm như vậy, nhưng đây là cách rất nhanh để xem chương trình đầu ra của chương trình C.

;; Run C programs directly from within emacs 
(defun execute-c-program() 
    (interactive) 
    (defvar foo) 
    (setq foo (concat "gcc " (buffer-name) " && ./a.out")) 
    (shell-command foo)) 

(global-set-key [C-f1] 'execute-c-program) 

Chỉ cần đặt đoạn mã sau vào tập tin init của bạn, và nhấn Ctrl + F1 để xem kết quả trong minibuffer.

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