Executando o emacs no cygwin

6

Eu instalei o Emacs que vem com o Cygwin. Como posso fazer com que o Cygwin execute o Emacs em sua própria janela, em vez da janela do console do Cygwin?

Eu gosto de como, no Ubuntu, quando eu executo o Emacs no terminal, ele abre a GUI do Emacs.

    
por starcorn 05.01.2011 / 21:19

2 respostas

6

Precisa ter um X-server em execução e instalar a versão x do emacs, o cygwin inclui ambos (se você selecionar os pacotes corretos durante a instalação).

O X-server provavelmente foi iniciado com o comando startx , uma vez instalado.

    
por 05.01.2011 / 21:27
4

Uma solução não-X é o pacote emacs-w32 em Editores na configuração do cygwin. Ele roda o emacs como um aplicativo nativo do Windows, mas ainda é puro Cygwin. Se você iniciá-lo diretamente de um atalho, talvez goste dessas configurações em ~ / .emacs:

Adicione cygwin ao caminho e ao caminho exec se o cygwin não estiver no seu PATH por padrão:

(setenv "PATH" (concat "/bin:/usr/bin:/usr/local/bin:" (getenv "PATH")))
(nconc exec-path '("/bin" "/usr/bin" "/usr/local/bin"))

Se você compila java ou outras coisas que geram nomes de arquivos como C: \ whatever, você pode primeiro editar o / etc / fstab e adicionar uma montagem de C: \ to / c como:

C: /c ntfs binary,user 1 1

E, em seguida, tratar os arquivos que começam com C: como "nomes de arquivos mágicos" que são traduzidos para nomes de arquivos no estilo Cygwin com isso em ~ / .emacs. Aqui estou simplesmente fazendo duas substituições de regex no primeiro argumento e ignorando o resto. Alguém provavelmente deve criar um .el para isso, torná-lo mais robusto e publicá-lo no link :

; When in cygwin, allow C:\whatever to turn into /c/whatever
(defun cygwin-name-hook (operation &rest args)
  "Turn Windows filenames into Cygwin filenames."
  ;; Handle all operations the same
  (let ((first (car args))
        (inhibit-file-name-handlers
         (cons 'cygwin-name-hook
               (and (eq inhibit-file-name-operation operation)
                    inhibit-file-name-handlers)))
        (inhibit-file-name-operation operation))
    (setq first (replace-regexp-in-string "^C:" "/c" first t))
    (setq first (replace-regexp-in-string "\\" "/" first t))
    (apply operation (cons first (cdr args)))))

(add-to-list 'file-name-handler-alist '("^[Cc]:" . cygwin-name-hook))

Então, se você executar o emacs -nw dentro do mintty, você pode gostar de reconhecer mais chaves, colocar em ~ / .emacs:

;***** For mintty
(define-key function-key-map "\e[1;5m" [(control ?-)])
(define-key function-key-map "\e[1;5k" [(control ?=)])
(define-key function-key-map "\e[1;5q" [(control ?1)])
(define-key function-key-map "\e[1;5s" [(control ?3)])
(define-key function-key-map "\e[1;5t" [(control ?4)])
(define-key function-key-map "\e[1;5u" [(control ?5)])
(define-key function-key-map "\e[1;5w" [(control ?7)])
(define-key function-key-map "\e[1;5x" [(control ?8)])
(define-key function-key-map "\e[1;5y" [(control ?9)])
(define-key function-key-map "\e[1;5p" [(control ?0)])
    
por 04.04.2013 / 01:57

Tags