Як зробити символьне посилання на / usr / bin / vim, але з параметрами запуску?


13

Після того, як я make&make installvim від джерела, я знайшов багато символічних посилань vim /usr/local/bin, таких як evim, rvim, view ...

Сторінка vim(1)man сказала, що "rvim" еквівалентно "vim -Z" тощо.

Тепер мені цікаво: чи можу я зробити такий символічний зв’язок із ln(1)собою, і якщо так, то як?


1
Ви маєте на увазі make && make install? Тільки один &би скомпілювати на задньому плані і спробувати встановити на передньому плані.
Кевін

@Kevin Я думаю, це питання звички.
bigeast

Відповіді:


25

Ви не можете, не написавши трохи коду.

Ці ярлики символьних посилань працюють, тому що vimнаписано саме так. Він розглядає, як (з якою назвою) він був запущений і діє так, ніби він був викликаний відповідними параметрами командного рядка.
Така поведінка жорстко закодована у виконуваному файлі, це не трюк, виконаний символічним посиланням.

Так що якщо ви хочете зробити це самостійно, найпростіше написати невеликий скрипт , який обгортку execs vimз параметрами , які ви хочете:

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

В "$@"кінці просто передає будь-які параметри командного рядка, задані сценарію, разом з vim.


5

Ви можете зробити це круговим способом через конфігурацію оболонки. Щось на зразок

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

буде працювати в bash / zsh. Це дозволяє налаштувати речі, не возившись з sudo / root.


1
До bashречі, це не спрацює ... Натомість слід визначити псевдонім alias big_vim='gvim -p -geom 126x512'.

2

Ви не можете цього зробити.

VIM перевіряє його запущений шлях при запуску, наприклад, прив’язуючи оригінальний бінарний файл до rvim, стартовий шлях стає /path/to/rvim, у цьому випадку VIM додасть -Zпараметр автоматично, навіть якщо ви цього не вказали.

Але якщо ви використовуєте лише VIM в терміналі, вам слід:

Для bash додайте псевдонім до ~ / .bashrc

alias vim='vim -Z'

Змініть параметр відповідно до ваших потреб.

Для csh / tcsh видаліть =символ,

напр alias vim vim -Z

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.