একটি n জিনোম-টার্মিনাল পরিবেশে মাউস সমর্থন অক্ষম করা


46

সম্পাদনা করুন: একটি সক্ষম মাউসের সমস্যাটি vimনির্দিষ্ট বলে মনে হচ্ছে gnome-terminal(সংস্করণ 3.4.1.1-1; আমি জিনোম 3 ফ্যালব্যাক মোড ব্যবহার করছি)। যদি আমি চালনা করি তবে xtermমাউস সমর্থনটি vimডিফল্টরূপে অক্ষম থাকে এবং আমার এটি সক্ষম করার বিকল্প রয়েছে ( :set mouse=aযা আমি কখনই করি না) এবং এটি অক্ষম করে ( :set mouse=)। বিপরীতভাবে, যখন আমি রান vimমধ্যে gnome-terminal, মাউস সমর্থন ডিফল্টরূপে সক্রিয় করা হয় এবং এটি এটি নিষ্ক্রিয় করা সম্ভব নয় ( :set mouse=কোনো প্রভাব নেই)। টার্মিনাল এমুলেটর পরিবর্তন করার কোনও সমাধান কি সংক্ষিপ্ত?


আমি মাউস সমর্থনটি সম্পূর্ণরূপে অক্ষম করতে চাই vim। আমি vimসংস্করণ 3.4.1.1-1 এর মাধ্যমে 2: 7.3.547-3 gnome-terminalচালিয়ে যাচ্ছি। নিম্নলিখিত কমান্ডগুলি, ভিআইএমের মাধ্যমে সরাসরি মৃত্যুদন্ড কার্যকর করা হয়েছে বা আমার .vimrcফাইলে যুক্ত করা হয়েছে , মাউস সমর্থন অক্ষম করতে ব্যর্থ হয়েছে:

set mouse =
set mouse =""

ভিআইএম ম্যানুয়াল এবং অনলাইনে পোস্ট পড়ার ভিত্তিতে, এই কমান্ডগুলির মধ্যে একটি বা উভয়ই কাজ করা উচিত। বিশেষত, ভিম ম্যানুয়ালটি নিম্নলিখিতটি উল্লেখ করে

'mouse'                 string  (default "", "a" for GUI, MS-DOS and Win32)
    The mouse can be enabled for different modes:
            n       Normal mode
            v       Visual mode
            i       Insert mode
            c       Command-line mode
            h       all previous modes when editing a help file
            a       all previous modes
            r       for |hit-enter| and |more-prompt| prompt 
    Normally you would enable the mouse in all four modes with: >
            :set mouse=a
    When the mouse is not enabled, the GUI will still use the mouse for
    modeless selection.  This doesn't move the text cursor.

আমি একটি ল্যাপটপ ব্যবহার করছি এবং যতবার আমার হাত ট্র্যাকপ্যাড ব্রাশ করে, ভিমে আমার কার্সার অবস্থানটি হঠাৎ করে চলে যায়।

উত্তর:


29

অনেক লিনাক্স স্বাদের সাথে এই খারাপ আচরণের কারণটি আমি পেয়েছি:

/usr/share/vim/vim80/defaults.vim # may be "vim81" depending on your vim version

~/.vimrcআপনার কাছে কোনও /etc/vimrcবা এ জাতীয় /etcফাইল থাকলেও যদি এটি না থাকে তবে এটি 'উত্সাহিত' , সুতরাং আপনার কাছে যদি না থাকে তবে @ এলজিপাস্কোয়েলের পরামর্শ অনুসারে একটি ফাঁকা তৈরি করুন:

mkdir ~/.vim/; [[ -s ~/.vim/vimrc ]] && echo "aborted, file exists" || :> ~/.vim/vimrc

আপনি যদি ডিফল্ট.ভিম থেকে প্রাপ্ত অন্যান্য বৈশিষ্ট্যগুলি (সিনট্যাক্স হাইলাইট করার মতো) পছন্দ করেন তবে আপনি আগের কমান্ডের পরিবর্তে এই আদেশটি ব্যবহার করতে পারেন:

mkdir ~/.vim/; [[ -s ~/.vim/vimrc ]] && echo "aborted, file exists" || echo -e "source /usr/share/vim/vim80/defaults.vim\nset mouse=" > ~/.vim/vimrc

