আমি কীভাবে আমার বর্তমান ফাইলটির নাম ভিমে রাখতে পারি?
উদাহরণ স্বরূপ:
- আমি সম্পাদনা করছি
person.html_erb_spec.rb - আমি এটির নামকরণ চাই
person.haml_spec.rb - আমি সম্পাদনা চালিয়ে যেতে চাই
person.haml_spec.rb
আমি কীভাবে মার্জিতভাবে এটি করতে যাব?
আমি কীভাবে আমার বর্তমান ফাইলটির নাম ভিমে রাখতে পারি?
উদাহরণ স্বরূপ:
person.html_erb_spec.rbperson.haml_spec.rbperson.haml_spec.rbআমি কীভাবে মার্জিতভাবে এটি করতে যাব?
উত্তর:
একটি ছোট্ট প্লাগইন রয়েছে যা আসুন আপনি এটি করুন।
Program Files (x86)। এই ডিরেক্টরিটি যে কোনও সময় এর সাথে কাজ করা দরকার যখনই উদ্ধৃতিতে মোড়ানো প্রয়োজন। যা আহ, অনেক।
কমান্ডটি বলা হয় :saveas, তবে দুর্ভাগ্যক্রমে এটি আপনার পুরানো ফাইলটি মুছে ফেলবে না, আপনাকে এটি ম্যানুয়ালি করতে হবে। দেখতে :help saveasআরও তথ্যের জন্য।
সম্পাদনা করুন:
বেশিরভাগ ভিআইএম ইনস্টলেশনগুলিতে একটি সমন্বিত ফাইল এক্সপ্লোরার থাকে, যা আপনি এই জাতীয় ক্রিয়াকলাপের জন্য ব্যবহার করতে পারেন। :Exploreকমান্ড মোডে চেষ্টা করুন (আমি আসলে এটি ফাংশন কীতে মানচিত্র করব, এটি খুব সহজ) very উদাহরণস্বরূপ আপনি ফাইলগুলির সাথে নাম পরিবর্তন করতে Rবা এগুলি মুছতে পারেন D। তবে <F1>এক্সপ্লোরার টিপুন আপনাকে আরও ভাল ওভারভিউ দেবে।
আপনি Git ব্যবহার এবং ইতিমধ্যে tpope এর প্লাগ-ইন থাকে fugitive.vim তারপর কেবল:
:Gmove newname
এটা হবে:
যদি আপনার ফাইলটি এখনও গিট রেপোতে যুক্ত না হয় তবে প্রথমে এটি যুক্ত করুন:
:Gwrite
:Gmoveনতুন ফাইলের নামের জন্য আপেক্ষিক পথ প্রয়োজন। এটি করার একটি দুর্দান্ত উপায় হ'ল টাইপ করা :Gmove <ctrl-r>%যা বর্তমান পথ / ফাইলের নাম সংযুক্ত করে।
আমি NERDTree প্লাগইন দিয়ে এটি করছি:
:NERDTreeFind
তারপরে টিপুন m
নাম পরিবর্তন করতে আপনি (m)ove the current nodeফাইলের নাম চয়ন এবং পরিবর্তন করতে পারেন । এছাড়াও মুছুন, অনুলিপি, সরানো, ইত্যাদি মত বিকল্প আছে ...
:w newname- একটি অনুলিপি তৈরি করতে।:e#।:!rm oldname।উইন্ডোজে 3rdচ্ছিক তৃতীয় পদক্ষেপটি কিছুটা পরিবর্তন করে:
:!del oldname।:f newname2) এটি সংরক্ষণ করুন :w3) (allyচ্ছিকভাবে) !rm oldname। সুবিধাটি হ'ল আপনার পূর্ববর্তী ইতিহাস সংরক্ষণ করা হয়েছে pre
:saveasএই বিষয়ে আরও ভাল, @ রায়প্যাম্পিন - এবং @ কেনন যা লিখেছেন তা করে।
ফাইলটি ইতিমধ্যে সংরক্ষণ করা থাকলে:
:!mv {file location} {new file location}
:e {new file location}
উদাহরণ:
:!mv src/test/scala/myFile.scala src/test/scala/myNewFile.scala
:e src/test/scala/myNewFile.scala
অনুমতি প্রয়োজনীয়তা:
:!sudo mv src/test/scala/myFile.scala src/test/scala/myNewFile.scala
সংরক্ষণ করুন:
:!mv {file location} {save_as file location}
:w
:e {save_as file location}
উইন্ডোজ যাচাই করা নেই
:!move {file location} {new file location}
:e {new file location}
আমি :Renameএর জন্য টপপের নপুংসক থেকে সুপারিশ করব ।
এটিতে অন্যান্য হ্যান্ডি কমান্ডগুলির একটি গুচ্ছও অন্তর্ভুক্ত রয়েছে।
নাম পরিবর্তন কমান্ড বর্তমানে এটি নিম্নলিখিত হিসাবে সংজ্ঞায়িত করা হয়েছে (কোনও আপডেটের জন্য রেপো পরীক্ষা করুন!):
command! -bar -nargs=1 -bang -complete=file Rename :
\ let s:file = expand('%:p') |
\ setlocal modified |
\ keepalt saveas<bang> <args> |
\ if s:file !=# expand('%:p') |
\ call delete(s:file) |
\ endif |
\ unlet s:file
:sav new_name
:!rm <C-R># // or !del <C-R># for windows
control+ R, #টিপানোর আগে তাত্ক্ষণিকভাবে একটি বিকল্প-ফাইল (বর্তমান উইন্ডোতে পূর্বে সম্পাদিত পথ) এ প্রসারিত হবে Enter। এটি আমাদের ঠিক কী মুছতে চলেছে তা পর্যালোচনা করতে সহায়তা করে। এই |জাতীয় ক্ষেত্রে পাইপ ব্যবহার করা নিরাপদ নয় , কারণ যদি savকোনও কারণে ব্যর্থ হয় তবে #এখনও অন্য কোনও জায়গায় নির্দেশ দেওয়া হবে (বা কিছুই নয়)। এর অর্থ !rm #বা delete(expand(#))সম্পূর্ণ আলাদা ফাইল মুছতে পারে! সুতরাং এটি হাত দিয়ে সাবধানে করুন বা ভাল স্ক্রিপ্ট ব্যবহার করুন (তাদের এখানে অনেক উত্তরে উল্লেখ করা হয়েছে)।
... বা নিজে একটি ফাংশন / কমান্ড / স্ক্রিপ্ট তৈরি করার চেষ্টা করুন। সহজ থেকে শুরু করুন:
command! -nargs=1 Rename saveas <args> | call delete(expand('#')) | bd #
ভিএমআরসি পুনরায় লোডের পরে, কেবল টাইপ করুন :Rename new_filename। এই আদেশটি নিয়ে সমস্যা কী?
সুরক্ষা পরীক্ষা 1::Rename তর্ক ছাড়াই কী করে ?
হ্যাঁ, এটি '#' তে লুকানো ফাইলটি মুছে দেয়!
সমাধান: আপনি যেমন ব্যবহার করতে পারেন। শর্ত বা tryমত বিবৃতি:
command! -nargs=1 Rename try | saveas <args> | call delete(expand('#')) | bd # | endtry
সুরক্ষা পরীক্ষা 1:
:Rename (তর্ক ছাড়াই) ত্রুটি ছুঁড়ে ফেলবে:
E471: তর্ক প্রয়োজন
সুরক্ষা পরীক্ষা 2: নামটি যদি আগের মতো হয় তবে কী হবে?
সুরক্ষা পরীক্ষা 3: ফাইলটি যদি আপনার আসল থেকে আলাদা অবস্থানে থাকে?
এটি নিজেই ঠিক করুন। পাঠযোগ্যতার জন্য আপনি এটি এই পদ্ধতিতে লিখতে পারেন:
function! s:localscript_name(name):
try
execute 'saveas ' . a:name
...
endtry
endfunction
command! -nargs=1 Rename call s:localscript_name(<f-args>)
মন্তব্য
!rm #এর চেয়ে ভাল !rm old_name-> আপনার পুরানো নামটি মনে রাখার দরকার নেই
!rm <C-R>#এটি !rm #কখন হাত দ্বারা করা তার চেয়ে ভাল -> আপনি আসলে কী সরিয়ে ফেলবেন তা দেখতে পাবেন (সুরক্ষার কারণ)
!rmসাধারণত খুব সুরক্ষিত হয় না ... mvএকটি আবর্জনার অবস্থানের থেকে ভাল
call delete(expand('#'))শেল কমান্ড (ওএস অজ্ঞেয়বাদী) কিন্তু আর বেশী ভালো টাইপ করতে এবং ব্যবহার করা অসম্ভব control+ +R
try | code1 | code2 | tryend -> কোড 1 এর সময় ত্রুটি দেখা দিলে কোড 2 চালাবেন না
:sav(বা :saveas) :f new_name | w- ফাইল_ফ দেখুন - এর সমতুল্য এবং পূর্ববর্তী ইতিহাস সংরক্ষণ করে o
expand('%:p')আপনার অবস্থানের পুরো পথ দেয় ( %) বা বিকল্প ফাইলের অবস্থান ( #)
sav person.haml_spec.rb | call delete(expand('#'))
call delete(expand('#'))
গ্যারি বার্নহার্টের .vimrc এ একটি ফাংশন রয়েছে যা এটি পরিচালনা করে।
function! RenameFile()
let old_name = expand('%')
let new_name = input('New file name: ', expand('%'), 'file')
if new_name != '' && new_name != old_name
exec ':saveas ' . new_name
exec ':silent !rm ' . old_name
redraw!
endif
endfunction
map <leader>n :call RenameFile()<cr>
:!mv % %:h/new_name
রেজিস্টারটিতে %বর্তমান ফাইলটির নাম রয়েছে। '%:h'বর্তমান ফাইল যুক্ত ডিরেক্টরি 'হেড' দেখায় যেমন: আপনার ফাইলের পুরো পথটি %:hফিরে আসে/abc/defabc/dev/my.txt
এটি কীভাবে (জ্যাকের পরামর্শ দিয়ে উন্নত):
:exe "!mv % newfilename" | e newfilename
:exe "!mv % newfilename" | e newfilename
ভিমের একটি renameফাংশন রয়েছে তবে দুর্ভাগ্যক্রমে এটি ইতিহাস ধরে রাখে না।
ইতিহাস না হারিয়ে কোনও ফাইলের পুনরায় নামকরণের সবচেয়ে সহজ ওএস অগনস্টিক উপায় হ'ল:
:saveas new_file_name
:call delete(expand('#:p'))
expand('#:p') পুরানো ফাইলের পুরো পথ ফেরত দেয়।
:bd #আপনি যদি বাফার তালিকা থেকে পুরানো ফাইলটি মুছতে চান তবে ব্যবহার করুন ।
আপনি যদি ফাইলটির নাম পরিবর্তন করতে দ্রুত কমান্ড ব্যবহার করতে চান তবে নিম্নলিখিত বিষয়বস্তু সহ new / .vim / প্লাগইন এর অধীনে একটি নতুন ফাইল যুক্ত করুন:
function! s:rename_file(new_file_path)
execute 'saveas ' . a:new_file_path
call delete(expand('#:p'))
bd #
endfunction
command! -nargs=1 -complete=file Rename call <SID>rename_file(<f-args>)
কমান্ডটি Renameআপনাকে দ্রুত কোনও ফাইলের নাম পরিবর্তন করতে সহায়তা করবে।
টিম পোপের ভাইম-নপুংসক নামে একটি দৃষ্টিনন্দন বৃহত্তর প্লাগইন রয়েছে যার মধ্যে একটি পুনরায় নামকরণ ফাংশন পাশাপাশি কিছু অন্যান্য গুডিও রয়েছে (মুছুন, সন্ধান করুন, সংরক্ষণ করুন, chmod, sudo সম্পাদনা, ...)।
ভিআইএম-নপুংসে ফাইলটির নতুন নামকরণ করতে:
:Move filename.ext
পুনঃনামকরণের তুলনায়
:rename[!] filename.ext
কয়েকটি কীস্ট্রোক সংরক্ষণ করে :)
প্লাগইন ব্যবহার না করে বিদ্যমান ফাইলটির নামকরণের জন্য আপনার কমান্ডটি ব্যবহার করা উচিত
:Explore
এই কমান্ডটি আপনাকে ডিরেক্টরিগুলি ইনডাইরেক্টরিতে অন্বেষণ করতে বা মুছে ফেলার অনুমতি দেয়। টাইপ Rকমান্ডের চেয়ে এক্সপ্লোরারটিতে আপনার প্রয়োজনীয় ফাইলটি নেভিগেট করা উচিত যা আপনাকে ফাইলের নাম পরিবর্তন করতে দেয়
এটি "সহজতম" পদ্ধতি কিনা তা আমি জানি না, তবে ধরে নিলাম আপনি ইতিমধ্যে আপনার ফাইলটি সংরক্ষণ করেছেন (: w) আমি শেলটি (: sh) করব এবং একটি সাধারণ সিপি foo foo.bak করব সম্পাদকের কাছে ফিরে যেতে Ctrl-D / প্রস্থান ব্যবহার করুন। এই লিঙ্কে vi সম্পাদক কমান্ডগুলির দরকারী তালিকা
এই ছোট স্ক্রিপ্টটি নিখুঁত নয় (অতিরিক্ত ক্যারিজ-রিটার্ন আপনাকে চাপতে হবে) তবে এটি কাজটি সম্পন্ন করে।
function Rename()
let new_file_name = input('New filename: ')
let full_path_current_file = expand("%:p")
let new_full_path = expand("%:p:h")."/".new_file_name
bd
execute "!mv ".full_path_current_file." ".new_full_path
execute "e ".new_full_path
endfunction
command! Rename :call Rename()
nmap RN :Rename<CR>
অন্য উপায়টি হ'ল নেট নেট ব্যবহার করা, যা ভিমের স্থানীয় অংশ।
:e path/to/whatever/folder/
তারপরে মুছতে, পুনরায় নামকরণ ইত্যাদি বিকল্প রয়েছে options
আপনি যে ফাইলটি সম্পাদনা করছেন তার ফোল্ডারের নেট নেট খুলতে এখানে একটি কীম্যাপ রয়েছে:
map <leader>e :e <C-R>=expand("%:p:h") . '/'<CR><CR>