একটি বাফারে দুটি অবস্থানের মধ্যে কীভাবে পিছনে পিছনে স্যুইচ করা যায়


38

কখনও কখনও আমি প্রায়শই নিজেকে একে অপরের সাথে একত্রে সম্পাদনা করছি এমন দুটি ফাংশনের মধ্যে ঘন ঘন পরিবর্তন দেখতে পাই। এই পরিস্থিতিতে C-s <functionname>অন্যান্য ফাংশনে স্যুইচ করার জন্য এবং তারপরে আমি ঠিক আগে সম্পাদনা করছিলাম ঠিক সেই জায়গার সন্ধান করা ক্লান্তিকর এবং বেদনাদায়ক ।

আমি কীভাবে চিহ্নিতকারীগুলি সেট করব এবং তারপরে সহজেই বাফারে দুটি অবস্থানের মধ্যে পিছনে পিছনে ঝাঁপ দেব?


3
আপনি এটা ভুল করছেন. আপনার একটি উল্লম্ব স্প্লিট ভিউ থাকা উচিত যাতে আপনি একই সাথে উভয় ফাংশন দেখতে পান।
ক্যাপ্টেন কোডম্যান

8
আমি একমত নই যে ওপি "এটি ভুল করছে"। যদিও একটি বিভক্ত উইন্ডো সহায়ক হবে, উভয় ফাংশন সম্পাদনা করার সময় ওপি এখনও উইন্ডোগুলির মধ্যে পিছনে পিছনে ঝাঁপিয়ে পড়তে হবে। তদতিরিক্ত, সুনির্দিষ্ট ব্যবহারের চেয়ে প্রশ্নটি আরও সাধারণ: ওপি দ্রুত বাফারে বিভিন্ন স্থানে ঝাঁপিয়ে পড়তে সক্ষম হতে চায়। নীচে প্রচুর উত্তর এটি করার জন্য বেশ কয়েকটি দরকারী উপায় দেয়।
ড্যান

@ ড্যান এই দুর্দান্ত মানুষ, এবং আমি আপনার সাথে একমত, তবে আমার প্রতিক্রিয়া তার সমস্যা সমাধানের উদ্দেশ্যে নয় - কেবলমাত্র একটি বিকল্প উপায় আছে তা দেখানোর জন্য।
ক্যাপ্টেন কোডম্যান

4
@ ক্যাপ্টেনকোডম্যান, এটি ঠিক আছে, যদিও নীচে টি। ভার্ননের উত্তরটি বিভক্ত-উইন্ডো বিকল্প সরবরাহ করে। পোস্টগুলিতে প্র্যাক্টিভ ভাষার জন্য আমার মন্তব্যটিকে আরও সাধারণ অনুরোধ হিসাবে বিবেচনা করুন।
ড্যান

1
@ ক্যাপ্টেনকোডম্যান আপনি একদম ঠিক বলেছেন আমি সচেতন ছিলাম না যে ইমাক্স একটি উল্লম্ব বিভাজন দৃশ্য সমর্থন করে। এই হিসাবে, আমি উত্তরটি গ্রহণ করেছি যা এই উল্লম্ব বিভাজন দর্শনের ব্যবহারের বিশদটি জানায়।
বেদাদ শাকিব

উত্তর:


20

Emacs উইন্ডোজ

C-x 2একই বাফারের সাথে সংযুক্ত বর্তমানের নীচে অন্য উইন্ডোটি (= ফ্রেম বিভক্ত) খুলবে। আপনি অন্যটিকে প্রভাবিত না করে উভয় উইন্ডোতে পয়েন্ট সরিয়ে নিতে পারেন।

আপনি ব্যবহার করে এক উইন্ডো থেকে অন্য উইন্ডোতে যেতে পারেন C-x o। অন্তর্নির্মিত উইন্ডমোভ গ্রন্থাগারটি এমন কিছু ফাংশন সরবরাহ করে যা উইন্ডোগুলির মধ্যে চলাচলকে আরও সহজ করে তোলে।

যদি এই পদ্ধতিটি আপনার পক্ষে উপযুক্ত হয় তবে আপনি পরোক্ষ বাফারগুলিতেও নজর রাখতে পারেন ।

এখানে চিত্র বর্ণনা লিখুন