2
ধন্যবাদ! সেই ফাইলটিতে "মাউস -a" রেখাটি মন্তব্য করা আমার জন্য সমস্যাটি সমাধান করেছে (আর্চলিনাক্সে)
ভাগ্যবান

1
আপনাকে সেই ফাইলটি সম্পাদনা করতে হবে না (যা আর্চলিনাক্সে ভিম-রানটাইমের অংশ)। যেমনটি এই ফাইলটিতে বলা হয়েছে, কোনও ভিআইএমআরসি না পাওয়া গেলে এটি কেবল লোড হবে। তার অর্থ হল যে .vimrcআপনার বাড়িতে কোনও ফাইল স্থাপন করা সমস্যার সমাধান করা উচিত (এটি আমার জন্য হয়েছিল)। এটিতে কিছু ধারণ করার দরকার নেই, এটি খালি ফাইলও হতে পারে।
lgpasquale

এটি ফেডোরার 25 এর আসল সমাধান
কামিকাজেসিজেড

আমি নিশ্চিত করি 2017 সালের শেষের দিকে এটি ডেবিয়ান 8 এ আমার জন্য কাজ করেছে
ক্রিগ্গি

1
@rlf আমার মতে এমন একটি ফাইল সম্পাদনা করা /usr/share/যা আপনার প্যাকেজ ম্যানেজার দ্বারা পরিচালিত হয় এটি একটি খারাপ ধারণা। আপনি যদি কিছু বিকল্প রাখতে চান তবে defaults.vimআমি সেগুলিতে অনুলিপি করব ~/.vimrc
lgpasquale

24

মাউস সমর্থন ডিফল্টরূপে অক্ষম করা হয়েছে, তাই কিছু এটি চালু করছে। আপনার set mouse=ব্যর্থ হওয়ার সম্ভাব্য কারণ হ'ল এটি যা চালু করছে তার আগে এটি চলছে। আমি আপনার বাকী ভিএমআরসি এবং সম্ভবত সিস্টেমের প্রশস্ত ভিআরসিআর ( /etc/vim/vimrcএকটি আদর্শ অবস্থান) দেখতে চাই।

শেষ অবলম্বন হিসাবে, আপনি এটি সত্যিই কুৎসিত হ্যাক করতে পারেন যা আপনাকে সম্পাদকের নিয়ন্ত্রণ দেওয়ার আগে কমান্ডটি শেষ কাজগুলির মধ্যে একটি হিসাবে পরিচালিত করবে।

autocmd BufEnter * set mouse=

2
আমার /etc/vim/vimrcফাইলটি বেশ খালি ( runtime! debian.vimএবং একটি শর্তসাপেক্ষ if filereadable("/etc/vim/vimrc.local") ; source /etc/vim/vimrc.local; endif)। /etc/vim/vimrc.localফাইল আমার সিস্টেমে কোন অস্তিত্ব নেই। আমার ~/.vimrcফাইলটিতে কয়েকটি লাইন রয়েছে যা আমি ম্যানুয়ালি যুক্ত করেছি। একটি straceএর vimপ্রকাশ করে যে, কনফিগ ফাইলে নিম্নলিখিত স্থানগুলিতে পরীক্ষা: /usr/share/vim/vimrc, /etc/vim/vimrc.local( ENOENT ), এবং /home/user/.vimrc। (কেন আমি ENOENT ত্রুটিটি গ্রহণ করব; ifবিবৃতি এই অস্তিত্বহীন ফাইলটি খোলার প্রচেষ্টাকে আটকাচ্ছে না ?)
ব্যবহারকারী001

এছাড়াও, আমি যদি :set mouse=সরাসরি ভিএম টাইপ করি তবে এটি কনফিগার ফাইল থেকে কোনও সেটিংস ওভাররাইড করা উচিত নয়? vimমাউস নিয়ন্ত্রণ অক্ষম না করে কেন এই বিবৃতিটির সরাসরি সম্পাদন করা হবে ?
ব্যবহারকারী001

1
@ ব্যবহারকারী001 আপনি ভিএম ENOENTহিসাবে ফাইলটি উপস্থিত আছে কিনা তা পরীক্ষা করে দেখতে হবে। এটি সাধারণত কল করেই করা হয় statযা ENOENTযদি ফাইলটি না থাকে তবে ফিরে আসে returns
উলিচ ড্যাঞ্জেল

