ভিমে টাইমস্ট্যাম্প Bestোকানোর সর্বোত্তম উপায়?


90

এডিটপ্যাড লাইটের একটি দুর্দান্ত বৈশিষ্ট্য রয়েছে ( CTRL- E, CTRL- I) যা একটি টাইম স্ট্যাম্প সন্নিবেশ করে যেমন আপনার কোডের মধ্যে "2008-09-11 10:34:53" into

ভিমে এই কার্যকারিতাটি পাওয়ার সবচেয়ে ভাল উপায় কী?

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

উত্তর:


87

http://kenno.wordpress.com/2006/08/03/vim-tip-insert-time-stamp/

এটি চেষ্টা করে দেখুন, এটি আমার ম্যাকের জন্য কাজ করে:

:r! date

উত্পাদন:

Thu Sep 11 10:47:30 CEST 2008

এই:

:r! date "+\%Y-\%m-\%d \%H:\%M:\%S"

উত্পাদন:

2008-09-11 10:50:56

4
কেবল একটি ছোট্ট নোট, স্থানটি প্রয়োজনীয় বলে মনে হচ্ছে না - ": r! তারিখ" এছাড়াও কাজ করে।
জন আউটহર્স্ট

@AB, এই প্রশ্নের মাধ্যমে skimming: stackoverflow.com/questions/15394572/... , এটা আপনি একটি ব্যাকস্ল্যাশ সঙ্গে বাঁচা যায় বলে মনে হয়। আপনি কি আমার জন্য চেষ্টা করতে পারেন?
ড্যারেন টমাস

4
সম্পূর্ণ কাজ করে। এটি লেখার অন্যান্য উপায়গুলি হ'ল :r!date "+\%F \%T"বা :r!date +\%F\ \%T
ক্রিসফারজেন

এটি আমার ভিআইএমআরসিতে রেখেছিলাম ... তারপর লক্ষ্য করেছি আমি ইতিমধ্যে বহু বছর আগে এটি রেখেছি। দুর্দান্ত কাজ করে।
এমজিজেকে

আমার ফেডোরা 31-এ কবিতার মতো কাজ করে।
rchrd

115

এটি ক্রস প্ল্যাটফর্মের কাজ করতে, কেবল আপনার মধ্যে নিম্নলিখিতটি লিখুন vimrc:

nmap <F3> i<C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR><Esc>
imap <F3> <C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR>

এখন আপনি কেবল ভি / ভিমের অভ্যন্তরে যে কোনও সময় F3 টিপতে পারেন 2016-01-25 Mo 12:44এবং কার্সারে সন্নিবেশ করার মতো টাইমস্ট্যাম্প পাবেন ।

উপলভ্য পরামিতিগুলির সম্পূর্ণ বিবরণের জন্য সি ফাংশন ডারফটাইম () এর ডকুমেন্টেশন চেক করুন ।


এই সিস্টেমটি প্রশস্ত করার জন্য কি কোনও পদ্ধতি আছে (লিনাক্সে)?
নিলন

এই টাইমস্ট্যাম্পের সাথে কোনও ফাইলের নাম হিসাবে কোনও ফাইল তৈরি বা সংরক্ষণ করার কোনও পদ্ধতি আছে?
নিলন

ধন্যবাদ, যেহেতু F3 ইতিমধ্যে অন্য কোনও কিছুর জন্য ব্যবহৃত হয়েছে। আমি স্বাভাবিক মোডে একটি কাস্টম কমান্ড সংজ্ঞায়িত :Dateআমার নিচের টি যোগ করে ~/.vimrcকনফিগারেশন ফাইল: command! Date put =strftime('%Y-%m-%d')। এটি একটি নতুন লাইনে তারিখটি সন্নিবেশ করায়। নিউলাইন ছাড়াই কোনও সংস্করণ তৈরি করতে পরিচালিত হয়নি।
পল রৌজিক্স

4
@ পৈলরউজিউক্স নতুন লাইন ছাড়াই তারিখটি সন্নিবেশ করানোর জন্য নিম্নলিখিত:command! Date :normal a<C-R>=strftime('%Y-%m-%d')<CR>
আন্ডার ব্লু592 2

13

সবাই কেন ব্যবহার করছে :r!? একটি ফাঁকা রেখা খুঁজে !!dateকমান্ড-মোড থেকে টাইপ করুন। একটি কীস্ট্রোক সংরক্ষণ করুন!

[এনবি এটি বর্তমান লাইনের স্টিডিনে পাইপ করবে এবং তারপরে লাইনটি কমান্ড আউটপুট দিয়ে প্রতিস্থাপন করবে; সুতরাং "একটি ফাঁকা রেখা সন্ধান করুন" অংশ।]


9

@ স্বরূপ সিএইচের উত্তরের এক্সটেনশন হিসাবে,

^R=strftime("%FT%T%z")

একটি আরও কমপ্যাক্ট ফর্ম যা সময় অঞ্চলটিও প্রিন্ট করবে (আসলে ইউটিসির থেকে পার্থক্য, কোনও আইএসও -8601-অনুবর্তী আকারে)।

যদি আপনি কোনও কারণে বাহ্যিক সরঞ্জাম ব্যবহার করতে পছন্দ করেন,

:r !date --rfc-3339=s

