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
.