আমি কীভাবে ভিমে "চাপুন ENTER বা টাইপ কমান্ড চালিয়ে যেতে" অক্ষম করব?


102

বাহ্যিক কমান্ড কার্যকর করার পরে প্রদর্শিত "প্রেস ENTER বা চালিয়ে যেতে কমান্ড টাইপ করুন" প্রম্পট অক্ষম করার কোনও উপায় আছে কি?

সম্পাদনা: একটি <CR>কার্যনির্বাহী পাওয়া গেছে: আমার .lvimrc এ শর্টকাটে একটি অতিরিক্ত যুক্ত করুন ।

map <F5> :wall!<CR>:!sbcl --load foo.cl<CR><CR>

আরও ভাল ধারণা?


9
উইন্ডোজ On-এ, আপনি প্রায়শই এই সন্ধানটি পেয়ে যাবেন যে "মুছে ফেলা হয়েছে এমন" স্বাপ ফাইল খুলতে না পারা "ত্রুটিগুলির কারণে যা আপনি প্রম্পটটির কারণ হয়ে থাকেন। সমাধানটি set dir=$TEMPআপনার ভিএমআরসিতে রাখা হয়। এটি ভিএমকে তার টেম্প ফাইলগুলির জন্য সঠিক টেম্প ফোল্ডারটি ব্যবহার করতে বলে। এর ফলে ত্রুটিগুলি সংশোধন করা হয় এবং "প্রেস টিপুন" প্রম্পটগুলি সরিয়ে ফেলা হয়।
লুকাস

উত্তর:


76

আমি নিশ্চিত না যে এটি কীভাবে বিশ্বব্যাপী করা যায় তবে একটি কমান্ডের জন্য:

:silent !<command>

পরে কোনও স্থান অন্তর্ভুক্ত করার বিষয়ে নিশ্চিত হন silent


3
দুর্ভাগ্যক্রমে আমার পক্ষে খুব বেশি সহায়ক নয়, এটি স্ক্রিনটি গণ্ডগোল করে এবং আমাকে Ctrl-L টিপতে হয় ... যা স্পেস টিপানোর চেয়েও বিরক্তিকর।
জোহান কোটলিনস্কি

1
যদিও আমার গ্রেপ স্ক্রিপ্টের জন্য কাজ করেছেন!
মিক্কো রন্তানেন

5
নীচে মন্তব্যকারীদের সাথে তাল মিলিয়ে (যিনি কমান্ড শেষে অতিরিক্ত <সিআরএল যোগ করার পরামর্শ দিয়েছেন), নীরব ব্যবহার করার সময় আপনি অতিরিক্ত <Cl> যোগ করতে পারেন, যাতে আপনাকে এটি ম্যানুয়ালি চাপতে না হয়। স্ক্রিনের সাথে ভাল কাজ করে, তারপর।
ভিক্টর ফারাজডাগি

4
শুধু ব্যবহার করুন: নীরব! কমান্ড, এবং তারপরে: পুনরায় আঁকুন! পরে - আমি মনে করি এটি স্ক্রিপ্টগুলির কারণে এটি স্বয়ংক্রিয়ভাবে এটি করতে পারে না যা আপনি থাকতে চান এমন পর্দার জিনিসগুলি করতে পারে উদাহরণস্বরূপ, একটি ঘড়ি বা অন্য কোনও স্থিতি পর্যবেক্ষণের জিনিস ... কেবল একটি অনুমান
ওসিরিসগোথ্রা

2
হ্যাঁ .. এটি আমার জন্যও পর্দা গণ্ডগোল করে। :redraw!বিকল্প এটা solves। ডাবল <cr>সম্ভবত একই রকম। এবং কম জটিল
alpha_989

57

একটি কাজ খুঁজে পেয়েছে: <CR> মানচিত্র কমান্ডে একটি অতিরিক্ত যুক্ত করুন ।

map <F5> :wall!<CR>:!sbcl --load foo.cl<CR><CR>

2
কখনও এই চিন্তা ছিল না। একদম অসাধারণ!
কোহনি রবার্ট

