আমি আইপাইটন-এ * নিক্সের নীচে কী কী ব্যবহার করব?


97

বর্তমানে বাশে আমি set -o viআমার ব্যাশ প্রম্পটে vi মোড সক্ষম করতে ব্যবহার করি।

আমি আইপিথনে এটি কীভাবে পাব?

দ্রষ্টব্য: যদি উত্তরটি সমস্ত * নিক্সের সাথে প্রযোজ্য হয় তবে আমি ওএস এক্স শিরোনাম থেকে সরিয়ে দেব :)

উত্তর:


170

যদি কেউ এখানে সম্প্রতি ঘুরে বেড়ায়, আইপথন 5.0 রিডলাইন থেকে প্রম্পট_টোকলিতে স্যুইচ করেছে , সুতরাং এই প্রশ্নের একটি আপডেট হওয়া উত্তর একটি বিকল্পটি পাস করতে হবে:

$ ipython --TerminalInteractiveShell.editing_mode=vi

... বা প্রোফাইল কনফিগারেশনে এটি বিশ্বব্যাপী সেট করার জন্য ( ~/.ipython/profile_default/ipython_config.py; এটি ipython profile createনা থাকলে এটি তৈরি করুন):

c.TerminalInteractiveShell.editing_mode = 'vi'

4
আমি এই উত্তরটি পোস্ট করতে এখানে এসেছি - আমাকে এটির মারধর করার জন্য ধন্যবাদ :)
জেসন সুন্দ্রম

4
ধন্যবাদ আইপিথন, জুপিটার বা প্রম্পট_ টোকলিটের জন্য ডক্সে কোথাও খুঁজে পাওয়া বিরক্তিকরভাবে কঠিন।
n তম

4
আমি আমার কাস্টম কী বাইন্ডিং ম্যাপিংগুলি কোথায় যুক্ত করব?
অরবিন্দ

এই প্রশ্নের আমার উত্তরটি কাস্টম কী বাইন্ডিংগুলি যুক্ত করার একটি উপায় দেখায়।
জেলিকোলা

4
আমি যদি স্বাভাবিক মোডে বা সন্নিবেশ মোডে থাকি তবে ট্র্যাক রাখার কোনও উপায় আছে কি?
পীযূষ কুশওয়াহা

32

দেখে মনে হচ্ছে একটি সমাধান অন্যান্য অনেক রিডলাইন সুসংগত অ্যাপ্লিকেশনগুলির জন্য কাজ করে:

আপনার ~/.inputrcফাইলে নিম্নলিখিতটি সেট করুন:

set editing-mode vi
set keymap vi
set convert-meta on

সূত্র: http://www.jukie.net/bart/blog/20040326082602


7
হতে খুব সতর্ক থাকুন set convert-meta on। এটি ইউনিকোড এন্ট্রির সাথে সাংঘর্ষিক, সুতরাং আপনি যদি ইউনিকোড পেস্ট বা টাইপ করেন তবে আপনি বিভিন্ন অনুষ্ঠান ট্রিগার করতে পারেন, যা অবাক হওয়ার মতো হতে পারে। উদাহরণস্বরূপ, type টাইপ করার চেষ্টা করুন, এবং আপনি একটি আকর্ষণীয় ফলাফল দেখতে পাবেন।
মিনিট

4
আপনি জানেন শেষ দুটি লাইনটি কী করে? একটি দ্রুত চেক দেখায় যে কেবল প্রথম লাইনটি মৌলিক vi কীবাইন্ডিংগুলি দেয় - আমি আশা করি আমি অন্যদের যুক্ত করার কারণ আছে কিনা তা জানতাম।
ওয়ারোনিকা

4
@ অ্যারোনিকা দেখে মনে হচ্ছে set keymap viপরিবর্তনগুলি কীম্যাপ (অর্থাত্ মোড) নীচের কমান্ডগুলিকে প্রভাবিত করবে এবং set convert-meta onকিছু কী কী আচরণ করবে তা পরিবর্তন করে । আপনার যদি তাদের দরকার হয় তবে আমি নিশ্চিত নই।
s4y