অপ্রত্যক্ষ বাফার ব্যবহার সম্পর্কে আপনার আরও কয়েকটি লাইন যুক্ত করা উচিত: এটি অন্য উইন্ডোটি ব্যবহার করার চেয়ে সত্যই আরও কার্যকর (এবং আরও কিছুটা জটিল)।
ffevotte

@ ফ্রান্সেসকো আমি দেখতে পাচ্ছি যে আপনি এখন কী বোঝাতে চেয়েছেন (অপ্রত্যক্ষ বাফার সম্পর্কে অন্যান্য উত্তর সহ), এটি অবশ্যই ব্যবহারের পক্ষে খুব সহজ একটি বিকল্প। এটি আমার মনে ছিল এমন ব্যবহার নয়: আমার অপ্রত্যক্ষ বাফারগুলির ব্যবহারটি অন্য একটি উইন্ডো ব্যবহার করে প্রতিস্থাপন করে না, তবে এটি সংকীর্ণকরণ সহ দর্শন পরিবর্তন করার অনুমতি দেয় for সময় পেলে আমি উত্তরে কয়েকটি শব্দ যুক্ত করব।
টি। ভেরন

56

খাতাপত্র:

C-xrSPCরান point-to-register
C-xrjরানjump-to-register

অনুরোধ জানানো হলে একটি রেজিস্টার নির্দিষ্ট করতে কোনও অক্ষর টাইপ করুন। 1

বুকমার্ক:

C-xrmরান bookmark-set
C-xrbরানbookmark-jump

রিং চিহ্নিত করুন:

C-SPCC-SPCবর্তমান অবস্থানটি চিহ্নিত করে রিংটিতে (এটি সক্রিয় না রেখে) চাপ দেয়।
C-uC-SPCচিহ্ন রিংটি পপ করে, আগের অবস্থানে ঝাঁপিয়ে পড়ে। আপনি পুরো রিংটিতে নেভিগেট করতে বারবার এটি ব্যবহার করতে পারেন।

মনে রাখবেন যে কয়েকটি আদেশ (বিশেষত আপনার মূল অবস্থান থেকে অজানা বা স্বেচ্ছাসেবী দূরত্বে যাওয়ার জন্য দায়বদ্ধ) স্বয়ংক্রিয়ভাবে চিহ্নের রিংটিতে চাপ দেবে যাতে আপনি C-uC-SPCপরে ফিরে আসতে পারেন। এতে অন্তর্ভুক্ত রয়েছে isearch, সুতরাং C-sকোথাও যেতে ব্যবহার করার পরে আপনি সহজেই আবার ফিরে যেতে পারেন।

এক্সচেঞ্জ পয়েন্ট এবং চিহ্ন:

আর তু কি মন্তব্য, যেমন C-xC-xরান exchange-point-and-markযা দুই অবস্থানের মধ্যে জাম্পিং জন্য খুবই দরকারী। এটি চিহ্ন / অঞ্চলটিকেও সক্রিয় করে তবে আপনি C-SPCহাইলাইটিং সাফ করতে ব্যবহার করতে পারেন ।


1 আপনি যদি এলিস্পে নিবন্ধকারীর কার্যকারিতাটির সুযোগ নিচ্ছেন তবে নামের জন্য চারটির পরিবর্তে কিছু বিবাদবিরোধী চিহ্ন ব্যবহার করুন, যাতে আপনি ইন্টারেক্টিভ-সেট-রেজিস্টারগুলির সাথে দ্বন্দ্ব করতে না পারেন (অবশ্যই, যদি না আপনি করতে চান) যে)।


2
আপনার C-x C-xপাশাপাশি যুক্ত করা উচিত , যেহেতু এটি দুটি অবস্থানের মধ্যে পিছনে পিছনে লাফিয়ে উঠতে পারে। C-u C-SPCচিহ্নের রিংটি পপ করে এবং আবার সম্পাদন করে পয়েন্ট অন্য কোথাও স্থানান্তরিত হবে।
টু

18