1
হ্যাঁ, আমার কমান্ডে অতিরিক্ত <সিআর> যোগ করে কৌশলটিও করেছে।
ড্যানিয়েল মিজস্লার

2
অবিশ্বাস্যভাবে সহজ। এটি সুপার কার্যকর!
ওয়েন ওয়ার্নার

28
:help hit-enter

1
আমি কেন আগ্রহী যে কেউ কেন এই উত্তরটি নিচে ভোট দিয়েছিল, যেহেতু :help hit-enter"ENTER টিপুন ..." প্রম্পটে কিছুটা দরকারী ব্যাকগ্রাউন্ডের তথ্য সরবরাহ করে। বোঝাতে কি যত্ন?
সিজেএস

38
': হিট-এন্টার' থেকে কোন তথ্য প্রশ্নের উত্তর দেয়? আমি এটি খুঁজে পাচ্ছি না।
জোহান কোটলিনস্কি

1
আপনি শেল আউট করার আগে আপনি সমস্ত কমান্ড লেখার "প্রেস এন্টার" প্রম্পট পেতে পারেন। <code> শর্টমেস </code> এর অধীন তথ্য যা <code> হিট-এন্টার </ em> লিঙ্ক করে সেই ক্ষেত্রে বৈধ। যাইহোক, আপনি যে প্রম্পটটি পাচ্ছেন তা হ'ল শেল আউট করা, সুতরাং ওয়ারগানের পরামর্শটি সঠিক। <code>: সহায়তা: নীরব </ কোড> এ উল্লিখিত হিসাবে "বাহ্যিক কমান্ডের জন্য এটি ব্যবহার করার সময়, এটি পর্দাটি বিশৃঙ্খলা করতে পারে | এটি পরিষ্কার করতে | CTRL-L | ব্যবহার করুন"। আপনি যুক্ত করতে পারেন: এটি ঠিক করতে আপনার কমান্ডে redraw বা Ctrl-L। অথবা আপনি ইতিমধ্যে করছেন দুটি রিটার্ন করুন।
স্বচ্ছ সংকলক

আমার কাছে, এটি ছিল set hl( :highlight) আমি hlsearchআসল শর্টকাট হ'ল এর শর্টকাট হিসাবে ভুল করে ব্যবহার করেছি hls। একটি sবিষয় :)

1
@ জোহানকোটলিনস্কি দ্যset nomore
টিনমারিনো


18

টেক্সট-মোড ভিমে স্ক্রিন মেসেজের মাধ্যমে একটি বহিরাগত প্রোগ্রাম চালিয়ে যাওয়া সমস্যার সাথে আমি এইভাবেই মোকাবিলা করেছি (আমার অভিজ্ঞতায় জিভিম এই সমস্যায় ভুগছেন না):

command! -nargs=1 Silent
\ | execute ':silent !'.<q-args>
\ | execute ':redraw!'

নিয়মিত নীরব কমান্ডের পরিবর্তে এটি ব্যবহার করুন:

:Silent top

13

এটি সম্ভবত ভিএমআরসি ফাইলে একটি সিনট্যাক্স ত্রুটি


5
এই. আমি .vimrc ফাইলটিতে ঠিক set numberতখনই ব্যবহার set syntaxকরেছি। একবার আমি যখন set syntaxভিমকে সরিয়ে ফেললাম তখন আমাকে আর অনুরোধ করবে না।
পাইপারচেস্টার

1
@ পাইপারচেস্টার এটি কাজ করেছে! টন পরামর্শ দেওয়ার চেষ্টা করা হয়েছে এবং এটি কেবল কাজ করেছে। ধন্যবাদ :)
পল ইভান্স

আমি ভিএম আপডেট করি, সমস্যা সমাধান হয়েছে। তবে আমি মনে করি লোকেরা :messageকী ভুল হচ্ছে তা জানতে টাইপ করতে পারে ।
ন্যানোনাভা

হাঁ। আমি লাইন ছিল set syntax। এটি দিয়ে প্রতিস্থাপন করা set syntax=onহয়েছে এবং এটি সমস্যার সমাধান করে।
ম্যাকসবার্পএক্স 1

