বাশ কনসোলে প্যারামিটারে টাইপ করা পুনরায় কীভাবে করবেন?


23

আমি কেবল কিছু লাইন দিয়ে টাইপ করছিলাম:

mv foo/bar/poit/zoid/narf.txt

এবং হঠাৎ বুঝতে পারলাম, জঘন্য, আমাকে আবার সেই প্যারামিটারের বড় অংশগুলি টাইপ করতে হবে

mv foo/bar/poit/zoid/narf.txt foo/bar/poit/zoid/troz.txt

এমনকি ট্যাব কমপ্লিশনেও বেশ ব্যথা। আমি জানি আমি টেক্সট এবং মিডলিক্লিকটি মাউস নির্বাচন করে প্যারামিটারটি কপি করতে পারি তবে এটি যথেষ্ট ভাল নয়। আমি কীবোর্ডে থাকতে চাই

তাই কি কিবোর্ড ব্যবহার করে লাইনের বর্তমান প্যারামিটারটি অনুলিপি করার কোনও উপায় আছে?


3
আমার পরামর্শ আপনার প্রশ্নের উত্তর দেয় না, তবে এটি একটি ছোট্ট টিপ। আপনার উদাহরণ হিসাবে, আপনি পরবর্তী নির্মাণ ব্যবহার করতে পারেন: mv foo/bar/poit/zoid/{narf.txt,troz.txt}পরিবর্তে দীর্ঘ টাইপ / দীর্ঘ ঠিকানা দুটি বার টাইপ করুন।
নলখাগড়া

2
সামান্য চেয়ে @ রাশ এর সমাধান খাটো: mv foo/bar/poit/zoid/{narf,troz}.txt। এটি বিশেষত ভাল কাজ করে যদি আমাদের মতো কিছু থাকে.../zoid/this_source_file_has_to_be_patched.c{,.orig}
আনসগার এসস্টারম্যান

@ রাশ আপনার কি উত্তর হিসাবে এটি দেখানো আপত্তি? এটি আমি যা চেয়েছিলাম তা সরাসরি নাও হতে পারে, তবে আবার, আপনার সমাধানটি আমি যা চাই তার চেয়ে অনেক বেশি to এটি গ্রহণযোগ্যতার একটি চিহ্নের দাবিদার।
k0pernikus

উত্তর:


15

আমি যদি আগে পরিকল্পনা করেছি তবে আমি ব্রেস এক্সপেনশন ব্যবহার করি । এক্ষেত্রে:

mv foo/bar/poit/zoid/{narf,troz}.txt

ডিফল্ট readlineকীবোর্ড শর্টকাট ব্যবহার করে এখানে অন্য পদ্ধতিটি দেওয়া হয়েছে :

  • mv foo/bar/poit/soid/narf.txt: শুরু
  • Ctrl- w: unix-word-ruboutমুছতেfoo/bar/poit/soid/narf.txt
  • Ctrl- y, Space, Ctrl- y: yank, স্থান yankআবার পেতেmv foo/bar/poit/soid/narf.txt foo/bar/poit/soid/narf.txt
  • Meta- backspace, Meta- backspace: backward-kill-wordশেষটি মুছতে দুবারnarf.txt
  • troz.txt: পুচ্ছ অংশটি টাইপ করুন যা আলাদা

যদি আপনি bashশেলটি ব্যবহার করে কোনও অপ্রয়োজনীয় সময় ব্যয় করেন তবে আমি পর্যায়ক্রমে ডিফল্ট শর্টকাটগুলির একটি তালিকা দিয়ে পড়া এবং আপনার রুটিনে শেখার এবং অন্তর্ভুক্ত করার জন্য দরকারী বলে মনে করার জন্য কয়েকটি প্রস্তাব নেওয়ার পরামর্শ দেব। ম্যানুয়ালটির 8 অধ্যায়টিbash শুরু করার জন্য ভাল জায়গা। শর্টকাটগুলি জানা আপনার কার্যকারিতা সত্যই বাড়িয়ে তুলতে পারে।


