Jak zrobić symboliczny link do / usr / bin / vim, ale z parametrami początkowymi?

13

Po make&make installvimie ze źródła znalazłem wiele symbolicznych linków w vimie /usr/local/bin, takich jak evim, rvim, view ...

Strona vim(1)man powiedziała, że ​​„rvim” jest równoważne z „vim -Z” i tak dalej.

Teraz zastanawiam się: czy mogę nawiązać takie symboliczne połączenie ze ln(1)sobą, a jeśli tak, to w jaki sposób?

Bigeast
źródło
1
Czy masz na myśli make && make install? Tylko jeden &skompiluje się w tle i spróbuje zainstalować na pierwszym planie.
Kevin
@Kevin Myślę, że to kwestia przyzwyczajenia.
Bigeast

Odpowiedzi:

25

Nie możesz tego zrobić bez napisania odrobiny kodu.

Te skróty dowiązań symbolicznych działają, ponieważ vimsą napisane w ten sposób. Sprawdza, jak (pod jaką nazwą) został uruchomiony i działa tak, jakby został wywołany z odpowiednimi opcjami wiersza poleceń.
To zachowanie jest zapisane w pliku wykonywalnym, nie jest to sztuczka wykonywana przez dowiązanie symboliczne.

Więc jeśli chcesz zrobić to sam, najłatwiej jest napisać mały skrypt otoki, że execów vimz opcji chcesz:

#!/bin/sh
exec vim <options you want> "$@"

Na "$@"końcu przekazuje wszystkie opcje wiersza poleceń podane skryptowi wraz z vimem.

Mata
źródło
5

Możesz to zrobić na okrągło za pomocą konfiguracji powłoki. Coś jak

alias big_vim='gvim -p -geom 126x512'

działałby w bash / zsh. Pozwala ci dostosowywać rzeczy bez bałaganu w sudo / root.

Sardathrion - przeciw nadużyciom SE
źródło
1
bashNawiasem mówiąc, to nie zadziała ... alias big_vim='gvim -p -geom 126x512'Zamiast tego należy zdefiniować alias .
2

Nie możesz tego zrobić.

VIM sprawdza swoją ścieżkę działania na początku, np. Poprzez połączenie oryginalnego pliku binarnego z rvimem, ścieżka działania staje się /path/to/rvim, w takim przypadku VIM doda -Zparametr automatycznie, nawet jeśli nie określiłeś tego.

Ale jeśli używasz VIMa tylko w terminalu, powinieneś:

W przypadku bash dodaj alias do ~ / .bashrc

alias vim='vim -Z'

Zmień parametr w zależności od potrzeb.

W przypadku csh / tcsh usuń =symbol,

na przykład alias vim vim -Z

stokrotka
źródło