ফিলসের উত্তর ছাড়াও আরও কয়েকটি বিকল্প রয়েছে:

  • শিরোনাম-সমস্ত-চিহ্ন-রিংগুলি : এটি আপনাকে একটি বন্ধুত্বপূর্ণ ইন্টারফেসে স্থানীয় এবং বিশ্বব্যাপী উভয় চিহ্নের রিংয়ের সামগ্রী দেখতে দেয়, যাতে আপনি যেখানে ছিলেন সেখানে সর্বদা ফিরে যেতে পারেন। আপনি দিয়ে চিহ্ন ঠেলাতে পারেন C-SPC C-SPC। ডেমো:

হাল-All-মার্ক-রিং

  • helm-semantic-or-imeu : বর্তমান ফাইলটিতে সমস্ত উপলব্ধ সংজ্ঞা তালিকাবদ্ধ করুন। কার্সারটি যদি একটি সংজ্ঞার ভিতরে থাকে তবে হাইলাইটার সক্রিয় করার সময় সেই সংজ্ঞাটি নির্বাচন করে।

  • এসআর-স্পিডবার : একটি ফাইল ব্রাউজার যা প্রতিটি ফাইলে এর সংজ্ঞাগুলি তালিকাভুক্ত করে। এটি আইডিইতে রূপরেখার গাছের মতো।


9

রেজিষ্টার ও মার্কার (দেখুন @ এবং উভয় সম্পর্কে phils এর উত্তর আমার অন্যান্য, এছাড়া icicles চিহ্নিতকারী সম্পর্কে উত্তর), বুকমার্ক , বিশেষ করে পারেন autonamed বা অস্থায়ী বুকমার্ক, এই জন্য সহায়ক হতে পারে। এই বিশেষ বুকমার্ক ধরণের জন্য আপনার লাইব্রেরি বুকমার্ক + প্রয়োজন ।

  • একটি স্বায়ত্তশাসিত বুকমার্ক এমন একটি যা আপনাকে নাম দেওয়ার দরকার নেই। এটি তৈরি এবং মুছে ফেলার জন্য দ্রুত: কেবল একটি কী চাপুন। একই কী পয়েন্টে একটি বুকমার্ক তৈরি করে বা মুছে দেয়। (ডিফল্টরূপে, এটি আবদ্ধ C-x p RET, তবে আপনি অবশ্যই কোনও কী ব্যবহার করতে পারেন))

  • স্বায়ত্তশাসিত বুকমার্কগুলি সাধারণভাবে বুকমার্কগুলির মতো, অধ্যবসায়ী। তবে আপনি এগুলি স্বয়ংক্রিয়ভাবে মুছে ফেলাতে পারেন।

  • আপনি অস্থায়ী বুকমার্ক তৈরি করতে বা কোনও বিদ্যমান বুকমার্ককে অস্থায়ী করতে পারেন। উদাহরণস্বরূপ, আপনি স্বয়ংস্কৃত বুকমার্কগুলি স্বয়ংক্রিয়ভাবে অস্থায়ী হতে বেছে নিতে পারেন।

  • আপনি প্রদত্ত বুকমার্কগুলির একটি সেট মধ্যে দ্রুত চক্র করতে পারেন । উদাহরণস্বরূপ, স্বায়ত্তশাসিত বুকমার্কগুলির মধ্যে চক্র করতে, কমান্ডগুলি ব্যবহার করুন bmkp-next-autonamed-bookmark-repeatএবং bmkp-previous-autonamed-bookmark-repeat(কীগুলিতে তাদের আবদ্ধ)।

  • আপনি বিভিন্ন উপায়ে বুকমার্কযুক্ত অবস্থানগুলি হাইলাইট করতে পারেন , তাই এগুলিকে সন্ধান করা সহজ।


7

গৃহীত উত্তরে উল্লিখিত অপ্রত্যক্ষ বাফার সম্পর্কিত ...

M-x clone-indirect-bufferবর্তমান বাফারের জন্য একটি পরোক্ষ বাফার তৈরি করবে। নতুন বাফারটির নামটিতে '<2>' যুক্ত হবে (বা যদি আপনি ইতিমধ্যে সদৃশ বাফার নাম পেয়ে থাকেন তবে আরও বেশি সংখ্যক)। নতুন বাফারটি একটি নতুন উইন্ডোতে খোলা হয়েছে। C-x 0বা ব্যবহার করে আপনি একক উইন্ডোতে ফিরে যেতে পারেন C-x 1

