আইটিার্মে নতুন ট্যাব খুলুন এবং সেখানে কমান্ড কার্যকর করুন


17

আমি এখানে নতুন ট্যাব খোলার উপায় খুঁজে পেয়েছি iTerm:

newtabi()
{
    osascript -e 'tell application "iTerm" to activate' -e 'tell application "System Events" to tell process "iTerm" to keystroke "t" using command down'
}

এবং আমি নতুন ট্যাবে কিছু কমান্ড প্রয়োগ করতে চাই। এটি সহজ কমান্ড হতে দিন pwd। এটা কিভাবে করতে হবে?

আমি যদি দৌড় ...

newtabi && pwd

নতুন ট্যাবটি প্রত্যাশা মতো খোলা হয়েছে, তবে pwdকমান্ডটি নতুন ট্যাবে নয় বরং পুরানো একটিতে কার্যকর হয়েছে, যেখানে আমি টাইপ করেছিnewtabi && pwd

আমি ব্যবহার zsh। আমার ওসOS X 10.8.5

উত্তর:


16

ব্যবহার tell session -1 of current terminal to write text "pwd":

activate application "iTerm"
tell application "System Events" to keystroke "t" using command down
tell application "iTerm" to tell session -1 of current terminal to write text "pwd"

1
যদি একাধিকটি iTermsখোলা হয়, তবে এটি সঠিক iTermউদাহরণে নতুন ট্যাবটি খুলবে , তবে pwdআইটর্মের প্রথম উদাহরণের শেষ ট্যাবে লিখেছেন
ম্যাক্সিম

2
@Fr আপনি ঠিক বলেছেন আমি উত্তর পরিবর্তন terminal 1করতে current terminal। এখন এটি প্রথমে খোলা উইন্ডোর পরিবর্তে বর্তমান উইন্ডোতে কমান্ডটি চালানো উচিত।
ল্রি

2
এটি আইটিার্ম 2 দিয়ে ম্যাক 10.11.6 এ কাজ করে নি। স্ক্রিপ্ট সম্পাদকটিতে, "লাইনের অপ্রত্যাশিত শেষ তবে সনাক্তকারী" এবং "টার্মিনাল" হাইলাইট করা হয়েছে
মাইক ব্ল্যান্ডফোর্ড

1
এটি আর ম্যাকোএস 10.14 এ আর কাজ করে না:execution error: System Events got an error: osascript is not allowed to send keystrokes. (1002)
কার্নেলস্যান্ডার্স

12
osascript \
-e 'tell application "iTerm" to activate' \
-e 'tell application "System Events" to tell process "iTerm" to keystroke "t" using command down' \
-e 'tell application "System Events" to tell process "iTerm" to keystroke "ls"' \
-e 'tell application "System Events" to tell process "iTerm" to key code 52'

আমি এই পাচ্ছি 148:156: syntax error: Expected end of line but found identifier. (-2741)
অস্থায়ী_ ব্যবহারকারী_নাম

4

কমপক্ষে ম্যাকোস মোজভেভ হিসাবে, আইটিআরএম ৩.২.৮, যদি আপনি চালিত হন:

$ open -a iTerm .

এটি বর্তমান উইন্ডোতে এটি একটি ট্যাব হিসাবে যুক্ত করবে।


1

আমি কাজের গ্রহণযোগ্য উত্তর পেতে পারি না। আমি একাধিক কমান্ডও পাস করতে চেয়েছিলাম। এটিই আমি নিয়ে এসেছি।

newtabi(){  
  osascript \
    -e 'tell application "iTerm2" to tell current window to set newWindow to (create tab with default profile)'\
    -e "tell application \"iTerm2\" to tell current session of newWindow to write text \"${@}\""
}

ব্যবহারের উদাহরণ

newtabi pwd
newtabi 'cd ~/ && pwd'
newtabi 'echo \"Hello New Tab\"'

আরও জটিল ক্রিয়াকলাপের জন্য, আমি আদেশগুলি ভাঙ্গার সুপারিশ করব।

code_folder="/path/to/code"

alias project="cd ${code_folder}/my-project/foo && yarn run start"

তারপর, newtabi project


pwdকমান্ডটি দেখতে: আমি কীভাবে আমার বর্তমানটি পাস করতে পারি তা দয়া করে বলতে পারেন: `নিউতাবি '$ পিডাব্লুডি / ফু ও & সুতা রান স্টার্ট'?
রাজ

1
@ রাজ, ভাল প্রশ্ন আমি ব্যক্তিগতভাবে কমান্ডগুলিকে আরও ব্যবহারযোগ্য অ্যালিয়াস এবং / অথবা ফাংশনগুলিতে বিভক্ত করি। আমি আরও একটি উদাহরণ যুক্ত করেছি। আশা করি এটা সাহায্য করবে!
মার্ক বারবেউ

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