আমি তুলনা করতে পারছি না, যেহেতু আমি ব্যবহার করেছি কেবলমাত্র ল্যাটেক্স প্লাগইন ভিম-ল্যাটেক্স। আমি প্রায় এক বছর ধরে ভিম-ল্যাটেক্স ব্যবহার করছি। সুতরাং আমি একা ভিম-ল্যাটেক্স সম্পর্কে কথা বলব।
আছে অনেক vim-ক্ষীর উপস্থিত বৈশিষ্ট্য। আমি তাদের সব মনে নেই। আমি কেবল এমন বৈশিষ্ট্যগুলির বিষয়ে কথা বলব যা আমি জানি এবং ক্রমাগত ব্যবহার করি।
দ্রষ্টব্য: এগুলি আমার সীমিত ব্যবহারকারীর অভিজ্ঞতা , যা খুব বিভ্রান্তিকর হতে পারে । আমি কোনও পাকা ভিম ব্যবহারকারী নই। এবং আমি উইমস্ক্রিপ্ট সম্পর্কে কিছুই জানি না।
<C-j>
আইএমএপি () এবং জাম্পিং
IMAP()
ফাংশন এবং <C-j>
জাম্পিং ফাংশনগুলি পৃথকভাবে imaps.vim
ভিম-ল্যাটেক্স বান্ডেলে প্লাগইন হিসাবে সরবরাহ করা হয় । এগুলি শক্তিশালী বৈশিষ্ট্য এবং আপনি লটেক্স না লেখালেও খুব কার্যকর হতে পারে।
IMAP()
ফাংশনটি অন্তর্নির্মিত imap
এবং iabbrev
আইএমওর চেয়ে সাধারণভাবে মোড ম্যাপিং এবং টেম্পলেটিং সন্নিবেশ করার আরও প্রাকৃতিক উপায় সরবরাহ করে ।
<C-j>
জাম্পিং অনেকগুলি ভিম-ল্যাটেক্স সমাপ্তি বৈশিষ্ট্য দ্বারা ব্যবহৃত হয়। একটি জাম্পিং পয়েন্ট দ্বারা নির্দেশিত হয় <++>
।
অন্তর্নির্মিত মোড কী ম্যাপিংগুলি IMAP()
কল হিসাবে প্রয়োগ করা হয় implemented উদাহরণস্বরূপ, আপনি ফাইলটিতে দরকারী IMAP()
কলগুলির একটি দীর্ঘ তালিকা খুঁজে পেতে পারেন main.vim
:
call IMAP ('__', '_{<++>}<++>', "tex")
call IMAP ('()', '(<++>)<++>', "tex")
call IMAP ('[]', '[<++>]<++>', "tex")
call IMAP ('{}', '{<++>}<++>', "tex")
...
call IMAP ('((', '\left( <++> \right)<++>', "tex")
call IMAP ('[[', '\left[ <++> \right]<++>', "tex")
call IMAP ('{{', '\left\{ <++> \right\}<++>', "tex")
...
তারপরে আপনি যখন টাইপ করুন টাইপ ()
করবেন, প্রথমটি প্রতিস্থাপন করে কার্সারটি প্রথমটি প্রতিস্থাপন করে প্রথম প্যারেন্টেসের মধ্যে স্বয়ংক্রিয়ভাবে অবস্থান করবে <++>
। আপনি ভিতরে টাইপিং শেষ করার পরে, আপনি লাথি <C-j>
মেরে বাজ করুন, কার্সারটি প্রথম বন্ধনীর বাইরে চলে যাবে এবং আপনি কেবল টাইপিং চালিয়ে যান। একবার আপনি এটির অভ্যস্ত হয়ে গেলে, এটি টাইপিং প্রবাহ গঠন শুরু করে যা দয়ালু আসক্তি ...
আপনি উপরের থেকে দেখতে পাচ্ছেন যে কোনও \left
\right
জোড়া এর প্রারম্ভিক বন্ধনীটির ডাবল স্ট্রোকের সাথে সহজেই টাইপ করা যায়। এবং <C-j>
জাম্পিং টাইপিং প্রবাহকে করে তোলে।
IMAP()
এবং <C-j>
জিনিসের একটি প্রধান বিভ্রান্তি হ'ল তারা আপনার শেষ পরিবর্তনের ইতিহাসকে মেসেজ করে । (একটি বাগ আমি দীর্ঘদিনের জন্য সমাধান করতে চাই)) সুতরাং, .
আপনার "অনুমিত সর্বশেষ পরিবর্তন" এ এই ফাংশন কলগুলি অন্তর্ভুক্ত করে যদি আপনার শেষ পরিবর্তনটি পুনরায় করার চেষ্টা করার সময় আপনি অপ্রত্যাশিত আচরণের মুখোমুখি হতে পারেন।
আপনি IMAP()
সাধারণ কী ম্যাপিং থেকে আরও জটিল টেম্প্লেটিং ব্যবহার করে সমস্ত ধরণের ম্যাপিংগুলি করতে পারেন । এখানে আমার ম্যাপিংয়ের কয়েকটি উদাহরণ রয়েছে ( ftplugin/tex.vim
):
call IMAP('*EEQ',"\\begin{equation*}\<CR><++>\<CR>\\end{equation*}<++>",'tex')
call IMAP('DEF',"\\begin{definition}[<++>]\<CR><++>\<CR>\\end{definition}<++>",'tex')
call IMAP('BIC','\binom{<++>}{<++>}<++>','tex')
call IMAP('PVERB','\PVerb{<++>}<++>','tex')
call IMAP('VERB','\verb|<++>|<++>','tex')
imaps.vim
প্লাগইন সম্পর্কে একটি আকর্ষণীয় তথ্য হ'ল এটি একটি বিশ্বব্যাপী প্লাগইন, যা ল্যাটেক্সের বাইরেও এর সম্ভাব্য ব্যবহারকে বোঝায়। ছেলেঃ আমি ব্যবহার করব <++>
এবং <C-j>
jumppings (অন্যান্য প্লাগিন মিশ্রন) সি কোড স্নিপেট টেমপ্লেট গড়ে তুলতে
<F5> <F7>
কমান্ড এবং পরিবেশ সন্নিবেশ
এর একটি অসুবিধা IMAP()
হ'ল কী সংমিশ্রণটি সাধারণ পাঠ্যে আর ব্যবহার করা যাবে না (যদি আপনি ম্যাপিংটি পূর্বাবস্থায় ফেরা না করেন u
)। আপনি যেভাবে চান ঠিক তেমন ম্যাপিং ট্রিগার করতে চান সেই ক্ষেত্রে <F5>
এবং কার্যকর <F7>
হবেন। এই দুটো কী জন্য ব্যবহার করা হয় triggering পরিবেশ এবং ইনলাইন যথাক্রমে সন্নিবেশ কমান্ড। এবং তারা ব্যবহারকারীর মোড এবং কাস্টমাইজেশনের উপর ভিত্তি করে আলাদা আচরণ করে।
সন্নিবেশ / নরমাল মোডে, যখন কার্সার একটি শব্দ সংযুক্ত করে বা শব্দে থাকে, চাপলে <F5>
ডিফল্টরূপে ফর্মের একটি বেসিক পরিবেশ সন্নিবেশ করানো হবে
\begin{word}
<Cursor>
\end{word}<++>
শব্দের উপর ভিত্তি করে; টিপে <F7>
ডিফল্টরূপে \word{}<++>
শব্দের উপর ভিত্তি করে ফর্মের একটি প্রাথমিক ইনলাইন কমান্ড সন্নিবেশ করানো হবে ।
"ডিফল্টরূপে", আমার অর্থ <F5>
/ আপনি দ্বারা ট্রিগার করার সময় আপনি একটি নির্দিষ্ট শব্দের আচরণটি কাস্টমাইজ করতে পারেন <F7>
। এখানে আমার কিছু সেটিংস দেওয়া হয়েছে ( .vimrc
):
let g:Tex_Com_newcommand = "\\newcommand{<++>}[<++>]{<++>}<++>"
let g:Tex_Com_latex = "{\\LaTeX}<++>"
let g:Tex_Com_D = "\\D{<++>}{<++>}<++>"
সন্নিবেশ / নরমাল মোডে, যখন কার্সারটি কোনও কিছুর সাথে সংযুক্ত না থাকে (ওরফে একা ), চাপলে <F5>
/ চাপলে <F7>
আপনাকে পরিবেশ / কমান্ড সন্নিবেশ করার জন্য একটি মেনু প্রম্পট করে। অথবা আপনি নীচের অংশে পছন্দসই পরিবেশ / কমান্ডের নাম টাইপ করতে পারেন। ব্যক্তিগতভাবে, আমি খুব কমই <F5>
/ <F7>
এইভাবে ব্যবহার করি ।
টেক্সটের টুকরোটি দৃশ্যত নির্বাচন করার পরে টিপুন <F5>
/ <F7>
পাঠ্য মোড়ানোর জন্য একটি মেনু প্রম্পট করবে । তারপরে নির্বাচিত পাঠ্য আপনার নির্বাচিত বা টাইপ করা পরিবেশ / কমান্ডে আবৃত হবে।
ইনসার্ট / নরমাল মোডে, কার্সারটি যখন এনভায়রনমেন্ট / কমান্ডের সুযোগে থাকে তখন প্রেস / পরিবেশ / কমান্ড পরিবর্তনের<Shift>+<F5>/<F7>
জন্য একটি মেনু প্রম্পট করবে ।
বিবিধ কী ম্যাপিংস
- গ্রীক চিঠিগুলি।
`a
থেকে `z
এবং সংশ্লিষ্ট রাজধানীতে।
- প্রতীক পছন্দ
`8
জন্য \infty
, `<
জন্য \le
, `I
জন্য \int_{<++>}^{<++>}<++>
, ইত্যাদি
"
দুবার টিপলে এক জোড়া টেক্স ডাবল উদ্ধৃতি পাওয়া যায়। আক্ষরিক "
চরিত্র টাইপ করতে, আপনাকে ব্যবহার করতে হবে।
- বেশ কয়েকটি গণনার পরিবেশে টিপলে উপযুক্ত
\item
ট্যাগ tag োকানো হবে ।
- আপনি গণিত চাক্ষুষরূপে নির্বাচিত অংশ মোড়ানো পারেন
\left
\right
দ্বারা যুগল `(
, `[
এবং `{
।
- ভাঁজ কাস্টমাইজযোগ্য। তিন বিশ্বব্যাপী পরিবর্তনশীল নিয়ন্ত্রণ কি গুটান করা যেতে পারে:
Tex_FoldedSections
, Tex_FoldedMisc
, এবং Tex_FoldedEnvironments
।
কখনও কখনও অন্তর্নির্মিত ম্যাপিংগুলি খুব বেশি দূরে চলে গেছে বা আপনি যা চান তা ছাড়ছেন না। আপনি অন্তর্নির্মিত ম্যাপিংগুলিকে এটিকে পুনরায় সংজ্ঞায়িত করে ওভাররাইড করতে পারেন after/ftplugin/tex.vim
:
call IMAP('`|','\abs{<++>}<++>','tex')
call IMAP('ETE',"\\begin{table}\<CR>\\centering\<CR>\\caption{<+Caption text+>}\<CR>\\label{tab:<+label+>}\<CR>\\begin{tabular}{<+dimensions+>}\<CR><++>\<CR>\\end{tabular}\<CR>\\end{table}<++>",'tex')
call IMAP('==','==','tex')
call IMAP('`\','`\','tex')
একাধিক সংকলন ইঞ্জিন সেট করুন
আমার সর্বদা pdflatex
এবং xelatex
ইঞ্জিনের মধ্যে স্যুইচ করা দরকার । সুতরাং, আমার আমার মধ্যে নিম্নলিখিত লাইনগুলি রয়েছে .vimrc
:
"switch to pdflatex
function SetpdfLaTeX()
let g:Tex_CompileRule_pdf = 'pdflatex --interaction=nonstopmode -synctex=1 -src-specials $*'
endfunction
noremap <Leader>lp :<C-U>call SetpdfLaTeX()<CR>
"switch to xelatex
function SetXeLaTeX()
let g:Tex_CompileRule_pdf = 'xelatex --interaction=nonstopmode -synctex=1 -src-specials $*'
endfunction
noremap <Leader>lx :<C-U>call SetXeLaTeX()<CR>
ভিএম এবং পিডিএফ দর্শকের মধ্যে পিডিএফ, ফরোয়ার্ড এবং পিছনের সন্ধান করুন
এটি একটি অগোছালো এবং জটিল বিষয়। নির্দিষ্ট পিডিএফ ভিউয়ার এবং একটি নির্দিষ্ট পরিমাণ ভাগ্যের সাহায্যে এটি খুব সহজ হতে পারে। তবে এটি মূলত গুগল অনুসন্ধানের বিষয়।
পরামর্শ
- ল্যাটেক্স ওয়ে এবং ভিম-ল্যাটেক্স পথের মধ্যে আপনার ভারসাম্যটি খুঁজে পাওয়া উচিত।
- ভিম-ল্যাটেক্স মোটেই হালকা-ওজন নয়। কিছু বৈশিষ্ট্য এবং / অথবা কী ম্যাপিং রয়েছে যা আপনি সম্ভবত কখনও ব্যবহার করতে পারবেন না এবং আপনাকে সেগুলি ম্যানুয়ালি ওভাররাইড করতে হবে।
- আপনি Vim ব্যবহার করুন। আপনি জানেন ধৈর্য বলতে কী বোঝায়। :-)
সামগ্রিকভাবে, আমি মনে করি আপনি যদি জানোয়ারের নিয়ন্ত্রণে কিছুটা সময় ব্যয় করতে ইচ্ছুক হন তবে এটি বেশ কার্যকর হবে। এটিই বলা হচ্ছে, আমার যদি সময় এবং পর্যাপ্ত জ্ঞান থাকত তবে আমি অবশ্যই ওভারহেড বৈশিষ্ট্যগুলি কমিয়ে দেব এবং অন্যান্য প্লাগইনগুলির সাথে সংহতকরণের সম্ভাবনাগুলি অন্বেষণ করব।
তথ্যসূত্র
vimtex
পাশাপাশি পাশাপাশি কাজ করতে পারেLatex-Suite
, যার অর্থ আপনি একই সাথে দুটি প্লাগইন থেকে সেরাটি পেতে পারেন । :)