সঙ্গে M-x winner-modeআপনি সহজেই দুই অবস্থানের মধ্যে সুইচ করতে পারেন। C-c <left>/ M-x winner-undoএবং C-c <right>/ M-x winner-redoউইন্ডো কনফিগারেশন মধ্যে স্যুইচ। এক্ষেত্রে কনফিগারেশনগুলি দুটি ফাইলের মধ্যে একটি ফাইল দেখলে অবস্থান করবে।

দ্রষ্টব্য: কনফিগারেশনের তালিকায় winner-undoএবং winner-redoফাংশনগুলি কাজ করে। যদি কনফিগারেশন পরিবর্তন করা হয়, যেমন চলন্ত পয়েন্ট, তবে বর্তমান কনফিগারেশন তালিকার শীর্ষস্থানীয় হয় এবং winner-redoঅবৈধ হয়, winner-undoএক্ষেত্রে পূর্ববর্তী অবস্থানটি ফিরিয়ে আনবে।

ওপি'র অবস্থার জন্য এটি নিম্নলিখিত প্রক্রিয়ার দিকে নিয়ে যায়;

  1. বিজয়ী মোড চালু করুন M-x winner-mode
  2. ফাইলটি দেখুন (ফাইলের নাম: ফাইল1.txt, বাফার নাম: ফাইল1.txt)
  3. M-x clone-indirect-buffer (নতুন অপ্রত্যক্ষ বাফার নাম: ফাইল 1.txt <2>)
  4. বর্তমান উইন্ডোটিকে একমাত্র উইন্ডো করুন C-x 1
  5. প্রথম সম্পাদনার অবস্থান সন্ধান করুন, পরিবর্তন করুন।
  6. আসল বাফার ভিজিটিং ফাইলে স্যুইচ করুন, C-x b(তৃতীয় পদক্ষেপের পরে অন্য বাফারটিতে একটি স্যুইচ না হলে ডিফল্টটি আসল বাফার হবে)। এটি বিজয়ীর কাছে ফিরে যেতে নতুন কনফিগারেশন তৈরি করে।
  7. বিকল্প সম্পাদনার অবস্থান সন্ধান করুন, পরিবর্তন করুন।

পূর্ববর্তী সম্পাদনা অবস্থানে একটি স্যুইচ (উইন্ডো কনফিগারেশন) সুইচগুলির মধ্যে উইন্ডো কনফিগারেশনে কোনও পরিবর্তন করা হয়েছে কিনা তার উপর নির্ভর করে;

  • কোনও পরিবর্তন যদি C-c <left>/ ব্যবহার করে স্যুইচ করা হয় M-x winner-undo
  • পরিবর্তন ব্যবহার সুইচ তৈরি করা হয় তাহলে C-c <left>/ M-x winner-undoফিরে এবং C-c <right>/ M-x winner-redoফরোয়ার্ড জন্য।

একটি পরিবর্তন অন্য winner-undoবা অন্য কিছু winner-redo


3

আপনি যদি evil-modeভিম স্তরটি ব্যবহার করেন তবে C-oএবং C-iএকই কাজ করবে।

তারা কমান্ড চালায় evil-jump-backward/ forwardC-oজাম্প তালিকায় পুরানো অবস্থানে ঝাঁপ দেয় যা স্বয়ংক্রিয়ভাবে সেট হয় (মোশন কমান্ডের উপর চিহ্ন সেট করা হয়)। C-iবিপরীতে যায়। আমরা TABএকটি C-oপরিবর্তে পরে ব্যবহার করতে পারেন C-i। সুতরাং উভয় ফাংশন ব্যবহার আপনাকে আপনার বর্তমান বাফারে পিছনে নিয়ে যাবে।

আপনি যদি এই বৈশিষ্ট্যটি ক্রস-বাফার হতে চান তবে দেখুন evil-jumpers: http://melpa.org/#/evil-jumper

«
অশুভ-জাম্পারটি অশুভ-মোডের জন্য একটি অ্যাড-অন যা জাম্প তালিকার বাস্তবায়নের পরিবর্তে এটি ভিমের আচরণের সাথে আরও ঘনিষ্ঠভাবে অনুকরণ করে। বিশেষত, এটি বাফার সীমানা পেরোন এবং প্রয়োজনে মৃত বাফারগুলিকে পুনরুদ্ধার করবে। জাম্পের তালিকাটি কোনও ফাইলে ধরে রাখা এবং সেশনের মধ্যে পুনরুদ্ধার করা যায়। »