আপনাকে একটি সম্পূর্ণ আরএফসি -৩৩৩৩ অনুবর্তী টাইমস্ট্যাম্প দেবে; ব্যবহার nsপরিবর্তে sজন্য Spock মত স্পষ্টতা, এবং মাধ্যমে পাইপ tr ' ' Tতারিখ এবং সময় মধ্যে একটি স্থান পরিবর্তে একটি রাজধানী টি ব্যবহার করতে।

এছাড়াও এটি আপনার পক্ষে জেনে রাখা কার্যকর হতে পারে

:source somefile.vim

কমান্ডগুলিতে পাঠ করবে somefile.vim: এইভাবে আপনি ম্যাপিংস ইত্যাদির একটি কাস্টম সেট সেট আপ করতে পারতেন এবং তারপরে আপনি যখন সেই অ্যাকাউন্টে ভিএম ব্যবহার করছেন তখন এটিকে লোড করুন।


স্ট্রিমটাইম () হল ভিএম এর মধ্যে একটি ফাংশন। আপনি এটিও ব্যবহার করতে পারেন:put=strftime(""%FT%T%z")
এন্টনিওস হাদজিগেরগালিস

আমার মেশিনে (উইন্ডোজ,, জিভিএম ৮.০. )৯),% এফ এবং% টি স্পেসিফায়ার কাজ করেনি, তবে% Y-% m-% d এবং% H:% M:% S করেছে did ( সিপিপ্লসপ্লাস.com / রেফারেন্স / সিটাইম / রাইজটাইম অনুসারে ,% F এবং% টি সি 99 এর জন্য স্ট্রফটাইমের একটি আপডেট সংস্করণ নিয়ে এসেছিল)) এছাড়াও,% z স্পেসিফায়ার টাইমজোনটির একটি বর্ণনামূলক বিবরণ তৈরি করেছে।
এড উইন

8

: আর! তারিখ

তারপরে আপনি ঠিক একই ফর্ম্যাটটি চান এবং এটিকে একটি ভিএম ওরফে হিসাবে যুক্ত করতে পারেন তবে ডেট কমান্ডে (ম্যান ডেট) ফর্ম্যাট যুক্ত করতে পারেন

: আর! তারিখ + "\% ওয়াই - \% মি - \% ডি \% এইচ: \% এম: \% এস"

এটি আপনার উদাহরণে প্রদর্শিত বিন্যাসটি তৈরি করে (শেলের তারিখটি% use ব্যবহার করে না, তবে মাত্র%, বর্তমান ফাইলের নামে ভিম% কে প্রতিস্থাপন করে, সুতরাং আপনাকে এড়াতে হবে)।

কমান্ডটি স্বয়ংক্রিয়ভাবে রাখার জন্য আপনি নিজের .vimrc এ একটি মানচিত্র যুক্ত করতে পারেন, উদাহরণস্বরূপ, প্রতিবার আপনি F3 চাপলে:

:map <F3> :r! date +"\%Y-\%m-\%d \%H:\%M:\%S"<cr>

(উপরের থেকে সম্পাদিত :)) (সম্পাদনা করুন: পাঠ্যের অংশটি কোডে পরিবর্তন করুন, যাতে

<F3> 

প্রদর্শিত হতে পারে)


4

ইউনিক্স টাইমস্ট্যাম্পের জন্য:

: আর! তারিখ + \% s

আপনি এই কমান্ডটি ভিআইএম-এর একটি কীতে (উদাহরণস্বরূপ F12) মানচিত্র করতে পারেন যদি আপনি এটি ব্যবহার করেন:

এটি আপনার .vimrc এ রাখুন:


map  <F12> :r! date +\%s<cr>

4

থেকে তেজ উইকিয়া

আমি একটি এফ কী চাপতে আমার হাত সরিয়ে না নিয়ে এটি ব্যবহার করি:

:iab <expr> tds strftime("%F %b %T")

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

আমি %bসেখানে রেখেছি, কারণ আমি মাসের নাম দেখতে পছন্দ করি। দ্য%Fআমাকে তারিখ অনুসারে সাজাও কিছু দেয়। আমি এটি পরিবর্তন করতে পারি %Y%m%dতাই ইউনিটগুলির মধ্যে কোনও অক্ষর নেই।



0

পূর্ববর্তী উত্তরগুলির দ্বারা অন্তর্ভুক্ত না করা আরও একটি দ্রুত উপায়: টাইপ-

!! তারিখ


0

:Dateবর্তমান কার্সার অবস্থানে তারিখটি সন্নিবেশ করানোর জন্য আমি একটি কাস্টম কমান্ড (কী ম্যাপিং নয়) চেয়েছিলাম ।

দুর্ভাগ্যক্রমে সরল কমান্ডগুলি r!dateনতুন লাইনের ফলস্বরূপ। সুতরাং অবশেষে আমি নিম্নলিখিতগুলি নিয়ে এসেছি:

command Date execute "normal i<C-R>=strftime('%F %T')<CR><ESC>"

যা কোনও নতুন লাইন যোগ না করে কার্সার অবস্থানে তারিখ / সময়ের স্ট্রিং যুক্ত করে ( normal aকার্সারের অবস্থানের পরে যোগ করতে পরিবর্তন )।


এটি কাজ করার সময়, কমান্ডটি আমার কাছে অত্যধিক জটিল দেখায় এবং আমার মনে হয় এটি করার মতো আরও ভাল উপায় থাকা উচিত। আপনি যদি একটি জানেন তবে দয়া করে আমাকে জানান :)
লুয়েটর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.