আমি কি ভিমে আল্ট কী মানচিত্র করতে পারি?


90

.Vimrc এ নীচের লাইনটি যুক্ত করার জন্য আমি মানচিত্রের চেষ্টা করেছি, তবে এটি কার্যকর হয় না। আমি .vimrc টি ভিম দ্বারা লোড করা আছে তা পরীক্ষা করে দেখলাম।

map <Alt-D> <C-D>

এই মানচিত্রটিতে কোনও ত্রুটি আছে?


আপনি কি টার্মিনালে ভিএম ব্যবহার করছেন, বা গুই সংস্করণ (জিভিআইএম, ম্যাকভিম)?
নিক নোলসন

এছাড়াও নোট করুন যে encodingম্যাপিংয়ের পরে যদি আপনার পরিবর্তনগুলি চলে তবে আপনি আপনার আল্ট কীগুলি থেকে কী বেরোন তা আপনি প্রথমে যা সেট করেছেন তার সাথে মেলে না।
ড্যাশ-টম-ব্যাং

উত্তর:


136

ম্যাক ব্যবহারকারীদের কাছে: ALT + hjkl ম্যাপিংয়ের জন্য, পরিবর্তিত প্রকৃত চরিত্রটি ব্যবহার করুন (INSERT মোডে থাকা অবস্থায় কোন অক্ষরটি সংযুক্তি ব্যবহার করে তা সন্ধান করুন), উদাহরণস্বরূপ আমার কীবোর্ডের সাথে আমি পেয়েছি:

<ALT+j> ==> ª
<ALT+k> ==> º

ইত্যাদি। সমাধান এখানে স্ট্যাক ওভারফ্লোতে পাওয়া গেছে ।

আমি এটি আমার .vimrc এ ব্যবহার করে ALT + k \ j এর সাথে লাইনগুলি উপরে এবং নীচে সরানোর জন্য ব্যবহার করেছি:

nnoremap ª :m .+1<CR>==
nnoremap º :m .-2<CR>==

inoremap ª <Esc>:m .+1<CR>==gi
inoremap º <Esc>:m .-2<CR>==gi

vnoremap ª :m '>+1<CR>gv=gv
vnoremap º :m '<-2<CR>gv=gv

এখানে ব্যাখ্যা হিসাবে ।

আশা করি এটি কার্যকর, ভিম উপভোগ করুন :)

সংযোজন বাই Dylan_Larkin (2019): একটি ম্যাক, "এটির জন্য কাজ করতে মেটা কী হিসেবে ব্যবহার করবেন অপশন " চালু করা আবশ্যক অফ মধ্যে Terminal-> Preferences-> কীবোর্ড


10
আমি এখানে এসেছি ঠিক এটিই (Alt + HJKL স্প্লিট সরাতে)! ধন্যবাদ!
জেমি স্কেমব্রি

6
এটি কোন চরিত্রের তা খুঁজে বের করার একটি সহজ উপায় হ'ল ব্যবহার করে catcatআপনার পছন্দসই কী সংমিশ্রণটি কেবল বিড়াল উইন্ডোটিতে টাইপ করুন এবং এর ভিতরে লিখুন । খুঁজে পেয়েছি যে Alt + বন্ধনীগুলি 'এবং' আমার ম্যাকের উপর রয়েছে।
ডিভিসিআরএন

4
এটি বিভাজনগুলির মধ্যে সরানোর জন্য Alt + HJKL হিসাবে দুর্দান্ত কাজ করে, আমার আঙ্গুলগুলি এটি পছন্দ করে !! nmap ˙ <C-w><Left> nmap ¬ <C-w><Right> nmap ˚ <C-w><Up> nmap ∆ <C-w><Down>
জন

4
এই সঠিক ম্যাপিংগুলি ওএসএক্সের ভবিষ্যতের সংস্করণে প্রত্যাশার মতো কাজ করতে পারে না। sed -n lআপনি ম্যাপিংটি কনফিগার করার আগে <আক> এবং <আ> এর আউটপুট দেখতে ব্যবহার করুন । আমার ক্ষেত্রে <আজ> হ'ল এবং <আক> হ'ল˚
luk3thomas

