আমি কীভাবে নোটপ্যাড ++ এর মতো জিভিআইমে একটি নির্বাচিত শব্দের সমস্ত উপস্থিতি হাইলাইট করতে পারি?
আমি কীভাবে নোটপ্যাড ++ এর মতো জিভিআইমে একটি নির্বাচিত শব্দের সমস্ত উপস্থিতি হাইলাইট করতে পারি?
উত্তর:
সাধারণ মোডে:
:set hlsearch
তারপর আদেশের সঙ্গে একটি প্যাটার্ন অনুসন্ধান /
সাধারণ মোড, বা <Ctrl>o
অনুসৃত দ্বারা /
সন্নিবেশ মোডে আছে। *
সাধারণ মোডে কার্সারের নীচে শব্দের পরবর্তী ঘটনা অনুসন্ধান করা হবে। hlsearch
বিকল্প তাদের সব যদি সেট হাইলাইট হবে। #
শব্দের আগের ঘটনাটি অনুসন্ধান করবে।
পূর্ববর্তী অনুসন্ধানের হাইলাইটটি সরাতে:
:nohlsearch
আপনি :nohlsearch<CR>
কিছু সুবিধাজনক কী মানচিত্র করতে ইচ্ছুক হতে পারে ।
*
বা #
দ্বারা <Ctrl>o
স্বাভাবিক মোডে আছে।
:nohlsearch
, আপনি কেবল ব্যবহার করতে পারেন:noh
.vimrc
: noremap <F4> :set hlsearch! hlsearch?<CR>
হাইলাইট এবং এর মাধ্যমে হাইলাইট সরানোর মধ্যে টগল করার জন্য <F4>
।
*
কী শব্দ যে কার্সার অধীনে সব ঘটনার হাইলাইট হবে।
&hlsearch
চালু থাকে।
#
।
আমি জানি এটি সত্যিই একটি পুরানো প্রশ্ন, তবে কেউ যদি এই বৈশিষ্ট্যে আগ্রহী হন তবে এই কোডটি http://vim.wikia.com/wiki/Auto_hightlight_current_word_wen_idle চেক করতে পারেন
" Highlight all instances of word under cursor, when idle.
" Useful when studying strange source code.
" Type z/ to toggle highlighting on/off.
nnoremap z/ :if AutoHighlightToggle()<Bar>set hls<Bar>endif<CR>
function! AutoHighlightToggle()
let @/ = ''
if exists('#auto_highlight')
au! auto_highlight
augroup! auto_highlight
setl updatetime=4000
echo 'Highlight current word: off'
return 0
else
augroup auto_highlight
au!
au CursorHold * let @/ = '\V\<'.escape(expand('<cword>'), '\').'\>'
augroup end
setl updatetime=500
echo 'Highlight current word: ON'
return 1
endif
endfunction
সবচেয়ে সহজ উপায়, সাধারণ মোডে টাইপ করুন *
সক্ষম ও অক্ষম করার জন্য আমার কাছে এই ম্যাপিংগুলি রয়েছে
"highligh search enabled by default
set hlsearch
"now you can toggle it
nnoremap <S-F11> <ESC>:set hls! hls?<cr>
inoremap <S-F11> <C-o>:set hls! hls?<cr>
vnoremap <S-F11> <ESC>:set hls! hls?<cr> <bar> gv
এটিতে ক্লিক করে শব্দটি নির্বাচন করুন
set mouse=a "Enables mouse click
nnoremap <silent> <2-LeftMouse> :let @/='\V\<'.escape(expand('<cword>'), '\').'\>'<cr>:set hls<cr>
বোনাস: কাউন্টওয়ার্ড ফাংশন
fun! CountWordFunction()
try
let l:win_view = winsaveview()
let l:old_query = getreg('/')
let var = expand("<cword>")
exec "%s/" . var . "//gn"
finally
call winrestview(l:win_view)
call setreg('/', l:old_query)
endtry
endfun
" Bellow we set a command "CountWord" and a mapping to count word
" change as you like it
command! -nargs=0 CountWord :call CountWordFunction()
nnoremap <f3> :CountWord<CR>
মাউসের সাহায্যে শব্দ নির্বাচন করা এবং একবারে সংঘটন ঘটনাগুলি: ওবিএস: লক্ষ্য করুন যে এই সংস্করণে আমাদের শেষে "কাউন্টওয়ার্ড" কমান্ড রয়েছে
nnoremap <silent> <2-LeftMouse> :let @/='\V\<'.escape(expand('<cword>'), '\').'\>'<cr>:set hls<cr>:CountWord<cr>
nnoremap * *``cgn
এবংnnoremap # #``cgN
*
কীভাবে হাইলাইটিং বন্ধ করব?
:noh
বা:nohlsearch
nnoremap <silent> * :execute "normal! *N"<cr>
এবং nnoremap <silent> # :execute "normal! #n"<cr>
? এগুলি কেবল কার্সারের নীচে শব্দটি হাইলাইট করে তবে এটি পরবর্তী ঘটনাতে স্থানান্তরিত করে না।
অনুসন্ধান ভিত্তিক সমাধান ( *, /...) সরানো কার্সার, যা দুর্ভাগ্যজনক হতে পারে।
বিকল্পটি হ'ল বর্ধিত চিহ্ন.ভিম প্লাগইন ব্যবহার করা , তারপরে .vimrc
ডাবল-ক্লিক ট্রিগার হাইলাইট করার জন্য আপনার সম্পূর্ণ করুন (আমি জানি না কী কীবোর্ড নির্বাচনটি একটি কমান্ডকে ট্রিগার করতে পারে):
"Use Mark plugin to highlight selected word
map <2-leftmouse> \m
এটি একাধিক হাইলাইটস, অধ্যবসায় ইত্যাদির অনুমতি দেয়
হাইলাইটিং অপসারণ করতে হয়:
:Mark
(পরবর্তী নির্বাচন হওয়া পর্যন্ত স্যুইচ অফ):MarkClear
:set noincsearch
। আমার মতে এটি ভিমের সবচেয়ে বিরক্তিকর বৈশিষ্ট্যগুলির মধ্যে একটি এবং আমি তাজা ইনস্টলের জন্য অক্ষম হওয়া প্রথম জিনিসগুলির মধ্যে একটি।
*
নিঃশর্তভাবে কার্সারটি সরানো হবে। এবং আমি দেখতে পাচ্ছি না কীভাবে incsearch
বিরক্ত হতে পারে, যেহেতু এটি কেবলমাত্র 'সামনের দিকে তাকান', প্রকৃতপক্ষে আপনার অবস্থান পরিবর্তন না করেই বর্তমান অনুসন্ধান সম্পাদন করছে।
incsearch
চলাচলকে বাধা দেবে, তবে একটি দ্রুত পরীক্ষা আপনাকে সঠিক বলে নিশ্চিত করে। আমার ক্ষমা। যাইহোক, এটা যে প্রতিরোধ আন্দোলন একটি ম্যাপিং তৈরি করতে সুপার সহজ আছে: :nnoremap * *N
। আমি বিশ্বাস করতে পারি না যে আপনি বিরক্তিকর হয়ে উঠছেন না যে আপনি কোনও অনুসন্ধান সম্পাদন করার সাথে সাথে আপনার কার্সারটি পুরো পর্দায় ঝাঁপিয়ে পড়ে। তবে ... এই জিনিসগুলি সম্পূর্ণরূপে বিষয়গত। ভিভ লা ডিফারেন্স ;-)
:let @/='hilight_this'
ধরে নিয়েও আপনি এটি করতে পারেন hlsearch
। এটি জাম্পিং ছাড়াই পাঠ্যকে হাইলাইট করে এবং আপনাকে বিদ্যমান সেটিংস পরিবর্তন করতে হবে না। এটি বর্তমানে অনুসন্ধান রেজিস্টারে সঞ্চিত মানটিকে পরিবর্তন করে।
প্রথম (বা আপনার .vimrc এ):
:set hlsearch
তারপরে আপনি যে শব্দটি হাইলাইট করতে চান তার উপরে কার্সারটি অবস্থান করুন এবং হিট করুন *
।
hlsearch
এর অর্থ বর্তমান অনুসন্ধানের সমস্ত উপস্থিতিকে হাইলাইট করে এবং *
কার্সারের নীচে শব্দটির সন্ধান করা।
প্রথমে নিশ্চিত করুন যে নিম্নলিখিত আদেশটি জারি করে hlsearch সক্ষম করা আছে is
:set hlsearch
সেট হিসাবে আপনার .vimrc ফাইল এ এটি যুক্ত করতে পারেন
set hlsearch
এখন যখন আপনি কমান্ড মোডে বা নিয়মিত অনুসন্ধান কমান্ডে তাত্ক্ষণিক অনুসন্ধান পদ্ধতি ব্যবহার করেন, সমস্ত ফলাফল হাইলাইট করা হবে। ফলাফলের মধ্যে এগিয়ে যাওয়ার জন্য, 'এন' টিপুন পেছনের দিকে যেতে 'এন' টিপুন
সাধারণ মোডে, কার্সারের নীচে শব্দের তাত্ক্ষণিক অনুসন্ধান করতে এবং একটি কমান্ড '*' চাপলে পরবর্তী ঘটনাটিতে যেতে, আপনি কার্সারের নীচে শব্দটি অনুসন্ধান করতে পারেন এবং '# টিপে পূর্বের উপস্থিতিতে যেতে পারেন '
সাধারণ মোডে, দ্রুত অনুসন্ধানও এর সাথে ডাকা যেতে পারে
/searchterm<Enter>
অবিশ্বাসের ব্যবহারের উপরের হাইলাইটগুলি সরাতে, আমি আমার .vimrc এ একটি শর্টকাটে আবদ্ধ করেছি
:nohl
অনুসন্ধান হাইলাইটিং সক্ষম করুন:
:set hlsearch
তারপরে শব্দটি অনুসন্ধান করুন:
/word<Enter>
এটি করার জন্য আমার প্রিয় হ'ল মার্ক.ভিম প্লাগইন। এটি একই সাথে বিভিন্ন রঙে বেশ কয়েকটি শব্দ হাইলাইট করতে দেয়।
কার্সার সরানো ছাড়াই শব্দ হাইলাইট করার জন্য, plop
" highlight reg. ex. in @/ register
set hlsearch
" remap `*`/`#` to search forwards/backwards (resp.)
" w/o moving cursor
nnoremap <silent> * :execute "normal! *N"<cr>
nnoremap <silent> # :execute "normal! #n"<cr>
আপনার vimrc মধ্যে।
এটি সম্পর্কে দুর্দান্ত কি g*
এবং g#
এখনও "স্বাভাবিক" *
এবং এর মতো কাজ করবে #
।
সেট hlsearch
অফ করতে, আপনি "শর্ট-ফর্ম" ব্যবহার করতে পারেন (যদি না আপনার কমান্ড মোডে "নোহ" দিয়ে শুরু হওয়া অন্য ফাংশন থাকে)::noh
। অথবা আপনি দীর্ঘ সংস্করণ ব্যবহার করতে পারেন::nohlsearch
চূড়ান্ত সুবিধার্থে (আমি নিজেকে hlsearch
20 বার টগল করতে দেখি ), আপনি টগল করার hlsearch
মতো কিছু মানচিত্র করতে পারেন:
" search highlight toggle
nnoremap <silent> <leader>st :set hlsearch!<cr>
।। যদি এটি <leader>
হয় \(এটি ডিফল্টরূপে), আপনি টগল করতে সাধারণ মোডে \st(দ্রুত) টিপতে পারেন ।hlsearch
অথবা আপনি কেবল :noh
ম্যাপ করতে চান :
" search clear
nnoremap <silent> <leader>sc :nohlsearch<cr>
কেবল উপরে রান :nohlsearch
(অসদৃশ তাই :set hlsearch!
) এটি এখনও শব্দ পরের বার আপনি যখন চাপুন তুলে ধরবে *বা #মধ্যে স্বাভাবিক মোড।
চিয়ার্স
ব্যবহার autocmd CursorMoved * exe printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\'))
IncSearch
আপনি কিছু সেট করেছেন তা নিশ্চিত করুন । যেমন call s:Attr('IncSearch', 'reverse')
। বিকল্পভাবে আপনি তার জায়গায় অন্য একটি হাইলাইট গ্রুপ ব্যবহার করতে পারেন।
এটি কোনও দেরি না করে আপনার কার্সারের নীচে শব্দের সমস্ত উপস্থিতিকে হাইলাইট করবে। আমি দেখতে পাচ্ছি যে আমি কোডের মধ্য দিয়ে ঝাঁকুনি দিলে একটি বিলম্ব আমাকে কমিয়ে দেয়। হাইলাইট রঙটি শব্দের বর্ণের সাথে মিলবে, তাই এটি আপনার স্কিমের সাথে সামঞ্জস্য থাকে।
কেন শুধু নয়: z /
এটি কার্সারের অধীনে বর্তমান শব্দটি এবং অন্য কোনও সংঘটিত হাইলাইট করবে। এবং আপনি যে আইটেম অনুসন্ধান করছেন তার জন্য আপনাকে আলাদা কমান্ড দেওয়ার দরকার নেই। সম্ভবত এটি অপরিষ্কার gvim পাওয়া যায় না? এটি ডিফল্টভাবে vim মধ্যে।
* যদি আপনি কার্সারটি পরবর্তী ঘটনায় যেতে চান তবেই তা ঠিক। দু'টি জিনিসের সাথে দৃষ্টিভঙ্গি তুলনা করার সময় আপনি প্রায়শই কার্সারটি সরাতে চান না এবং প্রতিবার * কীটি টিপুন বিরক্তিকর।
~/.vimrc
ফাইলে সেই লাইনগুলি যুক্ত করুন
" highlight the searched items
set hlsearch
" F8 search for word under the cursor recursively , :copen , to close -> :ccl
nnoremap <F8> :grep! "\<<cword>\>" . -r<CR>:copen 33<CR>
:so%
সাধারণ মডেল শব্দটি উপরে যান।
শব্দটি দিয়ে আপনার পুরো প্রকল্পকে পুনরাবৃত্তভাবে নীচে নামতে অনুসন্ধান করতে * F8 টিপুন
উদাহরণস্বরূপ এই প্লাগইনগুলি:
ভিতরে কার্সারের নিচে কেবল অনুসন্ধান করুনVimawesome.com কেবল
ক্লাগসিসি হিসাবে উল্লিখিত কীটি হ'ল হাইলাইটটি আপনার অনুসন্ধানের সাথে বিরোধ নয় : https://vim.fandom.com/wiki/Auto_hightlight_current_word_with_idle
এটি কীভাবে অনুসন্ধানের সাথে বিরোধী নয় এর স্ক্রিন শট: নোট:
hlsearch
অনেকগুলি টগল করার পরিকল্পনা করে থাকেন তবে আপনি এর:set hlsearch!
পরিবর্তে মানচিত্র বানাতে পারেন:set nohlsearch
। এটি সেটিংটি সর্বদা বন্ধ করার চেয়ে টগল করে।