2011-01-05 31 views
15

tôi sử dụng emacs như tổng biên tập của-sự lựa chọn của tôi, và kể từ khi tôi đang làm rất nhiều công việc trong một thiết bị đầu cuối tôi luôn luôn chạy emacs như.emacs Chỉnh sửa để Luôn bắt đầu Emacs trong Chế độ Đầu cuối?

emacs -nw 

để nó chạy trong nhà ga thay vì trong một cửa sổ .

Tôi muốn chỉ chạy emacs và yêu cầu nó biết rằng nó sẽ chạy trong thiết bị đầu cuối. Câu hỏi của tôi là - làm cách nào để chỉnh sửa tệp .emacs của mình để đây là hành vi mặc định?

+0

Bạn đang sử dụng hệ điều hành nào? Nhiều bản phân phối Linux có một gói emacs-nox, hoặc một cái gì đó tương tự tên. Điều này được tuân thủ mà không cần hỗ trợ đồ họa, vì vậy sẽ luôn luôn chạy trong một thiết bị đầu cuối. – KeithB

+0

Tôi đang sử dụng Ubuntu 10.10, nếu có thể. – templatetypedef

+0

thú vị đủ, trên Mac OSX, emacs luôn luôn có nghĩa là emacs -nw cho tôi. –

Trả lời

25

Bạn không thể thực hiện việc này trong tệp .emacs. Vào thời điểm tệp đang được phân tích cú pháp, nhị phân emacs "đã chọn" đã chạy.

Bạn có thể cài đặt gói emacs-nox như một người nhận xét đề xuất hoặc tạo bí danh trong trình bao của bạn để "emacs" luôn được coi là "emacs -nw".

Randy

+1

+1 cho đề xuất bí danh - xác định đường đi trong trường hợp này – cristobalito

+0

Cảm ơn câu trả lời chi tiết! Tôi sẽ thử điều đó. – templatetypedef

+1

emacs-nox, wow.Thật là một gói tuyệt vời. Cảm ơn ngài! – meawoppl

14

Tôi đang sử dụng bí danh bash thay vì .emacs để làm điều đó.
Thêm dòng này vào ~/.bashrc của bạn.

alias emacs='emacs -nw' 
2

Có cách nào dễ dàng để giải quyết vấn đề nói chung là không có gì để làm với emacs chút nào và sẽ làm việc cho bất kỳ chương trình mà có thể lựa chọn giữa chạy trong giao diện điều khiển vs X:

unset DISPLAY 

Tất nhiên bạn có thể không muốn đặt nó vào tệp cấu hình để áp dụng trên toàn cầu cho tất cả các phiên của bạn, vì vậy nếu bạn muốn áp dụng cho các emacs, hãy gọi nó từ dòng lệnh như sau:

DISPLAY= emacs 

lưu ý không gian !!! nếu bạn rời khỏi không gian ra nó có nghĩa là bạn đang thiết DISPLAY để emacs thay vì thiết lập DISPLAY để không có gì ... lệnh này là viết tắt của:

DISPLAY=; emacs 

Vì vậy, hoặc sử dụng trên từ dòng lệnh (s) hoặc đặt trong tập lệnh bao bọc trông giống như sau:

#!/bin/bash 
unset DISPLAY 
exec emacs 

Tôi khuyên bạn nên thực hiện lệnh này vì nó sẽ thay thế tập lệnh trình bao bọc của bạn bằng biểu tượng emac; để thấy sự khác biệt giữa hai bạn có thể chạy:

pstree -p 
+1

btw: Tôi tò mò - tại sao bạn muốn luôn chạy các emac trong bảng điều khiển nếu bạn đang chạy trong môi trường X? – aculich

+0

Lệnh thứ ba có dấu chấm phẩy là * NOT * giống như lệnh thứ hai. Nếu bạn thêm dấu chấm phẩy, nó sẽ đặt DISPLAY thành rỗng trong trình bao hiện tại cũng như trong quá trình con emacs. Không có dấu chấm phẩy, nó chỉ áp dụng cho các emacs. Với dấu chấm phẩy nó phá hoại. – Thomas

+0

Tại sao bạn muốn một tỷ cửa sổ mở? Ngoài ra tôi làm tất cả các công việc mã hóa của tôi bên trong 'màn hình', mà không có ý nghĩa với X. @aculich – Thomas

1

Khi tôi lần đầu tiên được thiết lập một "emacs -nw" bí danh cho emacs trong cửa sổ tôi đã bị mắc kẹt trong một tình huống mà tôi nghĩ giải thích tototoshi của đã không làm việc . Tuy nhiên, tất cả những gì được yêu cầu là khởi động lại thiết bị đầu cuối của tôi. Vì vậy, tôi nghĩ rằng giá trị của nó đề cập rằng trong cửa sổ (ít nhất) nếu bạn đang sử dụng emacs trong terminal git bash để tạo tập tin .bashrc và thêm "alias emacs = 'emacs -nw" vào nó (như tototoshi đề cập) bạn có để đóng và mở lại thiết bị đầu cuối của bạn để nó hoạt động.

+0

hoặc, tôi nghĩ rằng, gõ "hạn". có một lệnh để làm điều đó. – Thufir

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