4
ম্যাকোস-এ, যখন Use Option as Meta Keyআইটার্ম প্রোফাইল সেট করা বা চালু করা হয় তখন traditionতিহ্যগতভাবে ⌥ key to Esc+(লিনাক্স / ইউনিক্সের মতো) আচরণ করবে। সুতরাং আপনাকে মানচিত্রটি ভিমে সেট করতে হবে না <^[j>, কেবল এটিতে ম্যাপ করুন <A+j>বা <M+j>এটি কাজ করে।
goetzc

40

:help key-notationবিভিন্ন কী কী মানচিত্র করতে কোন ফর্ম্যাটটি ব্যবহার করা দরকার তা বর্ণনা করে। Alt এর ক্ষেত্রে, আপনি হয় <A-বা ব্যবহার করতে পারেন <M-। সুতরাং আপনার ম্যাপিং হবে

map <M-d> <C-d>

আমি (যেমন, ) এর noreবৈকল্পিকটি ব্যবহার করার প্রস্তাব দিই যদি না আপনি স্পষ্টভাবে ডান হাতের ম্যাপিংয়ের জন্য পুনরায় মূল্যায়ন করার অনুমতি না চান।:mapnoremap


4
এটির এখনও কোনও প্রভাব নেই। Alt + D ইনপুট এখনও ভিমের কাছে কিছু অদ্ভুত চরিত্র প্রবেশ করায়।
থমসন

9
এটি একটি পৃথক বিষয়। আপনার টার্মিনালটি ভিমে একটি মাল্টি-বাইট অক্ষর প্রেরণ করছে এবং ভিম তার অর্থ ব্যাখ্যা করতে জানে না <A-d>। আপনাকে সম্ভবত আপনার টার্মিনালের সেটিংস পরিবর্তন করতে হবে যাতে এটি প্রেরণ <A-d>করে <Esc>d
জামেসান

4
@ জামেসান কীভাবে এটিার্ম 2 এ করবেন?
ফিন 4

33

আমি নিশ্চিত "আর" সম্ভব "। নীচের আপডেটটি পড়ুন দয়া করে।

হ্যাঁ, আপনি এমনকি টার্মিনাল তেজ করতে পারি, কিন্তু কোনো সত্যিকারের আছে ধরা সব উত্তর। আপনাকে মূলত দুটি পদক্ষেপ অনুসরণ করতে হবে:

  1. <M-d>স্বরলিপিটি বিদ্যমান রয়েছে তা নিশ্চিত করুন এবং আপনার টার্মিনাল ইনপুটগুলি ঠিক কী ম্যাপ করুন ( ^[এটি পালানোর অক্ষর):

    $ cat
    ^[d
    $
    
    " in your .vimrc
    execute "set <M-d>=\ed"
    " you have to use double quotes!
    
  2. আপনার সদ্য "নির্মিত" সংমিশ্রণে কিছু মানচিত্র করুন:

    noremap <M-d> :echo "m-d works!"<cr>
    

এটি কীভাবে কাজ করে তা বুঝতে পেরে আপনি এই "কৌশল "টিকে অন্য" অদ্ভুত "সংমিশ্রণে প্রসারিত করতে পারেন, উদাহরণস্বরূপ, আমি টার্মিট ব্যবহার করছি, এবং ভিম চিনতে পারে না <S-F1>, আমি যে বিড়ালটি পেয়েছি তা ব্যবহার করে ^[[1;2P। তারপরে, আমার ভিমার্কে আমি এটি করি: execute "set <S-F1>=\e[1;2P"এবং তারপরে আমি এটিকে যেকোন কিছুতে ম্যাপ করতে পারি।

দ্রষ্টব্য: আমি জানি না কেন, তবে কিছু লোকের \<Esc>পরিবর্তে কাজ করে \e


আপডেট (ফেব্রুয়ারী 2016)

আপনার টার্মিনালটি সঞ্চালিত টার্মিনোটির উপর নির্ভর করে আপনি সম্ভবত ... বেশিরভাগ টার্মিনালগুলিতে "Alt + h" উদাহরণস্বরূপ ম্যাপযুক্ত ^[h, যা হ'ল: "એસ્કેপ + এইচ"। সুতরাং এটি কী ওভাররাইট করতে পারে। আমি কেবল চেষ্টা করেছি (আবার) এবং এটি কাজ করে বলে মনে হচ্ছে, তবে আমি বিশ্বাস করি এটি খুব কৃপণ এবং ত্রুটিযুক্ত প্রবণতার বাস্তবায়ন।

তবুও, যথেষ্ট সাহসের জন্য, এখানে একটি পরীক্ষামূলক প্লাগইন রয়েছে:


স্টাফের পরিবর্তে execute "set..., আপনি সরাসরি ব্যবহার করতে পারেন set <M-d>=^[d^[আসলে একটি এস্কেপ অক্ষর সঙ্গে প্রবেশ C-v-Esc। এটি rxvt / urxvt এ প্রয়োজনীয় ছিল, তবে এক্সটার্মের বিশেষ চিকিত্সার প্রয়োজন হবে না। উইম উইকিতে এই বিষয়ে আরও তথ্য ।
মিকাহ এলিয়ট

এর সাথে কি কোনও অনুরূপ দৃষ্টিভঙ্গি রয়েছে যা tmux এর সাথে কাজ করবে যাতে মোঃ বাঁধাই করা যায়?
জর্জ

4
আমার জন্য, <Esc>তাহলে dএখন <Alt>+ এর মতো একই কাজ করে d। এছাড়াও, আপনি শুধু এই সঙ্গে এক লাইন করতে পারি না Ctrl-v, <Esc>অনুযায়ী এখানে
স্পারহাক

24

ম্যাক ওএসএক্স-এ ভিমের মানচিত্র আল্ট কী:

আপনার টার্মিনালটি ভিমে পাঠাচ্ছে কী কোডটি দেখে শুরু করুন:

$ sed -n l
^[[1;9D 

উপরের উদাহরণে, আমি কমান্ডটি চালিয়ে টিপছি Alt + Left

এটি ^[[1;9Dহ'ল পালানো ক্রমটি ভিমে প্রেরণ করা হচ্ছে, তাই আমরা আমাদের ম্যাপিংয়ের জন্য এটি ব্যবহার করতে পারি।

map <Esc>[1;9D 

4
আপনি যদি আইটিার্ম 2 অ্যাপ ব্যবহার করছেন তবে কীভাবে প্রোফাইল> কীগুলিতে কী ম্যাপ করা হয়েছে তা যাচাই করা ভাল।
ফিকোভনিক ১৮

4
বাম Optionকী ( ) Esc+alt+qnnoremap <silent> <Esc>q :qa!<cr>
আইটির্ম 2

আপনি যদি পুনর্নির্মাণগুলি> প্রোফাইলগুলিতে যান তবে আপনার বর্তমান প্রোফাইলটি নির্বাচন করুন, সেই প্রোফাইলের জন্য "কীগুলি" ট্যাবে যান এবং "বামে ⌥ কী" -র "Esc +" "বিকল্পটি পরিবর্তন করতে পারেন (উপলব্ধ বিকল্পগুলি হ'ল "সাধারণ", "মেটা" এবং "ইস্ক + +")।
জিওভান্নি বেনুসি

12

ব্যবহার:

map <A-D> <C-D>

দেখুন :help key-notation


4
মনে হচ্ছে এটি এখনও কাজ করে না। Alt + d ভিমের কাছে একটি অদ্ভুত চরিত্র ইনপুট করবে যা আনম্যাপের ক্ষেত্রে একই।
থমসন

আমার জন্য কাজ করে (আমি ব্যবহার করছি gvimউইন্ডোজ দিকে)
Deqing

8

আপনার টার্মিনালটি আল্ট-ডি "সঠিকভাবে" সংক্রমণ করতে পারে না। আপনি ভিভিতে প্রকৃত পালানোর অনুক্রমটি পেতে সিভি ব্যবহার করতে পারেন এবং এটি আপনার ম্যাপিং তৈরি করতে ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনার .vimrc সম্পাদনা করুন এবং নিম্নলিখিত ক্রমিক "সিভি অল্ট-ডি" টাইপ করে প্রকৃতটি প্রতিস্থাপন করুন যাতে আপনার ভিএমআরসি-তে সঠিক পালানোর অনুক্রম থাকবে। আপনার টার্মিনালটি ভিমে কিছু না পাঠালে এটি কাজ করবে না।


8

আমার টার্মিনাল ^[xকমান্ড তৈরি করবে (উদাহরণস্বরূপ Alt-x)। ভিমের ভিতরে এটি কী কাজ করতে পেরেছিল তা ছিল vim.wikia.com এর এই ছোট স্ক্রিপ্ট :

for i in range(97,122)
  let c = nr2char(i)
  exec "map \e".c." <M-".c.">"
  exec "map! \e".c." <M-".c.">"
endfor

সমস্ত Alt কী ম্যাপিং স্থির করতে .vimrc এ যুক্ত করুন।


1

ম্যাক ব্যবহারকারীদের জন্য ব্রুনোর উত্তরের অনুসরণ হিসাবে, আপনার বিকল্প কীটি ম্যাপ করা হয়েছে তা নিশ্চিত করার চেষ্টা করুন Esc+

এটি আপনাকে বিকল্পটির "স্বাভাবিক" আচরণ দেবে (A ভিমে ) কীটির ।

উদাহরণস্বরূপ, মধ্যে iterm2, এই বিকল্পটি এর অধীনে পাওয়া যাবে Preferences > Profiles > Keys:

iterm2 পছন্দ স্ক্রিনশট


আমাকেও nnoremap <Esc>j :m .+1<CR>==
কনফিগারটি

0

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

এখানে আমার সমাধান:

আল্ট সহ একটি সংমিশ্রণ কীস্ট্রোক তৈরি করতে আপনাকে পছন্দ> কীবোর্ডে সংমিশ্রণটি ঘোষণা করতে হবে এবং ভিএম সেটআপ ফাইলে এই সংমিশ্রণটি ব্যবহার করতে হবে (মেটা কী হিসাবে ব্যবহার বিকল্পটি চেক করুন)।

আউটপুট অবশ্যই একটি অস্বাভাবিক চরিত্র হতে হবে ( aউদাহরণস্বরূপ নয়) যাতে আপনি একটি নিয়মিত চরিত্রকে ওভাররাইড করছেন না।

নীচের উদাহরণে আপনার ALT-up এর সাথে যথেষ্ট ভিম করতে সক্ষম হওয়া উচিত।

ভিম সেটিং: ভিম সেটিং

ম্যাক সেটিং: ম্যাক সেটিং

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