Sostituisci globalmente Vi con Vim su Fedora


8

Sui sistemi basati su Debian il sistema alternativo gestisce sia il file eseguibile viche quello vimeseguibile. Quindi, se vimè installato e lo esegui vi, ottieni anche vim, che trovo molto bello, perché odio assolutamente il classico vi.

Su Fedora 17 "Beefy Miracle", il sistema di alternative ovviamente non gestisce nessuno dei due. Ma c'è un file di profilo in /etc/profile.d/vim.shcui aggiunge un alias di shell da vieseguire vim. Per qualche motivo non lo fa per gli utenti del sistema, incluso root.

Ma anche se ho impostato manualmente un alias per tutti gli utenti, quando chiamo sudo visto iniziando classico viinvece di vim. Questo probabilmente perché sudo non avvia una shell o i file di profilo vengono eseguiti solo in sessioni di shell interattive.

Quello che sto cercando ora è un modo per disinstallare vicompletamente Classic per creare un collegamento simbolico che sopravviva anche agli aggiornamenti di sistema. Come posso rimuovere classico vima non vimsu Fedora 17? O c'è anche un modo migliore?

Aggiornamento : Con yum provides viho scoperto che viè fornito dal pacchetto vim-minimal. Ma non posso semplicemente rimuoverlo perché rimuove automaticamente il pacchetto sudocon esso. Anche se lo rimuovo e provo a installarlo di sudonuovo in seguito, vim-minimalviene di nuovo installato come dipendenza.

Aggiornamento : come richiesto, output di rpm -qf /usr/bin/vi:

vim-minimal-7.3.444-1.fc17.x86_64

E ls -l /usr/bin/vi:

-rwxr-xr-x. 1 root root 782248 13. Feb 2012  /usr/bin/vi

rm /usr/bin/vi; ln -s /usr/bin/vim /usr/bin/vi. Non una risposta perché troverei personalmente un modo migliore (o digitare vim se volessi vim).
Giordania,

@jordanm intendevo esattamente questo quando ho chiesto di fare un link simbolico per sopravvivere a un aggiornamento. Come assicurate che il collegamento non venga sovrascritto quando il vim-minimalpacchetto viene aggiornato?
aef

È /usr/bin/viun collegamento simbolico (a cosa) o un file normale su Fedora? Se un file normale, da quale pacchetto?
Gilles 'SO- smetti di essere cattivo' il

@Gilles Non capisco la tua domanda.
aef

Pubblica l'output di ls -l /usr/bin/vie rpm -qf /usr/bin/vi.
Gilles 'SO- smetti di essere cattivo' il

Risposte:


6

Il tuo viè Vim, ma invocato come vi, quindi entra in modalità di compatibilità storica. L'azione consigliata è che se si desidera eseguire Vim e non vi, eseguire vime non vi. Tuttavia, se si desidera vieseguire sempre Vim su tutti gli account del sistema, sovrascriverlo in /usr/local/bin:

cat >/usr/local/bin/vi <<\EOF
#!/bin/sh
exec /usr/bin/vim "$@"
EOF
chmod 755 /usr/local/bin/vi

Questa è davvero una bella idea.
aef,

2
Funziona anche semplicemente creando un collegamento simbolico con sudo ln -s /usr/bin/vim /usr/local/bin/vi. Ma devi aggiungere /usr/local/binil lato più a sinistra della Defaults secure_path="…"configurazione in visudo, altrimenti il ​​link simbolico non verrà trovato.
aef,

Penso che ci siano alcuni errori di battitura nella sintassi qui. Intendi cat >/usr/local/bin/vi(no cat >/usr/local/bin)? Intendi chmod 755 /usr/local/bin/vi(no .../vim)?
DW

Per raccoglierlo con il PATH predefinito di root, crea il link simbolico all'indirizzo /usr/local/sbin/vi.
hackel,

5

# echo 'alias vi="vim"' >> /etc/bashrc' o # alternatives --install /usr/bin/vi vi /usr/bin/vim 900


E questo non viene cancellato quando il vim-minimalpacchetto viene aggiornato?
aef

creare un alias .bashrcè una buona pratica ... per me @llua ha dato una buona risposta
maniat1k,

0

FYI recente fedora (almeno dal 18) installa quell'alias gobally in /etc/profile.duna volta vim-enchancedè installato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.