ব্যক্তিগত মোডে ভিম শুরু করার সহজ উপায়


19

আমি সহজেই একটি ব্যক্তিগত মোডে ভিম শুরু করতে সক্ষম হতে চাই। আসুন একটি ব্যক্তিগত মোডকে এমন একটি হিসাবে সংজ্ঞায়িত করি যা এই কমান্ডগুলির সেটটি ব্যবহার করে:

set history=0
set nobackup
set nomodeline
set noshelltemp
set noswapfile
set noundofile
set nowritebackup
set secure
set viminfo=""

আপনি যদি ব্যক্তিগত মোডের জন্য উপযুক্ত কোনও অতিরিক্ত কমান্ডের কথা ভাবতে পারেন তবে আমাকে জানান।

মুল বক্তব্যটি আমি এই সেটআপটি দিয়ে ভিম শুরু করার কোনও সংক্ষিপ্ত এবং সহজ উপায় সম্পর্কে ভাবতে পারি না।

এখানে আমি কিছু ধারণা নিয়ে এসেছি:

  1. .Vimrc এর পরিবর্তে .vimrcprivate লোড করুন

    আপনি কেবলমাত্র .vimrcprivate এ সমস্ত প্রয়োজনীয় কমান্ড রাখতে পারেন এবং ভিমকে এই জাতীয়ভাবে শুরু করতে পারেন:

    vim -u .vimrcprivate
    
  2. একটি Private()ফাংশন সংজ্ঞায়িত করুন এবং কল করুন

    অন্য ধারণাটি আপনার .vimrc এ জাতীয় কোড যুক্ত করে:

    function Private()
        " set of commands here
    endfunction
    

    এবং তারপরে আপনি এইভাবে একটি ব্যক্তিগত মোডে ভিম শুরু করতে সক্ষম হবেন:

     vim -c 'call Private()'
    
  3. আপনার আদেশগুলি সেট আপ করতে ট্রিগার করতে একটি ভেরিয়েবল ব্যবহার করুন

    এটি দ্বিতীয় সমাধানের সাথে বেশ মিল। শুধু যোগ কর

    if exists('privatemode')
        " set of commands here
    endif
    

    আপনার .vimrc এ যান এবং তারপরে Vim ব্যবহার করে শুরু করুন

    vim -c 'let privatemode=1'
    

    যা স্মার্ট বা সংক্ষিপ্তও নয়।

  4. আপনার .bashrc- এ একটি উপনাম যুক্ত করুন (বা অন্য কোনওটিতে। * আপনার শেলটি ব্যবহার করছে আরসি ফাইল)

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

    alias vimprivate="vim +\"set history=0\" +\"set nobackup\" +\"set nomodeline\"\
        +\"set noshelltemp\" +\"set noswapfile\" +\"set noundofile\"\ 
        +\"set nowritebackup\" +\"set secure\" +\"set viminfo=\"\"\""
    

    যা ভয়ঙ্কর। আমি এটা পছন্দ করি না।

  5. পরিবেশগত পরিবর্তনশীল ব্যবহার করুন

    শুধু চালান VIM_PRIVATE=1 vimএবং যোগ করুন

    if $VIM_PRIVATE
        " set of commands here
    endif
    

    আপনার .vimrc এ।

  6. কিছু যাদু (একটি মন্তব্য থেকে Carpetsmoker মধ্যে এই থ্রেড )

    কার্পেটস্মোকার এই মন্তব্যটিতে বলেছেন

    আমি এটি ভুলে যাওয়া এত সহজ কারণের জন্য একটি পৃথক ভিআইএমআরসি ফাইল ব্যবহার করার পরামর্শ দেব না। এই স্বতঃসিএমডি এর মতো কিছু: au BufRead * if &cryptmethod != "" | setlocal nobackup noundofile ... | endifআপনার জন্য যাদু করা উচিত এবং এটি ভুলে যাওয়া অসম্ভব।

    তবে এই জাদুটি কীভাবে কাজ করে তা আমার কোনও ধারণা নেই


আপনার কি ধারণা আছে?

নির্ভুল সমাধান হবে vim -privateবা vim +Privateঅবশ্য:

  • আমি বেশ নিশ্চিত করুন যে আপনি আপনার মত নিজস্ব কমান্ড লাইন অপশন যোগ করতে পারবেন না করছি -private
  • যখন এটি আসে +Privateআমি অনলাইনে এটি খুঁজে পেতে অক্ষম।

3
হতে পারে আপনি এইভাবে আপনার ভিএমআরসি-র অভ্যন্তরে একটি কাস্টম কমান্ড সংজ্ঞায়িত করতে পারেন: command! Private set history=0 nobackup secure ...এবং তারপরে এটি শেল থেকে কল করুন vim +'Private'। আপনি যে সর্বশেষ স্বতঃপরিচালনার কথা উল্লেখ করেছেন সে সম্পর্কে, যখন কোনও বাফারটি পড়া হয়, তখন এটি পরীক্ষা করে 'cryptmethod'বিকল্পটির মান বা 'cm'সংক্ষিপ্ত সংস্করণের জন্য খালি নয় কিনা tests এই বিকল্পটি প্রাক্তন কমান্ডের সাথে কোনও ফাইলে যখন লিখিত হয় তখন বাফরটি এনক্রিপ্ট করতে ব্যবহৃত এনক্রিপশন পদ্ধতিটি নিয়ন্ত্রণ করে :X। যদি বিকল্পটি খালি না থাকে, তবে স্বতঃসংশ্লিষ্ট বিভিন্ন বিকল্প সেট আপ করে।
saginaw