দ্রষ্টব্য: আমি এই উইকিতে এটি শিখেছি


এটি প্রশ্নের উত্তর দেয় না। কোনও লেখকের সমালোচনা বা স্পষ্টতার জন্য অনুরোধ জানাতে, তাদের পোস্টের নীচে একটি মন্তব্য দিন leave
ড্যান

1
দোহ, এবং সেই স্বয়ংক্রিয় মন্তব্য দ্বারা, আমি আসলে বোঝাচ্ছি যে উত্তরটি দেখে মনে হচ্ছে এটি অন্য উত্তরের মন্তব্য হওয়া উচিত। আপনি যদি এটির নিজের মতো করে উত্তর হতে চেয়েছিলেন, আপনি কী C-oএবং কী করাতে কিছুটা প্রসারিত করতে C-iপারেন?
ড্যান

তুমি ঠিক বলছো ! সম্পন্ন.
এহভিন্স

2

আপনি যদি আইকিকেল ব্যবহার করেন তবে আপনি mark-ringপ্রতিটি বাফারের বা global-mark-ring(যা প্রতিটি বাফারে একক চিহ্নিতকারী রয়েছে) এর মধ্যে চিহ্নিতকারীদের মধ্যে দ্রুত নেভিগেট করতে পারেন ।

আপনি এটি মাল্টি-কমান্ড C-- C-SPC (বাফারের জন্য mark-ring) বা C-- C-x C-SPC(এর জন্য global-mark-ring) ব্যবহার করে করেন । কীটি একবার হিট করার পরে, আপনি রিংয়ের চিহ্নিতকারীদের মধ্যে চলে যেতে সাধারণ আইকিলস সাইক্লিং কীগুলি ব্যবহার করেন ।

(প্রিফিক্স আরগ ছাড়াই একই কীগুলি চিহ্নটি সেট করে ( set-mark-command) এবং গ্লোবাল চিহ্নটি pop-global-markযথাক্রমে পপ করে ), যেমন তারা ভ্যানিলা ইমাকগুলিতে করে)

প্রতিটি চিহ্নিতকারের লাইনের পাঠ্য সমাপ্তি প্রার্থী হিসাবে ব্যবহৃত হয়। আপনি টাইপ করার সাথে সাথে আপনার মিনিবাসু ইনপুটটি প্রার্থীদের সাথে মেলে এমন সংখ্যার সংকীর্ণ করে (যেমন, স্ট্রিং বা রিজেক্সপ ম্যাচিং)। আপনি দ্রুত মিলে যাওয়া চিহ্নিতকারীদের মধ্যে চক্র করতে পারেন বা তাদের যে কোনওটিতে সরাসরি যেতে পারেন। আপনি C-,সাইক্লিংয়ের জন্য বাছাই করা অর্ডার ( ) পরিবর্তন করতে পারেন ।


2

একটি সর্বনিম্ন তবে প্রায়শই সহায়ক সম্ভাবনা - যখন আপনি কেবল অন্য ফাংশনটি উঁকি দিতে চান - সেট হয়ে যাচ্ছে

(setq scroll-preserve-screen-position t)

যা আপনি আপনার সঠিক শুরু কার্সার অবস্থানে ফিরে যখন একটি থেকে অন্যটিতে পরিবর্তন এনেছে C-vএবং M-v


1

