2017-01-09 2 views
1

Я пытаюсь создать псевдоним для LS (должен в основном только на карте, чтобы ls -lah) Я попытался следующий код, но он не работает:Как создать псевдоним в моллюсках

function ls

ls -lah

end

funcsave ls

, но когда я его вызываю, я получаю это сообщение: Функция 'ls' вызывает себя немедленно, что приведет к бесконечному циклу. в функции 'ls' , вызванный стандартным входом

ответ

0

Если вам нужно сделать псевдоним ls, то приведенные выше ответы будут в порядке. Однако у рыбы уже есть команда для ls -lah, то есть la.

+0

Ницца! Спасибо, я этого не знал! :) – ners10100100

+0

@ ners10100100 Если вы хотите проверить все команды, специфичные для рыбы, вы можете «fish_config» в терминале, который запустит веб-конфигурацию и на вкладке «Функции» вы найдете много информации. – keramzyt

2

Вам нужно ключевое слово command. Кроме того, передать аргументы функции на ls

function ls 
    command ls -lah $argv 
end 
+0

Спасибо! Это работает! – ners10100100

3

Что вы ищете это команда command.

Я бы также рекомендовал передать любые аргументы (сохраненные в) команде aliased.

Так что ваш пример должен быть:

function ls 
    ls -lah $argv 
end 

И делать все это с помощью простой команды, вы можете просто использовать команду alias.

alias ls "command ls -lah" 


Обратите внимание, что обычно псевдонимы не получат Вас хорошее автозаполнение предложения, которые способствуют удобству рыбы «ы. Этот конкретный случай является исключением, так как функция и исходная команда имеет то же самое, но в остальном, здесь два способа получить завершения равно:

  • Вы можете использовать команду complete сказать рыбы, что ваш alias использует те же дополнения, что и команда aliased.
    Плагин balias служит в качестве альтернативы alias и делает именно это.

  • рыба также предлагает команду abbr. Он работает несколько иначе и фактически расширит сокращенную команду до полной команды в командной строке, а затем рыба не будет иметь проблем, предоставляя вам все предложения по автозавершению, которые она знает.

+0

Большое спасибо! Псевдоним/функция работает сейчас!У вас есть идея, почему «раскраска» вывода из 'ls -lah' исчезает, когда она вызывается через функцию? – ners10100100

+0

Я предполагаю, что ваша команда 'ls' уже завернута другой функцией. Я лично использую 'grc', поэтому я вижу точно такой же эффект. Во-первых, в 'fish' shell без вашего псевдонима, запустите' functions ls' и посмотрите, есть ли какая-то функция с этим именем. Если есть, вы можете переименовать его следующим образом: 'functions -c ls ls_color', а затем в вашей функции псевдонима вместо' command ls $ argv', вызовите 'ls-color $ argv'. – oranja

Смежные вопросы