@ অওরোনিকা তাই, set convert-meta on(এবং সেই লাইনের নীচে যে কোনও কিছু) কেবল কমান্ড মোডে প্রয়োগ করা হবে, সন্নিবেশ মোডে নয়।
s4y

6
দ্রষ্টব্য: এটি আর আইপিথন 5.0.0 হিসাবে কাজ করে না। নীচে @ ইমিরিকের উত্তর দেখুন।
জেসন সুন্দরাম

11

আপনি ইন্টারঅ্যাকটিভভাবে ভাই-মোড এবং ইমাকস মোডের মধ্যেও যেতে পারেন। তাদের মধ্যে স্যুইচলাইন পঠন দস্তাবেজ অনুসারে আপনি MCj কী সংমিশ্রণটি ব্যবহার করতে সক্ষম হবেন বলে মনে করা হচ্ছে তবে এটি কেবল আমার মাইকে vi- মোডে স্যুইচ করার অনুমতি দেবে বলে মনে হয় - যেখানে ESC 'মেটা' কী হিসাবে ব্যবহৃত হয় ) এটি হ'ল: ESC+ CTRL+ j। ইমাকস মোডে ফিরে যেতে কেউ সি ব্যবহার করতে পারে তবে এটি আমার পক্ষে কাজ করে না বলে মনে হয় - আমাকে তার পরিবর্তে এমসিই করতে হয়েছিল - আমার ম্যাকটিতে এটি ছিল: ESC+ CTRL+ e

নীচে FYI আমার। / .Inputrc সেট আপ করা হয়েছে:

set meta-flag on
set input-meta on
set convert-meta off
set output-meta on

আমি বুঝতে চেষ্টা করেছি যে এমসিজি এত সময় কাজ করছে না কেন!
শ্যাঙ্গজিয়াও

9

ipythonপঠন পাঠাগারটি ব্যবহার করে এবং এটি ~/.inputrcফাইলটি ব্যবহার করে কনফিগার করা যায় । তুমি যোগ করতে পার

set editing-mode vi

সমস্ত readlineভিত্তিক অ্যাপ্লিকেশনগুলিকে ইমাসের পরিবর্তে vi স্টাইলের কী-বাইন্ডিংগুলি ব্যবহার করতে সেই ফাইলটিতে ।


9
ipythonreadlineএকটি অজগর লাইব্রেরিতে স্যুইচ করা prompt_toolkitহয়েছে 5.0.0যাতে এটি আর কাজ করে না।
জেলিকোলা

ধন্যবাদ, আইপিথনের একটি পুরানো সংস্করণ মোকাবেলার জন্য এটি খুব দরকারী ছিল।
টিমজেব

8

আইপিথন 5 এ আমার ইন্টারেক্টিভভাবে মোডগুলি স্যুইচ করতে সক্ষম হওয়া দরকার এবং আমি খুঁজে পেয়েছি যে আপনি ফ্লাইতে প্রম্পট ম্যানেজারটি পুনরায় তৈরি করে তা করতে পারেন:

a = get_ipython().configurables[0]; a.editing_mode='vi'; a.init_prompt_toolkit_cli()

0

আপনি আপনার আইপিথন স্টার্ট-আপ কনফিগারেশন ফাইলে vi সেট করতে পারেন। একটি তৈরি করুন যদি আপনি এটি করার জন্য একটি ফাইল যোগ করে না ~/.ipython/profile_default/startup/এরকম কিছু বলা start.py। এখানে একটি উদাহরণ:

# Initializing script for ipython in ~/.ipython/profile_default/startup/
from IPython import get_ipython
ipython = get_ipython()

# If in ipython, set vi and load autoreload extension
if 'ipython' in globals():
    ipython.editing_mode = 'vi'
    ipython.magic('load_ext autoreload')
    ipython.magic('autoreload 2')
from Myapp.models import * 

সেই শেষ লাইনটি যদি আপনি জ্যাঙ্গোর সাথে আইপিথন ব্যবহার করেন এবং আপনার সমস্ত মডেল ডিফল্টরূপে আমদানি করতে চান।

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