Como alterar / consertar o comando v em menos usando um perfil de shell?

1

Estou começando a aprender bash e emacs e queria mudar meu editor padrão do vi para o emacs. Depois de passar por muitas questões interessantes em diferentes comunidades do stackexchange, eu não percebi isso e aparentemente (apenas temporariamente) estraguei meu comando v quando usei less . Agora, quando pressiono v ao ler um arquivo em less , em vez de abrir o vi (o padrão) ou o emacs (o que eu gostaria), ele não faz nada; Ou seja, ele permanece em less , até onde eu sei, e não consigo editar nenhum texto. Felizmente, ainda posso sair usando q e não percebo mais nada agindo.

O que fiz e quando as coisas mudaram:

Estou usando o emulador de terminal fornecido com o mac osX, mas eu tenho o XQuartz baixado. Usando o casco de homebrew eu instalei o emacs.

Muitas perguntas sobre o stackexchange fizeram um ótimo trabalho explicando as variáveis $EDITOR e $VISUAL que podem ser definidas no meu .bash_profile. Como meu macbook vem com uma versão mais antiga do emacs já instalada, certifiquei-me de usar a versão atual do emacs instalada pelo homebrew.

Como estou apenas começando a aprender tudo isso, não consegui determinar a melhor maneira de configurar tudo. Aqui está como eu tenho atualmente no meu .bash_profile:

# changing emacs from the default osX version to the version obtained from homebrew                 
alias emacs="/usr/local/Cellar/emacs/25.2/Emacs.app/Contents/MacOS/Emacs"
alias enw="emacs -nw"

# setting emacs as the editor in term instead of vi                                                
EDITOR="enw";export EDITOR
VISUAL="enw";export VISUAL

Depois de adicionar o código acima ao meu .bash_profile, nada significativo (que eu poderia dizer) mudou. Eu usei echo para verificar se as variáveis $EDITOR e $VISUAL foram alteradas corretamente.

Quando eu usaria less para ler um arquivo, eu ainda poderia digitar v , mas meu terminal usaria o vi para editar o arquivo em vez do emacs desejado. Por isso, tentei alterar a forma como defini $EDITOR e $VISUAL , por ex. usando o caminho completo como no meu alias emacs=... com o -nw flag em vez de enw . E também tentei remover as cotações. Nada disso fez algo diferente que eu pudesse dizer.

Infelizmente, como estou apenas começando e não tenho nenhuma tarefa concreta para trabalhar, estou mexendo com comandos e arquivos básicos, e é por isso que tenho usado o comando less . Atualmente não estou familiarizado com nenhuma outra maneira de usar a variável $EDITOR enquanto estiver no terminal. Por isso, não tenho certeza se meu problema pertence somente a v ou se é um problema com $EDITOR .

Eventualmente, eu vi algumas questões relacionadas a isso, nas quais foi recomendado adicionar ALTERNATE_EDITOR="";export ALTERNATE_EDITOR , então testei sem realmente entender o porquê. Também não há diferença perceptível com o comando v em less .

Depois de mais algumas pesquisas, descobri essa pergunta, que parece ser a mais próxima do meu plano original (embora eu não estivesse tentando entender nada do jeito que eu entendi; e eu não entendo o que 'paginação' é infelizmente). Então eu mudei $EDITOR="enw" para $EDITOR="env TERM=xterm-256color enw" e foi aproximadamente quando v parou de fazer qualquer coisa enquanto lia um arquivo com less .

Antes de fazer a última adição de código, verifiquei o que é normalmente $TERM , que já era xterm-256color para mim. Agora, não estou dizendo que foi isso que atrapalhou meu comando v , mas sim a linha do tempo em que v parou de chamar o vi enquanto estava em less . Eu mudei tudo de volta para o primeiro código que eu tentei, mas v ainda não funciona para mim.

(Desculpe, isso é tão longo, apenas tentando explicar o processo caso isso ajude!) Agora, se eu comentar minhas adições $EDITOR ao meu .bash_profile, tudo volta ao normal, o que é bom, eu acho. Assim, posso usar v em less , desde que eu não esteja usando $EDITOR e $VISUAL em meu .bash_profile. No entanto, eu quero que isso mude e então é aí que está o meu dilema. Esta é provavelmente uma questão trivial, mas eu agradeceria muito qualquer conselho ou insight.

PS - Ao tentar resolver esse problema, deparei com emacsclient e posso usar esse comando, mas não entendo por que devo usá-lo em vez do meu enw .

    
por Sleepy 17 29.05.2017 / 23:16

1 resposta

2

Aliases são apenas "ativos" na sessão atual do shell. less não poderá chamar um alias através de $EDITOR ou $VISUAL (e nenhum outro processo, exceto possivelmente a própria shell, também).

Em vez disso, defina, por ex. VISUAL para

export VISUAL='/usr/local/Cellar/emacs/25.2/Emacs.app/Contents/MacOS/Emacs -nw'

ou instale emacs em um local padrão acessível através de seu $PATH , compilando-o você mesmo ou usando algo como HomeBrew, MacPorts ou Fink e, em seguida, simplesmente use export VISUAL='emacs -nw' .

    
por 29.05.2017 / 23:24