O que eu fiz e quando as coisas mudaram:

O que eu fiz e quando as coisas mudaram:

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 perguntas importantes em diferentes comunidades do stackexchange, não descobri e aparentemente (espero que apenas temporariamente) estraguei meu vcomando ao usar o less. Agora, quando pressiono venquanto leio um arquivo 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, pelo que sei, e não consigo editar nenhum texto. Felizmente ainda consigo sair do uso qe não percebo mais nada acontecendo.

O que eu fiz e quando as coisas mudaram:

Estou usando o emulador de terminal fornecido com o mac osX, mas baixei o XQuartz. Usando o homebrew cask, instalei o emacs.

Muitas perguntas no stackexchange fizeram um ótimo trabalho explicando as variáveis $EDITOR​​​​e $VISUALque podem ser definidas em 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 o tenho atualmente em 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 saiba) mudou. Eu costumava echoverificar se as variáveis $EDITOR​​​​e $VISUALforam alteradas corretamente.

Quando eu usaria lesspara ler um arquivo, ainda poderia digitar v, mas meu terminal usaria vi para editar o arquivo em vez do emacs desejado. Então tentei mudar a forma como defini $EDITORand $VISUAL, por exemplo, usando o caminho completo como em my alias emacs=...com o -nwsinalizador em vez de enw. E também tentei remover as aspas. Nada disso fez nada diferente que eu pudesse dizer.

Infelizmente, como estou apenas começando e não tenho nenhuma tarefa concreta para trabalhar, estou apenas brincando com comandos e arquivos básicos, e é por isso que tenho usado o lesscomando. Atualmente não estou familiarizado com nenhuma outra forma de usar a $EDITORvariável no terminal. Portanto, não tenho certeza se meu problema diz respeito apenas vou se é um problema com $EDITOR.

Eventualmente, vi algumas perguntas relacionadas a isso onde era recomendado adicionar ALTERNATE_EDITOR="";export ALTERNATE_EDITORe então tentei sem realmente entender o porquê. Também não há diferença discernível com o vcomando em less.

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

Antes de fazer a última adição de código, verifiquei o que $TERMnormalmente é, o que já era xterm-256colorpara mim. Agora, não estou dizendo que foi isso que atrapalhou meu vcomando, é apenas a linha do tempo onde vparei de invocar o vi enquanto estava no less. Mudei tudo de volta para o primeiro código que tentei, mas vainda não funcionou para mim.

(Desculpe, é tão longo, só estou tentando explicar o processo, caso isso ajude!) Agora, se eu comentar minhas $EDITORadições ao meu .bash_profile, tudo voltará ao normal, o que é bom, eu acho. Então posso usar venquanto lessnão estiver usando $EDITORe $VISUALno meu .bash_profile. No entanto, euquererpara que isso seja alterado e é aqui que está o meu dilema. Esta é provavelmente uma pergunta trivial, mas eu apreciaria muito qualquer conselho ou visão.

PS- Ao tentar solucionar esse problema, me deparei emacscliente posso usar esse comando, mas não entendo por que deveria usá-lo em vez do meu enw.

Responder1

Os aliases estão "ativos" apenas na sessão atual do shell. lessnão será capaz de invocar um alias por meio $EDITORde ou $VISUAL(e nenhum outro processo, exceto possivelmente o próprio shell).

Em vez disso, defina, por exemplo, VISUALpara

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

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

informação relacionada