7

অ্যান্টনির উত্তর আমাকে সঠিক জায়গায় নিয়ে গিয়েছিল এবং আমি অনেক বার্তা না থামিয়ে জিভিএম কনফিগার করতে সক্ষম হয়েছি।
আমি shortmess=aoOtIআমার gvimrc ফাইলটিতে সেট যুক্ত করেছি।
এটি আপনার দ্বারা আনা সহায়তা পৃষ্ঠায় ব্যাখ্যা করা হয়েছে :help shortmess
চিঠিগুলির অর্থ আপনি যে বার্তাগুলি দেখতে চান না সেগুলি বোঝায় বা হিট এন্টার স্টপটি এড়ানোর জন্য ভিম কেটে ফেলতে চান ।
আমি আগে columns=130gvimrc দিয়ে একটি প্রশস্ত প্রাথমিক উইন্ডো সেট করে এটি পরিচালনা করেছিলাম যাতে কয়েকটি বার্তা এটি উপচে পড়ে যায় এবং বিরক্তিকর, ক্লান্তিকর, প্রবেশের প্রয়োজন হয়।


6

"প্রেস এন্টার" না করেই আমি কৌশলগত পরিস্থিতিতে বাহ্যিক কমান্ডগুলি চালিত করি। বিপরীতে :silent, আমি এখনও কমান্ড আউটপুট দেখতে পাচ্ছি।

কমান্ড লাইন

:exe ":!<command>" | redraw

স্ক্রিপ্ট / ফাংশন

exe ':!<command>' 
redraw

সাথে ম্যাপিং <expr>

map <expr> <F5> ":exe ':!<command>'\n:redraw\<CR>"

এটির সাথে ম্যাপিং <expr>একটি ফাংশন কল করে

map <expr> <F5> MyFoo()
fu! MyFoo()
    return ":exe ':!<command>' | redraw\<CR>"
endf

এটি কি কোনও উপায়ে পুনরায় ব্যবহারযোগ্য? আমি যখন এফ <command>
টিপছি

1
<command>একটি প্রকৃত বাহ্যিক কমান্ড, যেমনmap <expr> <F5> ":exe ':!gdb'\n:redraw\<CR>"
svlasov

4

তুমি ব্যবহার করতে পার:

call feedkeys(" ")

উদাহরণ স্বরূপ:

function! Interactive_Questions()
    echo "Question 1:"
    let response1 = getchar()
    echo "Question 2:"
    let response2 = getchar()

    " Do something

    " Without the next line, you would have to hit ENTER,
    " even if what is written (the questions) has no interest:
    call feedkeys(" ")
endf

এই উত্তরের জন্য ধন্যবাদ! তালিকাভুক্ত অন্যান্য অনেক জবাবের বিপরীতে আমার ব্যক্তিগত মামলার জন্য দ্রুত এবং সহজ এবং আসলে কার্যকর।
5

3

স্ক্রিন ক্লিয়ারের আগে একটি পুনরায় চিত্র আঁকাও কাজ করে। আমার যা ছিল তা এখানে:

exe 'ls'  
exe 'b4'  "This redraws, so the Prompt is triggered

তবে এটি প্রম্পটকে ট্রিগার করবে না:

exe 'ls'  
redraw  
exe 'b4'

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

1

আমার অনুরূপ সমস্যা আছে তবে আমি যখন একাধিক ফাইলগুলিতে একই স্ট্রিং প্রতিস্থাপন করতে একটি আরগডো চালাই যেমন,

 argdo %s/something/Something/eg|update

আমি ক্রমাগত পৃষ্ঠা টিপতে ছিল।

স্ক্রিপ্টটি চালানোর আগে আপনি নীচের বিকল্পটি সেট করতে পারেন যাতে অনেক প্রম্পটের পরিবর্তে কেবলমাত্র চূড়ান্ত প্রম্পট থাকে

:set nomore

এটি উত্তর ছিল: :set nomoreখারাপ লেহন এটি এখনও শেষ। এটি :h help hit-enter@
অ্যান্থনিতেও রয়েছে

1

