2014-05-16 29 views
5

Tôi muốn có thể đánh dấu từ dưới con trỏ mà không cần đi đến kết quả tiếp theo.Vim đánh dấu một từ có * mà không cần di chuyển con trỏ

Giải pháp tôi thấy sử dụng một điểm đánh dấu:

noremap * mP*N`P 

Có giải pháp nào tốt hơn?

Tôi nhận thấy vim không thực sự tốt để giữ vị trí con trỏ của nó sau khi thực thi lệnh. Ví dụ, khi tôi chuyển đổi bộ đệm, con trỏ sẽ quay lại phần đầu của dòng.

Tôi có thể rất thú vị khi có cài đặt chung cho việc này.

+0

Trang wiki này có một phần về điều này: http://vim.wikia.com/wiki/Highlight_all_search_pattern_matches –

Trả lời

9

Rất tiếc, không có cài đặt chung cho điều đó.

Một giải pháp chung cho các "điểm nhấn, không nhúc nhích" Vấn đề là:

nnoremap * *`` 

Một giải pháp cho "giữ vị trí con trỏ khi chuyển đổi bộ đệm" Vấn đề là:

augroup CursorPosition 
    autocmd! 
    autocmd BufLeave * let b:winview = winsaveview() 
    autocmd BufEnter * if(exists('b:winview')) | call winrestview(b:winview) | endif 
augroup END 
4

Như chi tiết here , bạn có thể xác định bản đồ như sau:

:nnoremap <F8> :let @/='\<<C-R>=expand("<cword>")<CR>\>'<CR>:set hls<CR>

2

My SearchHighlighting plugin thay đổi lệnh *, để nó không chuyển sang kết quả phù hợp tiếp theo; bạn vẫn có thể nhảy bằng cách cung cấp một số [count]. Nó cũng mở rộng lệnh đó sang chế độ trực quan (một tính năng thường được yêu cầu khác không có trong Vim) và một số tính năng khác.

+0

Không có kho lưu trữ github bó/vundle cho plugin của bạn? – nowox

+0

https://github.com/vim-scripts/SearchHighlighting –

Các vấn đề liên quan