কিভাবে মাছের শেল একটি উপনাম সংজ্ঞা?


204

আমি মাছের কিছু এলিয়াস সংজ্ঞায়িত করতে চাই। স্পষ্টতই এগুলি সংজ্ঞায়িত করা সম্ভব হওয়া উচিত

~/.config/fish/functions

আমি যখন শেলটি পুনরায় চালু করব তখন সেগুলি স্বয়ংক্রিয়ভাবে লোড হয় না। কোন ধারনা?


কেবলমাত্র কয়েকটি ভোট দিয়ে নীচের উত্তরটি আমার মতে সঠিক। ./Config/fish/function- এ স্বয়ংক্রিয়ায়িত হওয়া কেবলমাত্র ফাইলের প্রতি এক ফাংশন থাকলে কাজ করবে বলে মনে হয়।
এমসি_ইলেক্ট্রন

উত্তর:


360

শুধু ব্যবহার alias। এখানে একটি প্রাথমিক উদাহরণ:

# Define alias in shell
alias rmi "rm -i"

# Define alias in config file
alias rmi="rm -i"

# This is equivalent to entering the following function:
function rmi
    rm -i $argv
end

# Then, to save it across terminal sessions:
funcsave rmi

এই শেষ কমান্ডটি ফাইল তৈরি করে ~/.config/fish/functions/rmi.fish

আগ্রহী ব্যক্তিরা সরকারী ম্যানুয়ালটিতে মাছের এলিয়াসগুলি সম্পর্কে আরও জানতে চাইতে পারেন ।


3
আরও মনে রাখবেন যে মাছগুলিতে একটি উপনাম কোনও ফাংশনের চারপাশে কেবল শেলসক্রিপ্টের মোড়ক।
ব্যবহারকারী 456584

@ ব্যবহারকারী 456584 ... এবং এটি খারাপ, কারণ আপনি করতে পারবেন না alias local "set -l";-(

13
কোন ফাইলটি এটি লাগাতে হবে তার কেবল একটি নোট ~/.config/fish/config.fishI
ইরা হারমান

"$argv"বাশকে আমরা যেমন করি তেমন স্পেস দিয়ে যুক্তিগুলি পরিচালনা করার জন্য আমাদের উদ্ধৃতি দেওয়ার দরকার নেই "$@"?
kyb

@ কীবোব, নাপ, মাছের মতো বাশের চেয়ে স্মার্ট। আসলে, মাছের সমস্ত পরিবর্তনশীল অ্যারে হয়। শেল ভেরিয়েবলগুলিতে যান এবং অ্যারে
উপধারাতে

117

এভাবেই আমি একটি নতুন ফাংশন সংজ্ঞায়িত করব foo, এটি চালাব এবং অবিচ্ছিন্নভাবে এটি সংরক্ষণ করব।

sthorne@pearl~> function foo
                    echo 'foo was here'
                end
sthorne@pearl~> foo
foo was here
sthorne@pearl~> funcsave foo

ধন্যবাদ জেরুব ফানস্যাকভের পরে কোনও কারণে এটি আমাকে একটি ত্রুটি দিয়েছে: ট্রফ: মারাত্মক ত্রুটি: open /usr/share/fish/man/save_function.1 খুলতে পারে না ': এ জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই
আরমান্ডিনো

7
আপনি ব্যবহার করে ফাংশন সম্পাদনা করতে পারেন funced। যেমন funced foo
ডেনিস

14
চলমান funcsave {some_function_name}এটা সংরক্ষণ করতে হবে~/.config/fish/functions/{some_function_name}.fish
Hjulle

55

উত্তরোত্তর জন্য, মাছের এলিয়াসগুলি কেবল ফাংশন:

$ alias foo="echo bar"
$ type foo
foo is a function with definition
function foo
    echo bar $argv; 
end

এটা মুছে ফেলার জন্য

$ unalias foo
/usr/bin/unalias: line 2: unalias: foo: not found
$ functions -e foo
$ type foo
type: Could not find foo

9
আপনি ফাংশনটি তৈরি করার পরে, আপনি এটি করতে পারেন funcsave foo। এটি এতে ফাংশনটি সংরক্ষণ করবে ~/.config/fish/functions/foo.fish, যেখানে কোনও নতুন অধিবেশন থেকে ডাকার পরে প্রথমবার માછલીগুলি স্বয়ংক্রিয়ভাবে এটি লোড করবে।
লুক্রেটিয়েল

1
alias foo="echo bar"এতদূর সহজ সমাধান ছিল
রনি

16
  1. যদি সেখানে নেই config.fish মধ্যে ~ / .config / মাছ / , এটা ভুলবেন না।
  2. সেখানে আপনি আপনার ফাংশন লিখতে পারেন।function name; command; end

15

আপনার ফাইলগুলি সে হিসাবে সংরক্ষণ করুন ~/.config/fish/functions/{some_function_name}.fishএবং আপনি যখন মাছ শুরু করবেন তখন সেগুলি স্বয়ংক্রিয়ভাবে জড়িত হওয়া উচিত।


14

ফিশ ~ / .config / ফিশ / কনফিগার.ফিশে কমান্ড প্রয়োগ করে শুরু হয়। এটি উপস্থিত না থাকলে আপনি এটি তৈরি করতে পারেন:

vim ~ / .config / માછલી / config.fish

এবং এটি দিয়ে সংরক্ষণ করুন :wq

ধাপ 1. কনফিগারেশন ফাইল তৈরি করুন (.bashrc এর মত)

config.fish

ধাপ ২. এইভাবে আপনার উপনামটি লিখুন;

ওরফে আরএম = "আরএম -i"


13

যদি আপনি এর abbrপরিবর্তে একটি যুক্ত করেন তবে আপনি আরও aliasভাল স্বয়ংক্রিয়-সম্পূর্ণ পাবেন। মাছগুলিতে abbrআরও বেশি ঘনিষ্ঠভাবে বাশ ওরফেটির আচরণের সাথে মেলে।

abbr -a gco git checkout

হবে -aএকটি নতুন dd abbreviation gcoযে বিস্তৃতি git checkout

ফলাফলের স্বয়ংক্রিয়-সম্পূর্ণ বৈশিষ্ট্যগুলির একটি ভিডিও ডেমো এখানে


11

Properly / .config / ফিশ / ফাংশন থেকে সঠিকভাবে ফাংশন লোড করতে

আপনি ফাইলের মধ্যে কেবলমাত্র একটি ফাংশন সেট করতে পারেন এবং নাম ফাইলটি ফাংশন নাম + ফিশ এক্সটেনশান হিসাবে একই।

খোলা টার্মিনালে ফাইল কন্টেন্টগুলি পুনরায় লোড করার ফাংশনগুলি পরিবর্তন করুন (নোট করুন কিছু বিলম্ব হতে পারে ~ 1-5s)

আপনি যদি কমান্ডলাইন দ্বারা সম্পাদনা করেন সেভাবে

function name; function_content; end

তারপর

funcsave name

আপনার একই ক্রমে কনসোল এবং কাস্টম তৈরির ব্যবহারকারীর সংজ্ঞায়িত ফাংশন রয়েছে।


0

mkalias.fish নামক ~ / .config / માછલી / ফাংশনগুলিতে একটি ফাংশন তৈরি করুন এবং এটিতে রাখুন

function mkalias --argument key value
  echo alias $key=$value
  alias $key=$value
  funcsave $key
end

এবং এটি স্বয়ংক্রিয়ভাবে এলিয়াস তৈরি করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.