আমি আমার কেস (একটি স্বতঃসম্পর্কিত) set shortmess+=Fকৌশলটি করেছি।

: h শর্টমেস
এফ কোনও ফাইল সম্পাদনা করার সময় ফাইলটির তথ্য দেবেন না:silent


0

আমি যদি এমন কোনও ডিরেক্টরি সংরক্ষণ করি যা ডিরেক্টরিতে থাকে যেখানে আমার ডিরেক্টরিতে লেখার অনুমতি নেই। আমি ডিরেক্টরিতে একটি chmod 777 করেছি (আমার কাছে ইতিমধ্যে ফাইলটিতে লেখার অনুমতি ছিল) এবং "প্রেস ENTER" বার্তাটি আর প্রদর্শিত হবে না।


0
  • আপনি যদি কোনও মূল মানচিত্র ব্যবহার করে থাকেন তবে আপনার আদেশের শেষে আরও কয়েকটি যুক্ত করে আপনার জীবন আরও সহজ হতে পারে - তবে সাধারণত 2 বার যথেষ্ট।
  • আপনি যদি ভিআইএম কমান্ড লাইন থেকে একটি কমান্ড চালানো হয়। তাহলে এটা এক ধরণের কৌতুকময়। silentআপনার প্রকৃত আদেশের আগে আপনি কীওয়ার্ড যুক্ত করতে পারেন । কমান্ড কার্যকর হওয়ার পরে এটি আপনাকে স্বয়ংক্রিয়ভাবে ভিএম উইন্ডোতে ফিরিয়ে আনবে। তবে আপনাকে এখনও ম্যানুয়ালি redrawসম্পাদন করতে হবে কারণ NERD_Tree এর মতো কয়েকটি উইন্ডো পুনর্নির্মাণ করা দরকার।

    • এই ক্ষেত্রে, ভিম সহায়তা ডকের নির্দেশাবলী অনুসরণ করার চেষ্টা করুন:

      হিট-প্রবেশের অনুরোধগুলির সংখ্যা হ্রাস করতে:

      • 'সেন্টিমিটার উচ্চতা' 2 বা ততোধিক সেট করুন।
      • 'শর্টমেস'-এ পতাকা যুক্ত করুন।
      • 'শো সিএমডি' এবং / অথবা 'রুলার' রিসেট করুন।
    • এই লিঙ্কটি অন্য উপায় প্রদান করে। এটি আপনার ভিএমআরসি ফাইলের মধ্যে রাখুন

      কমান্ড! -নার্গস = 1 নীরব
      silent 'নিঃশব্দ' কার্যকর করুন! ।
      \ | 'পুনরায় আঁক!'
      

এবং তারপরে আপনি :Silent commandনিয়মিত কমান্ডের মতো ব্যবহার করতে পারেন ।


0

আমার পক্ষে সমাধানটি ছিল কমান্ড চেইনে আরও ঘন ঘন ব্যবহার করাsilent

বিশেষত আগে, .vimrcছিল:

nnoremap M :silent make\|redraw!\|cc<CR>

এটি পরিবর্তিত হয়েছিল:

nnoremap M :silent make\|silent redraw!\|silent cc<CR>

এর আগে, "প্রেস এন্টার" সর্বদা প্রদর্শিত হয় না, তবে বিরক্তিকরভাবে প্রায়শই হয়। অতিরিক্ত silentএস এটি স্থির করে। (এটা দেখে মনে হচ্ছে silentউপর প্রয়োজন নেই redraw!যেমন :cc"ENTER টিপুন" বার্তা সৃষ্ট।)

এই পরিবর্তনটির আর আউটপুট না দেখানোর অপূর্ণতা রয়েছে :cc, সুতরাং আপনার কী ত্রুটি আছে তা অনুমান করতে হবে। একটি সামান্য তাত্ক্ষণিক এটি সমাধান:

nnoremap M :silent make\|redraw!\|cw\|silent cc<CR>

এটি ত্রুটিটি কুইকফিক্সের তালিকার (আউটপুট make) স্বয়ংক্রিয়ভাবে উপস্থিত হয়ে যায় (এবং কোনও ত্রুটি না থাকলে ভিম -যাদু দ্বারা অদৃশ্য হয়ে যায়)।