5
আমি ভোট vim -Nu .vimrcprivate
রোমেনেল

3
4 এবং 1,2 বা 3 এর সংমিশ্রণটি কেমন? alias vimprivate='vim -u .vimrcprivate'ইত্যাদি
স্টিভ

7
আরেকটি পদ্ধতি হ'ল ভিম্পকে ভিম্পের মতো অন্য নামে সিমিলিং করা, তারপরে পরীক্ষা করুন v:progname == "vimp"এবং যদি সত্য হয় তবে আপনার প্রাইভেট-মোড সেটিংস চালনা করুন। দেখুন :help v:progname
গ্যারিজোহান

@garyjohn। আপনার সমাধান সত্যিই দুর্দান্ত! কবজির মতো কাজ করে :)
ম্যাটিউজ পিয়োত্রস্কি

উত্তর:


10

ঠিক আছে, কিছুটা বিচলিত তবে এর প্রতিক্রিয়া জানাতে:

  1. কিছু যাদু (এই থ্রেডে কার্পেটস্মোকারের একটি মন্তব্য থেকে)

আমার সাধারণ ধারণাটি ছিল আপনি যদি কোনও এনক্রিপ্ট করা ফাইল ব্যবহার করেন তবে আপনি সর্বদা "ব্যক্তিগত মোড" শুরু করতে চান, সুতরাং এই স্বতঃসমাংশ আপনার জন্য এটি করবে:

au BufRead * if &key!= ""
    \ | setlocal history=0 nobackup nomodeline noshelltemp noswapfile noundofile nowritebackup secure viminfo=""
    \ | endif

মূলত, প্রতিটি সময় ডিস্ক থেকে কোনও ফাইল পড়ার সময় keyসেটিংসটি সেট করা আছে কিনা তা পরীক্ষা করে নেওয়া হয় (এটি এখানে আপনার পাসফ্রেজড সংরক্ষণ করা আছে), এবং যদি তা হয় তবে এটি আপনার সেটিংস সেট করে। :help autocommandকীভাবে স্বতঃসংশ্লিষ্ট কাজ করে তার একটি সাধারণ ওভারভিউ দেখুন ।

এর সুবিধাটি হ'ল এটি ব্যবহার করতে ভুলতে পারেন না।

অবশ্যই এটি ফাইলটি এনক্রিপ্ট করা দরকার। যদি তা না হয় তবে কিছুই করা হয় না। তবে সব হারিয়ে যায় না, আমরা কোনও ফাইল ব্যক্তিগত হিসাবে চিহ্নিত করতে একটি ফাইলের নাম ব্যবহার করতে পারি, উদাহরণস্বরূপ:

au BufRead *.private setlocal ...

সমস্ত ফাইল এর সমাপ্তি .privateহিসাবে চিহ্নিত করবে ।

যদি আপনি "ব্যক্তিগত" মোডে এলোমেলোভাবে ফাইলগুলি খুলতে চান, তবে আমি একটি সাধারণ শেল ওরফে ব্যবহার করার পরামর্শ দেব, যেমন:

alias vimprivate='vim -c "source ~/.vim/private"

এবং এতে ~/.vim/privateথাকবে:

setlocal history=0 nobackup nomodeline noshelltemp noswapfile noundofile nowritebackup secure viminfo=""

কেন হবে না -u? ঠিক আছে, এইভাবে আপনার নিজের সেটিংস এবং "ব্যক্তিগত" সেটিংস রয়েছে। আপনি দুটি এর সাথে একত্রিত করতে পারেন:

au BufRead * if &key!= "" | source ~/.vim/private | endif

1

তেজ ডকুমেন্টেশন মতে ( :help -c) সেখানে মাত্র 10 সর্বোচ্চ হতে পারে +{command}, -c {command}এবং -S {file}বিকল্প আর্গুমেন্ট মিলিত যখন তেজ শুরু, এবং তারা _after_ চালানো প্রথম ফাইলটি পড়া হয়।

--cmd {command}বিকল্প একটি অতিরিক্ত 10 কমান্ড কোনো vimrc ফাইল প্রক্রিয়া হওয়ার আগে নিষ্পন্ন করা হবে, কিন্তু মনে রাখবেন কোনো সেটিংস vimrc মাধ্যমে ওভাররাইড করা যেতে করতে পারেন।

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

আমি মনে করতে পারি সবচেয়ে সুরক্ষিত নিমন্ত্রণ পদ্ধতিটি ~/.bashrcএকটি সহজ এবং টু দ্য পয়েন্ট ভিমারসিপ্রাইভেট ফাইলের সাথে এলিয়াসগুলি ব্যবহার করা হয়:

# Secure Vim
alias vimsec="vim -N -n -i NONE -u ~/.vimrcprivate"
alias gvimsec="g$(alias vimsec | sed -e "s/-u/-U/" -e "s/\(.*\)'\(.*\)'/\2/")"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.