Como eu inicio GUI Emacs da linha de comando no OSX?
Baixei e instalei o Emacs em http://emacsformacosx.com/ .
Aceitarei uma resposta que cumpra todos os seguintes critérios:
- A janela do emacs abre na frente da janela do meu terminal.
- Digitar "emacs" abre uma janela GUI do Emacs. Encontrar arquivos nessa janela irá, por padrão, procurar no diretório de onde iniciei o Emacs.
- Digitar "emacs foo.txt" quando foo.txt existe abre uma janela GUI do Emacs com foo.txt carregado.
- Digitar "emacs foo.txt" quando foo.txt não existe abre uma janela GUI do Emacs com um buffer de texto vazio chamado "foo.txt". Fazer ^ X ^ S naquele buffer salvará foo.txt no diretório de onde iniciei o Emacs.
macos
emacs
command-line
Johan Walles
fonte
fonte
emacsclient -c -a "" "$@"
commandRespostas:
Chame o seguinte script de "emacs" e coloque-o em
PATH
algum lugar:Isso cobre os números 2, 3 e 4.
Para o nº 1, coloque isso em algum lugar do seu arquivo .emacs:
O site emacsformacosx.com agora tem uma página How-To , que é de onde veio o trecho principal. Há mais informações sobre como executar
emacsclient
e conectar o Emacsgit mergetool
.fonte
~/foo
e desejo abrirbar.txt
, digito,gmacs bar.txt
mas ele cria um novo arquivo em em~/bar.txt
vez de abrir~foo/bar.txt
. Estou fazendo algo errado?No seu shell, use o alias do comando 'emacs' para apontar para o aplicativo OSX emacs
No meu shell (executando o bash padrão), tenho o seguinte (no meu .bashrc)
Em seguida, digitar emacs na linha de comando inicia o aplicativo emacs.
Eu recomendaria, entretanto, que você abra uma cópia do emacs e apenas mantenha-o instalado e funcionando. Se for esse o caso, e você quiser carregar um arquivo em uma cópia existente do emacs, pode usar o emacsclient colocando o seguinte em seu .bashrc:
Em seguida, adicione o seguinte ao seu arquivo .emacs para iniciar o servidor emacs (que recebe as chamadas emacsclient)
Então você pode digitar
para carregar uma cópia do .bashrc em uma sessão existente do emacs!
fonte
Isso melhora a resposta de David Caldwell ao iniciar o Emacs em segundo plano:
Conforme declarado na outra resposta, isso cobre os números 2, 3 e 4. Para # 1, colocar isso em algum lugar no seu arquivo .emacs:
(x-focus-frame nil)
.Observe que o seguinte não funciona para mim - não inicia o Emacs em um diretório especificado na linha de comando (por exemplo
emacs .
)fonte
Suponho que você também:
Se sim, então acho que isso satisfaz os quatro critérios originais, mais um:
ele sempre abrirá em primeiro plano (com x-focus-frame).
Ele irá abrir uma janela existente do emacs no modo dired.
Se o emacs já estiver em execução e tiver um servidor, ele será aberto na janela existente e entrará em primeiro plano.
Corrigir.
Um extra:
O controle retorna à sessão do terminal imediatamente após digitar o comando.
~ / bin / emacs
fonte
No Mountain Lion, estou usando a porta de Yamamoto Mitsuharu https://github.com/railwaycat/emacs-mac-port com o seguinte alias:
e satisfaz todos os seus critérios.
fonte
Solução simples ...
Muitas soluções muito complexas para este problema são postadas aqui. Isso é justo porque não parece trivial.
No entanto, essa solução funciona muito bem para mim.
Uso
Vamos desvendar o que está acontecendo:
ec
argumentos para o emacsclient e não (-n
) espere pelo emacs antes de continuar.2> /dev/null
)1
([[ $? == 1 ]]
)fonte
Acabei de construir o emacs com o gerenciador de pacotes homebrew de acordo com este guia: http://www.emacswiki.org/emacs/EmacsForMacOS com brew install --cocoa emacs Depois disso, deve-se iniciar a versão .app para obter gui, que no meu caso era /usr/local/Cellar/emacs/24.3/Emacs.app/Contents/MacOS/Emacs
fonte
Para melhorar ainda mais a resposta de David James, o seguinte funciona para mim:
De acordo com as instruções para abrir um arquivo de um terminal encontrado em http://www.emacswiki.org/emacs/EmacsForMacOS#toc20
combinando isso com a resposta de David Jame, criei o seguinte script emax bash e coloquei-o em meu caminho em ~ / bin
Advertência : para fazer com que o emacs abra o diretório atual no modo Dired by name , você precisa usar
Meio Ambiente:
fonte
As outras respostas aqui não funcionaram muito bem para mim. Em particular, na minha máquina, o script bash
sempre abre o emacs no diretório inicial. Para abri-lo no diretório de trabalho atual, tive que fazer
em vez de.
fonte
Compile o Emacs de acordo com as seguintes etapas:
E você está pronto! Pode ajudar baixar e instalar o XQuartz, mas é apenas minha opinião.
fonte
Este é o meu script para abrir emacs / emacsclient no osx.
fonte
Em todos os itens acima, ao usar "abrir" - certifique-se de usar a opção "--args"
Não faça isso:
Em vez disso:
a
--args
opção evita que "open" consuma várias opções destinadas ao Emacs.fonte