অবগতির জন্য:

এই- Mম্যাপিংয়ের অনুপ্রেরণা কেবলমাত্র Mসাধারণ-মোডে এটিকে টিপুন :

  • সম্পাদনাটি সংরক্ষণ করুন (যে কোনও উপায়ে নিয়ন্ত্রণ-নিয়ন্ত্রণের makeঅধীনে থাকা অবস্থায় git)
  • ডাকা make
  • এবং সরাসরি প্রথম ত্রুটি বা সতর্কবাণীতে ঝাঁপ দাও

আমার Makefileগুলি সাধারণত এ জাতীয় নির্মিত হয়, এটি কেবল একটি সেকেন্ডের একটি ভগ্নাংশ নেয়।

কিছুটা টুইট করার মাধ্যমে এটি নন- Cটাইপ ওয়ার্কলোডগুলিতেও প্রয়োগ করা যেতে পারে :

.vimrcঅ্যাড ইন

set efm+=#%t#%f#%l#%c#%m#

এটি (প্রদর্শন ত্রুটি) এর vimজন্য নিম্নলিখিত বার্তাগুলির ব্যাখ্যা করতে দেয় :cc:

#E#file#line#column#message#
#W#file#line#column#message#
#I#file#line#column#message#

( Eম্যাজিকের উপর ভিত্তি করে র‌রেস, Wআরনিংস, Iএনএফও vim)

পাইথন স্ক্রিপ্টগুলির জন্য এটি কীভাবে ব্যবহার করবেন তা উদাহরণ । (দুঃখিত, এখানে কোনও অনুলিপি নেই, এটি একটি ভিন্ন গল্প))


0

যদি আপনার ত্রুটি E303 এর কারণে ঘটে থাকে তবে .vimrcফাইলটিতে অস্থায়ী ডিরেক্টরি তৈরি করা এটি ঠিক করতে পারে।

যে কোনও ফাইল খোলার পরে, লিখুন এবং লিখুন:

:messages

যদি ত্রুটিগুলি থাকে তবে এটি প্রম্পট করবে।

আপনি যদি E303 (ত্রুটি 303) "" name ফাইলের নাম for "এর জন্য স্যুপ ফাইল খুলতে অক্ষম, পুনরুদ্ধার অসম্ভব" দেখতে পান তবে এটি ইঙ্গিত দিতে পারে যে সিস্টেমে একটি সোয়াপ ফাইল (সম্ভবত হারিয়ে যাওয়া বা অস্তিত্বহীন) পুনরুদ্ধার করার একটি পুরানো প্রচেষ্টা রয়েছে may ।

এটি ঠিক করতে, ফাইলটিতে একটি অস্থায়ী ডিরেক্টরি নির্ধারণ .vimrcকরুন।

.vimrcফাইলের অবস্থান জানতে , টাইপ করুন এবং এটি প্রবেশ করুন:

$ locate .vimrc
/root/.vimrc

ফাইলটি খুলুন $ vi .vimrc

ফাইলের শেষে এটি যুক্ত করুন:

set directory=.,$TEMP

সংরক্ষণ করুন এবং সাথে বন্ধ করুন :wq

অবশেষে, প্রোফাইলটি এর সাথে পুনরায় লোড করুন:

$ . /etc/profile

VI এর সাথে যে কোনও ফাইল খোলার চেষ্টা করুন। সমস্যা স্থির করা হবে।


0

উপর gvim, যদি আপনি সেট করেছেন guioptions+=!(যোগ করা হয়েছে !guioptions) এই যে কারণ রয়েছে। এই বিকল্পটি ( !) gvimবাহ্যিক টার্মিনালটিতে কিছু কমান্ড চালিত করে (যা আরও বৈশিষ্ট্যগুলিকে সমর্থন করে, যেমন রঙ এবং আরও অনেকগুলি)।

আপনি এটি ব্যবহার করে চেষ্টা করে :set guioptions-=iদেখতে পারেন এবং এটি আপনার পক্ষে কাজ করে কিনা।

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