ঝরঝরে! আমার ক্ষেত্রে আমাকে মেটা + ব্যাকস্পেসের পরিবর্তে Alt + ব্যাকস্পেস টিপতে হয়েছিল।
k0pernikus

3
@ k0pernikus হ্যাঁ বেশিরভাগ কীবোর্ডে আল্ট কী হ'ল মেটা কী।
jw013

1
পুনরায় টাইপিং সংরক্ষণ করতে .txt, আপনি Ctrl + বাম (বা কল করে যে কোনও শর্টকাট backward-word) টিপতে পারেন , তারপরে একটি অক্ষর বামে, তারপরে Alt + ব্যাকস্পেস এবং টাইপ করতে পারেন troz
wjandrea

24

ইতিহাসের সম্প্রসারণ প্রকৃতপক্ষে বর্তমান কমান্ডে ইভেন্ট ডিজাইনার ব্যবহার করেও কাজ করে !#। শেষ যুক্তির জন্য এটি ডিজাইনার শব্দটির সাথে একত্রিত করুন - $- আপনি স্রেফ টাইপ করেছেন এমন প্যারামিটার পেতে to এবং আপনি এটির উপরে নিয়মিত সমস্ত সংশোধক ব্যবহার করতে পারেন, সুতরাং, উদাহরণস্বরূপ, আপনি যদি কোনও দূরের ডিরেক্টরিতে কোনও ফাইলের নাম পরিবর্তন করেন তবে আপনি কেবল টাইপ করতে পারেন:

mv path/you/do/not/want/to/type/twice/oldname !#$:h/newname