evil-modeVim- শৈলী চিহ্নিতকারী প্রয়োগ করে । আপনি ( m, এটি evil-set-marker) এর সাহায্যে চিহ্নিতকারী সেট করতে পারেন এবং ব্যাকটিক `( evil-goto-mark) এর সাথে চিহ্নটিতে বা চিহ্নের লাইনে '( evil-goto-mark-line)।

সুতরাং, আপনি প্রথম স্থানের সাথে ma"ক" চিহ্ন তৈরি করতে পারেন, দ্বিতীয় স্থান দিয়ে "বি" চিহ্ন তৈরি করতে পারেন maএবং তারপরে "ক" চিহ্নিত করতে 'aএবং 'b"বি" চিহ্নিত করতে লাফ দিতে পারেন।


1

আইমেনু এবং নীচের কোডটি ব্যবহার করুন

(defvar rimenu-position-pair nil "positions before and after imenu jump")
(add-hook 'imenu-after-jump-hook
          (lambda ()
            (let ((start-point (marker-position (car mark-ring)))
                  (end-point (point)))
              (setq rimenu-position-pair (list start-point end-point)))))

(defun rimenu-jump ()
  "jump to the closest before/after position of latest imenu jump"
  (interactive)
  (when rimenu-position-pair
    (let ((p1 (car rimenu-position-pair))
          (p2 (cadr rimenu-position-pair)))

      ;; jump to the far way point of the rimenu-position-pair
      (if (< (abs (- (point) p1))
             (abs (- (point) p2)))
          (goto-char p2)
          (goto-char p1))
      )))

1

গত 20 বছর বা তার বেশি সময় ধরে, আমি এই দুটি রত্ন ব্যবহার করছি:

(defun ska-point-to-register ()
  "Store cursorposition _fast_ in a register. Use ska-jump-to-register
to jump back to the stored position."
  (interactive)
  (point-to-register 8))

(defun ska-jump-to-register ()
  "Switches between current cursorposition and position
that was stored with ska-point-to-register."
  (interactive)
  (let ((tmp (point-marker)))
    (jump-to-register 8)
    (set-register 8 tmp)))

আমি তাদের সি- তে আবদ্ধ করি। এবং সি- যথাক্রমে এবং এটিকে আর উপলব্ধি না করে অবিচ্ছিন্নভাবে ব্যবহার করুন।

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


1
বাহ, আপনি বেঁচে থাকার চেয়ে বেশি সময় ধরে আপনি এটি ব্যবহার করছেন।
বেদাদ সাকিব

আমি অনুমান করি যে নোড বা ভিজ্যুয়াল স্টুডিও কোড জগতে এখনও এটি ঘটবে না, তবে কে জানে ... :-) তরুণ এবং স্মার্ট লোকেরা এখনও ইমাসকে তুলে নিচ্ছে দেখে আনন্দিত। ওহ, এবং, আমি এখনও 50 ;-) নই
স্টেফান কাম্পাউসন

এটা বেশ দুর্দান্ত। ক্ষণস্থায়ী-চিহ্ন-মোড সক্ষম করে দুটি স্বেচ্ছাসেবক অবস্থানের মধ্যে স্যুইচ করার একটি উপায় সন্ধান করার চেষ্টা করেছি এবং এটি সমস্যাটি সত্যিই ভালভাবে সমাধান করে :) আপনাকে ধন্যবাদ।
প্লেগহ্যামার

0

আপনি ম্যাক্রোগুলির সুবিধাও নিতে পারেন, যেহেতু সেগুলি দ্রুত সুবিধাজনক কীগুলিতে আবদ্ধ হতে পারে।

উদাহরণস্বরূপ, এন ব্যবহার করে N অবস্থানের জন্য একটি লাফ রেকর্ড করুন <F3> M-g g N <F4>এবং এর সাথে কী এফ 5 এ নির্ধারণ করুন C-x C-k b <F5>। তারপরে এম এবং এফ 6 অবস্থানের সাথে একই করুন। এখন থেকে আপনি সহজেই এন এবং এম এর মধ্যে লাফিয়ে এফ 5 এবং এফ 6 বিকল্প করতে পারেন

এমনকি সহজ, যেহেতু <F4>, executes গত ম্যাক্রো রেকর্ড করা হয় এবং <C-u> F4গত এক পাশে, আপনি মূল বাঁধাই পদক্ষেপ কেবল বিকল্প অবস্থানের লাফালাফি ব্যবহার করতে পারেন <F4>এবং <C-u> F4


অন্য আর মূল সম্ভাবনা হ'ল অন্য উইন্ডোতে পরোক্ষ বাফার তৈরি করা <C-x> 4 c। এই বাফার একই বিষয়বস্তু রয়েছে তবে একটি ভিন্ন পয়েন্ট অবস্থান হতে পারে। <C-x> oসাধারণ উপায় সহ এখন উইন্ডোগুলির মধ্যে কেবল বিকল্প

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