2
@ ব্যবহারকারী001 আহ, বর্তমান সেশনে টাইপ করার সময় এটি কাজ করে না এমনটি গুরুত্বপূর্ণ তথ্য। এর উপর ভিত্তি করে, আমি নিশ্চিত নই যে এটিই সমস্যাটি ভিএম। সম্ভবত জিনোম-টার্মিনালটি ভয়াবহ কিছু করছে। আপনি কি একটি ভিন্ন টার্মিনাল এমুলেটর চেষ্টা করতে পারেন?
প্যাট্রিক

হাই, ভাল পরামর্শ। আমি চেষ্টা করেছি xtermএবং মাউস অ্যাক্টিভেশন নিয়ে কোনও সমস্যা ছিল না। আমি টাইপ করে সমস্যা পুনর্গঠন পারে :set mouse=aমধ্যে vimচলমান xterm(এবং টাইপ করে এটা বিপরীত :set mouse=)। কোনও সমস্যা কীভাবে gnome-terminalসমস্যাটি সমাধান করবেন? আমার নতুন থ্রেড শুরু করা উচিত? ধন্যবাদ।
ব্যবহারকারী001

9

আমি ফেডোরা সার্ভার 25 হোস্টের আমার ওএস এক্স "টার্মিনাল" অ্যাপ্লিকেশনটিতে এটি চালিয়েছি। আমি এটি স্থায়ীভাবে আমার .vimrc এর সাথে এর সাথে সমাধান করেছি:

set mouse=
set ttymouse=

এখন আমি আমার মাউসের সাহায্যে টার্মিনালের স্ক্রোলব্যাকে আমার আগের বাশের ইতিহাস পর্যন্ত স্ক্রোল করতে পারি।


একই ক্যাটালগটিতে একটি vimrc.local তৈরি করার জন্য দৃ strongly়ভাবে সুপারিশ করা হয়েছে, কারণ vimrc.local vim আপডেট পেলে আপডেট হবে না
অনাথ

এটি রাস্পবিয়ান 9.4-এ আমার জন্য কাজ করেছে। আমি PUTTY এর মাধ্যমে লগ ইন করলে অন্যান্য উত্তরগুলি অনাকাঙ্ক্ষিত মাউসের আচরণের সমাধান করে না।
দিমিত্রি

অন্য কাউকে কেটে পেস্ট করার set ttymouse=জন্য, নোটটিতে আমার কাছে অদ্ভুত আচরণ ছিল, উদাহরণস্বরূপ তীরচিহ্নগুলির আচরণের কারণে, পাল্টানো কী থেকে পালাতে পারে।
মোজবুজ

4

মাউসের প্রতি নতুন ভিমের সংবেদনশীলতা সম্পর্কে আপনার মতো আমারও একই অভিযোগ ছিল। ব্যবহার করে set mouse=""আমার জন্য এটি না।

set mouse=cআমার .vimrcফাইলটির নীচে আমার কাছে (কোনও উদ্ধৃতি নেই) আছে । কাজটি করার সময় আমার (উঘ!) উইন্ডোজ মেশিনটি থেকে স্ল্যাশ করতে "পুটটি" ব্যবহার করা ব্যতীত ভিমকে মাউস ব্যবহার থেকে বিরত রাখা উচিত বলে মনে হয়েছিল। পিটিটিওয়াইতে পেস্ট করতে আমাকে শিফট-মিডল-বোতামটি ব্যবহার করতে হবে।

2018-03-30 সম্পাদনা করুন: আমি এখন অনাকাঙ্ক্ষিত :mouse=মাউস প্রভাবগুলি থেকে মুক্তি পেতে ভিমের কয়েকটি রিমোট (সেন্টোস 6.7) উদাহরণগুলিতে : (কোনও উদ্ধৃতি বা কিছুই নেই) ব্যবহার শুরু করেছি ।


হাই, পরামর্শের জন্য ধন্যবাদ। আমি এটি আমার .vimrcফাইলে যুক্ত করেছি এবং এটি ইন্টারেক্টিভভাবে কার্যকর করার চেষ্টা করেছি ( :set mouse=c), তবে আমার ক্ষেত্রেও এর কোনও প্রভাব ছিল না।
ব্যবহারকারী 100

3

এটি আপনার যুক্ত করুন .vimrc:

if has("gui_running")
    "echo "yes, we have a GUI"
    set mouse=a
else
    "echo "Boring old console"
    set mouse=
endif

1
এটি জিজ্ঞাসিত প্রশ্নের সাথে কোনও প্রাসঙ্গিক নয়।
GKFX

@GKFX আপনি কি নিশ্চিত? এটি আমার কাছে প্রাসঙ্গিক বলে মনে হচ্ছে। has("gui_running")টার্মিনাল পরিবেশে 0 টি নোট করুন is এই উত্তরটি অন্যের মতো নয়, কেবলমাত্র টার্মিনাল পরিবেশে মাউস অক্ষম করতে অতিরিক্ত প্রচেষ্টা নেয় , যা জিভিএম-এ সক্ষম করে রেখে প্রশ্ন জিজ্ঞাসা করে।
এইচডিভি

@hvd আমি আমার মন্তব্যটি কিছুটা কঠোরভাবে বলেছি; আমি ক্ষমা প্রার্থনা করছি. যাইহোক, এই উত্তরটি ওপি ইতিমধ্যে যা চেষ্টা করেছিল তার চারদিকে কেবল একটি ব্লক রাখে, সুতরাং এটি সহায়ক হওয়ার সম্ভাবনা কম।
GKFX

1
@GKFX ফেয়ার পয়েন্ট, এবং অন্যান্য উত্তরের ক্ষেত্রেও প্রযোজ্য।
এইচডিভি

3

ডিবিয়ান স্ট্রেচে কিছু কেন্দ্রীয় সেটিংস লোড হওয়ার পরে লোড হয় /etc/vim/vimrcএবং /etc/vim/vimrc.local। দেখুন /etc/vim/vimrc:

...
" Vim will load $VIMRUNTIME/defaults.vim if the user does not have a vimrc.
" This happens after /etc/vim/vimrc(.local) are loaded, so it will override
" any settings in these files.
" If you don't want that to happen, uncomment the below line to prevent
" defaults.vim from being loaded.
"let g:skip_defaults_vim = 1
...

এই ফাইলটি ডিফল্ট হয় /usr/share/vim/vim80/defaults.vim। এখন একটি কেন্দ্রীয় ফাইলের অধীনে পরিবর্তন করা /usr/share/...হয়

  • মন্দ
  • স্থায়ী নয়, এটি আপডেটের পরে উল্টে যায়

সেট skip_defaults_vimউপরের লাইনটি uncommentig দ্বারা অন্যান্য সমস্ত বিকল্প যে ফাইল দ্বারা সেট সরিয়ে ফেলা হয়। অযাচিত অপশনগুলি সরাতে নিম্নলিখিতগুলিতে প্রবেশ করুন /etc/vimrc.local:

" /etc/vim/vimrc.local
" honor skip_defaults_vim from the master /etc/vim/vimrc file
if ! exists('skip_defaults_vim')
  " Source the defaults file manually from here
  source $VIMRUNTIME/defaults.vim
endif

" avoid loading the defaults twice
let g:skip_defaults_vim = 1

" revert any unwanted changes the defaults file introduced
set mouse=

" set any other options you want centrally on your system
"set paste " uncomment if you want paste insert enabled
"...

এটি defaults.vimম্যানুয়ালি লোড করে এবং স্বয়ংক্রিয় লোডিংটি বন্ধ করে দেয়, সুতরাং আপনাকে .vimrcপ্রতিটি ব্যবহারকারীর অ্যাকাউন্টের জন্য তৈরি না করেই কোনও অযাচিত সেটিংসে ফিরে যাওয়ার সুযোগ দেয় ।


আপনার উত্তরটি শেষ পর্যন্ত আমাকে দেবিয়ান 10 "বাস্টারে" আমার সমস্যার একটি সত্য সমাধান দিয়েছে। অনেক ধন্যবাদ.
এফ

0

কিছুটা প্রশ্নের সাথে সম্পর্কিত, আপনি যদি নিওভিম (এনভিআইএম) ব্যবহার set mouse=করেন তবে আপনার ~/.config/nvim/init.vimকনফিগারেশন ফাইলটি রাখা উচিত ।

ডিরেক্টরি উপস্থিত না থাকলে এটি দিয়ে তৈরি করুন mkdir -p ~/.config/nvim/

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