খুব দরকারী! magic-spaceইতিহাসের সম্প্রসারণকে স্বয়ংক্রিয়ভাবে প্রসারিত করতে এটি ইনপুটসিটিতে বাশের বিকল্পের সাথে বিশেষত ভাল কাজ করে । (আমি শীর্ষ ভোটের উত্তরটি ব্যবহার করতে পারিনি কারণ আমি সাধারণত
useful

@ সোরেনজর্নস্টাড alt+backspaceসাধারণত স্ল্যাশের মতো শব্দ বিস্মৃতকারীদের কাছে ইতিমধ্যে থেমে থাকে, সুতরাং ^Wসেই কার্যকারিতাটি কীভাবে পাবেন তা আপনার পরিবর্তন করার দরকার নেই , আপনার অ-শব্দ-চরিত্র বা সাদা বর্ণের সীমিত শব্দগুলি উভয়ই মুছতে পারে
এরিক রেনোফ

14

আপনার উদাহরণ হিসাবে, আপনি পরবর্তী নির্মাণ ব্যবহার করতে পারেন:

mv foo/bar/poit/zoid/{narf.txt,troz.txt}

বা এমনকি (প্রস্তাবিত আনসার এসস্টারম্যান ):

mv foo/bar/poit/zoid/{narf,troz}.txt

পরিবর্তে দুটি বার দীর্ঘ ঠিকানা / টাইপ / কপিপাস্ট করা।



6

চারপাশে খেলে আমি এটি কাজ করতে পারি:

mv foo/bar/poit/zoid/narf.txt

Enter
শেষ প্যারামিটার সংরক্ষণ করতে আঘাত করুন ।

এখন লাইনে ফিরে টাইপ করতে ব্যবহার করুন । একটি স্থান লিখুন এবং সর্বশেষ ব্যবহৃত প্যারামিটার ব্যবহার পেতে:

Alt + + .

আমি একটি ত্রুটি উস্কে দেওয়া ঘৃণা করি, তবে এটি এই ব্যবহারের ক্ষেত্রে কাজটি করে।


শীতল, আরও দুর্দান্ত টিপ শিখলাম!
ব্রাম

<kbd> এসএসসি </ কেবিডি> + <কেবিডি> </
নিকোস আলেকজান্দ্রিস

2

আপনি সহজেই পরিবর্তনশীল ব্যবহার করতে পারেন:

a=test.csv ; cp $a $a.bak

অথবা আপনি কি মামলা (নোট ট্যাব প্রতিযোগিতার জন্য কাজ করে একটি অংশ):

a=foo/bar/poit/zoid/ ; mv ${a}narf.txt ${a}troz.txt

2

আমার মধ্যে এটি আছে ~/.inputrc:

"\ej":"!#:$\e^"

!#বর্তমান লাইন, :$শেষ শব্দ এবং \e^হয় history-expand-line


এটি উত্তর হিসাবে চিহ্নিত করা উচিত। 'Alt / অপশন + জ' টিপুন এখন শেষ শব্দটি অনুলিপি করে।
এমপিপ্রদেব

2

কারণ zsh, আমি নিম্নলিখিত কী-বাইন্ডিংগুলি সহায়ক বলে মনে করি।

# Bind alt-m to insert previous word from the current line
bindkey '^[m' copy-prev-shell-word

# Bind alt-k to kill word before cursor in vi-style
bindkey '^[k' vi-backward-kill-word

সুতরাং আমি আঘাত করেছি Alt- Mতারপরে শেষ যুক্তির পুনরাবৃত্তি করতে Alt- Kযদি আমি কোনও পথের শেষে অংশগুলি মুছতে চাই।

আপনি মানচিত্র করতে পারেন এমন কয়েকটি আচরণের একটি দরকারী রেফারেন্স এখানে ।


2

একটি সংক্ষিপ্ত ইন্টারেক্টিভ দুই পদক্ষেপ সমাধান

  1. টাইপ করুন: echo foo/bar/poit/zoid/narf.txt

    এটি বাশ - শর্টকাটের foo/bar/poit/zoid/narf.txtজন্য উপলব্ধ করে ।Alt.

  2. টাইপ করুন: mvএবং হিট Alt- ., Space, Alt-.

    আপনি পাবেন mv foo/bar/poit/zoid/troz.txt foo/bar/poit/zoid/troz.txt। এখন আপনি সহজেই শেষ শব্দটি পরিবর্তন করতে পারেন।

মিডনাইট কমান্ডার

এই সরঞ্জামটি যা (খুব) সহজ হতে পারে এটি কনসোলে চলছে এমন একটি ফাইল ম্যানেজার। এটি আপনাকে ফাইলের নাম এবং ডিরেক্টরি পাথগুলি ইন্টারেক্টিভভাবে কমান্ড লাইনে অনুলিপি করার সম্ভাবনা দেয়। মিডনাইট কমান্ডার আপনাকে অতএব 2 টি প্যানেল (বাম এবং ডান) দেখায় যা বিভিন্ন ডিরেক্টরিতে লিখিত সামগ্রী তালিকাভুক্ত করে।

একটি সংক্ষিপ্ত গাইড:

  • Up/ Downতীর কীগুলি বর্তমান প্যানেলে ফাইলগুলি নির্বাচন করে।
  • Tab বাম এবং ডান প্যানেলের মধ্যে স্যুইচ করুন।
  • Ctrl- Shift- Enterবর্তমানে নির্বাচিত ফাইলটি কমান্ড লাইনে অনুলিপি করে (পুরো পথ সহ)
  • Alt- oঅন্যান্য প্যানেলে বর্তমানে নির্বাচিত ডিরেক্টরিটি খুলবে
  • Ctrl- oআপনাকে পুরো স্ক্রিনে কনসোল দেখতে দেয়
  • Ctrl- x, pসক্রিয় প্যানেলের পথটি কনসোলে অনুলিপি করে
  • Ctrl- x, Ctrl- pনিষ্ক্রিয় প্যানেলের পথটি কনসোলে অনুলিপি করে
  • Esc- Tabস্বয়ংক্রিয় সমাপ্তি

শর্টকাটে অভ্যস্ত হওয়ার পরে - এটি এখন পর্যন্ত আমি সবচেয়ে দ্রুততম পন্থায় খুঁজে পেয়েছি।


0

Thing,} "সদৃশ" এ একই জিনিস ব্যবহার করুন। অর্থাৎ,

git tag -m {v,v}1.0.1

# same as 

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