como cd para pwd do emacsclient ao sair

0

Alguém pode fornecer um gancho para alterar o diretório para o diretório atual do emacsclient ao sair do emacsclient?

Muitas vezes, navego para alguns arquivos via terminal, abro o emacsclient para editar alguns arquivos, depois saio do emacsclient para executar alguns comandos shell em arquivos no mesmo diretório. Eu acho isso mais satisfatório do que algumas outras opções que envolvem a abertura de um terminal dentro do emacs (incluindo popshell, M-x!, Multi prazo, etc)

No entanto, às vezes eu também visito arquivos em outros diretórios enquanto uso o emacsclient, depois quero sair do emacsclient para executar alguns comandos shell do mesmo diretório onde eu estava editando os arquivos. No entanto, quando eu saio do emacsclient, eu volto ao diretório original onde abri o emacsclient, depois tenho que navegar para o mesmo diretório usando cd. Isso é inconveniente & leva a erros quando eu não percebo, já que a estrutura de arquivos dentro dos diretórios é semelhante / idêntica.

Mais informações de fundo: Eu inicio o emacs --daemon e, em seguida, abro o emacsclient -nw em um terminal quando tenho alguns arquivos rápidos para editar no meu diretório de trabalho atual ou próximo dele. Eu descobri que 'C-x C-c' irá sair do emacsclient, mas também mata o daemon emacs, então eu uso 'C-x 5 0' ou 'C-x #' para sair apenas do cliente.

    
por raco 03.04.2014 / 17:29

1 resposta

0

emacsclient é um comando shell comum, por isso não pode alterar a ideia da shell do que é o diretório atual.

Você pode, no entanto, chamar emacsclient assim:

$ cd "$(emacsclient -e '(progn (find-file ....) (print default-directory))')"

ou seja, ter emacs imprimir o novo nome do diretório quando o cliente retornar.

Não será fácil acertar, e o esforço não vale a pena.

Se você está fazendo mais do que uma simples edição no seu emacsclient, você deve estar usando o emacs e seu shell.

    
por 03.04.2014 / 18:16