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 v
comando ao usar o less
. Agora, quando pressiono v
enquanto 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 q
e 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 $VISUAL
que 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 echo
verificar se as variáveis $EDITOR
e $VISUAL
foram alteradas corretamente.
Quando eu usaria less
para 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 $EDITOR
and $VISUAL
, por exemplo, usando o caminho completo como em my alias emacs=...
com o -nw
sinalizador 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 less
comando. Atualmente não estou familiarizado com nenhuma outra forma de usar a $EDITOR
variável no terminal. Portanto, não tenho certeza se meu problema diz respeito apenas v
ou se é um problema com $EDITOR
.
Eventualmente, vi algumas perguntas relacionadas a isso onde era recomendado adicionar ALTERNATE_EDITOR="";export ALTERNATE_EDITOR
e então tentei sem realmente entender o porquê. Também não há diferença discernível com o v
comando 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 v
parei 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 $TERM
normalmente é, o que já era xterm-256color
para mim. Agora, não estou dizendo que foi isso que atrapalhou meu v
comando, é apenas a linha do tempo onde v
parei de invocar o vi enquanto estava no less
. Mudei tudo de volta para o primeiro código que tentei, mas v
ainda não funcionou para mim.
(Desculpe, é tão longo, só estou tentando explicar o processo, caso isso ajude!) Agora, se eu comentar minhas $EDITOR
adições ao meu .bash_profile, tudo voltará ao normal, o que é bom, eu acho. Então posso usar v
enquanto less
não estiver usando $EDITOR
e $VISUAL
no 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 emacsclient
e 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. less
não será capaz de invocar um alias por meio $EDITOR
de ou $VISUAL
(e nenhum outro processo, exceto possivelmente o próprio shell).
Em vez disso, defina, por exemplo, 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 do seu $PATH
, compilando-o você mesmo ou usando algo como HomeBrew, MacPorts ou Fink, e então simplesmente use export VISUAL='emacs -nw'
.