2012-04-27 26 views
11

Trong .bash_profile của tôi, tôi sử dụng này:Sử dụng emacsclient -t khi cam kết trong Git

export EDITOR=emacsclient 
alias e='emacsclient -t' 

Khi tôi cam kết thay đổi với Git, nó sẽ mở ra một cửa sổ mới emacs, nhưng với emacs --daemon. Làm cách nào để tôi có thể đặt trình chỉnh sửa Git mặc định thành các emacs với cờ t được bật?

+1

Tôi chắc rằng Moritz Bunkus có câu trả lời, nhưng tôi hơi bối rối bởi từ ngữ của bạn. Bạn có nói rằng bạn muốn trình soạn thảo chuẩn của bạn là 'emacsclient -t' (trong trường hợp này bạn có thể chỉ định nó cho giá trị của' EDITOR'), hoặc bạn muốn trình soạn thảo git khác với trình soạn thảo chuẩn của bạn. Và nếu bạn đang chạy 'emacs --daemon', thì emacsclient sẽ kết nối với cờ' -t' đó hoặc ngược lại, vì vậy tôi không chắc ý kiến ​​của bạn về điều đó có nghĩa là gì. – phils

+0

Trên thực tế, yêu cầu xuất phát từ điều này: khi emac bắt đầu, phải mất một thời gian, đó là lý do tại sao tôi sử dụng emacs --daemon.when tôi sử dụng git commit, nó sẽ mở một emacs mới, do đó tôi phải đợi. Tôi muốn mở một cửa sổ emacs sử dụng emacsclient -t. Tôi có rõ không ?? – newlife

Trả lời

0

lý do thực sự của việc này là các phiên bản của emacs.there là một emacs mặc định trên mac, mà phiên bản doesnot có tùy chọn "-t" .Also, có vẻ như git rằng doesnot đọc các thiết lập trong .bash_profile

3

Tôi thường không nói "Đọc Sách hướng dẫn sử dụng tốt", nhưng trong trường hợp này, nó đơn giản được áp dụng. git commit --help có này để nói về chủ đề:

ENVIRONMENT AND CONFIGURATION VARIABLES 
    The editor used to edit the commit log message will be chosen 
    from the GIT_EDITOR environment variable, the core.editor configuration 
    variable, the VISUAL environment variable, or the EDITOR environment 
    variable (in that order). See git-var(1) for details. 
+0

[core] editor = "emacsclient -t" Tôi sử dụng tính năng này trong .gitconfig.Tuy nhiên, nó không hoạt động, bất kỳ đề xuất nào ?? – newlife

15
git config --global core.editor 'emacsclient -t -a=\"\"' 

này sẽ bắt đầu một daemon nếu có chưa được một chạy.

Bạn có thể gặp vấn đề với dấu ngoặc kép, vì nó xuất hiện trong .gitconfig tôi như

[core] 
    editor = emacsclient -t -a=\\\"\\\" 
+1

emacsclient: tùy chọn không hợp lệ - t Thử 'emacsclient --help 'để biết thêm thông tin lỗi: Đã xảy ra sự cố với trình soạn thảo' emacsclient -t -a = \" \ "'. Vui lòng cung cấp thư bằng cách sử dụng tùy chọn -m hoặc -F. Đây là đầu ra khi tôi sử dụng các cài đặt của bạn, Tôi có thể lấy các đặc điểm kỹ thuật này về "dấu ngoặc kép" ở đâu? – newlife

+0

Chắc chắn không cần phải thoát khỏi dấu ngoặc kép trong một chuỗi được trích dẫn một lần? – phils

+0

@newlife os bạn đang sử dụng và phiên bản của emacs là gì? http://linux.die.net/man/1/emacsclient – tacaswell

5
export GIT_EDITOR="`which emacsclient` -t -s $EMACS_SERVER_FILE" 

git dường như muck với biến PATH trước khi gọi EDITOR hoặc GIT_EDITOR của bạn để việc xây dựng trong emacsclient từ/usr/bin được gọi ngay cả khi bình thường các emacsclient từ hơn của bạn đến ngày Emacs sẽ được gọi. Tôi đã giải quyết vấn đề này bằng cách lấy đường dẫn đến tệp thực thi từ một tiến trình con có môi trường riêng của nó mà tôi tin (dù là cách nào nó hoạt động ...).

Đã thử nghiệm trên OS X 10.8.2 với Emacs 24.1 được xây dựng cục bộ, máy chủ đang chạy và ứng dụng khách kết nối qua ổ cắm.

Tôi chưa kiểm tra khách hàng tcp.

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