Alterar a versão padrão do Nano no Mac OS X

1

Eu tenho o nano 2.0.6 como padrão no meu terminal Mac OS X ao executar nano . Eu tenho nano 2.9.1 em /usr/local/Cellar/nano/2.9.1/bin/nano .

Como eu altero o padrão nano para a versão 2.9.1 no terminal?

Estou executando o Mac OS X 10.13.1.

    
por Michael Nielsen 06.12.2017 / 10:33

3 respostas

2

Esta outra resposta é boa, especialmente como uma substituição temporária. Por uma questão de completude, este é o ponto principal:

export PATH="/usr/local/Cellar/nano/2.9.1/bin:$PATH"

O problema é: se você precisar de uma solução permanente para várias ferramentas, então com uma abordagem tão simples, o seu $PATH irá inchar desnecessariamente.

Isto é como evitar isto (no Debian, a questão é para o Mac OS X, mas eu acredito que a solução também se aplica ou pode ser facilmente adaptada). Primeiro crie seu próprio bin/ :

mkdir ~/bin/

(Editar: no macOS, ~/Library/bin/ ajusta-se à organização da pasta pessoal um pouco melhor. Decidi não alterar minha resposta, mas adapte esse caminho às suas necessidades.)

Em seguida, modifique seu $PATH :

PATH=~/bin:"$PATH"

(Veja nota 1 abaixo se você quiser torná-lo permanente.)

Em seguida, crie uma ligação simbólica do nano (e de qualquer outro binário) desejado para o seu bin/ :

personalizado
ln -s /usr/local/Cellar/nano/2.9.1/bin/nano ~/bin/

(Veja nota 2 abaixo se você quiser usar este nano imediatamente.)

Essa abordagem tem as seguintes vantagens:

  • seu $PATH permanece relativamente curto e limpo;
  • com ls -l ~/bin/ você pode facilmente dizer quais ferramentas você substitui com o que; isso é muito melhor do que analisar um $PATH inchado que especifica diretórios; cada diretório pode incluir muitos executáveis e você precisa ls para conhecê-los;
  • removendo um link simbólico, criá-lo novamente é muito mais fácil do que modificar $PATH , especialmente de dentro de um script;
  • você também pode colocar seus próprios scripts em ~/bin/ .

Nota 1: no meu Debian o /etc/skel/.profile inclui o seguinte código:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Meu ~/.profile foi criado como uma cópia de /etc/skel/.profile , portanto, o código está lá desde o início. Isso significa que toda nova sessão de shell ajusta seu $PATH para incluir minha conta privada bin/ ; tudo que eu tinha que fazer era criar o diretório.

Observação 2: ao modificar $PATH no meio de uma sessão (por exemplo, para testar minha solução), lembre-se de que seu shell pode lembrar o antigo local de qualquer executável que ele já consultou, de acordo com o antigo $PATH . Conchas comuns usam hash embutidas para gerenciar isso. Use hash -r , se necessário.

Se você personalizar $PATH no início de uma sessão de shell (como em .profile ), então não há esse problema.

    
por 06.12.2017 / 13:56
2

Você pode criar um link simbólico de /usr/local/Cellar/nano/2.9.1/bin/nano a /usr/local/bin

ln -s /usr/local/Cellar/nano/2.9.1/bin/nano /usr/local/bin/nano

ou você pode criar um alias.

alias nano=/usr/local/Cellar/nano/2.9.1/bin/nano
    
por 06.12.2017 / 18:47
1

Parece:

export PATH="/usr/local/Cellar/nano/2.9.1/bin:$PATH"

faz o truque.

    
por 06.12.2017 / 11:10