2009-11-26 8 views
11

Si hago cualquiera de los dos siguientes:¿Cómo activo el resaltado de búsqueda desde una secuencia de comandos de vim?

call search("searchString") 

exec "/ searchString" 

de un guión, a continuación, hace vim la búsqueda, pero no resaltar los resultados, a pesar de que hlsearch. Hacer las mismas búsquedas desde fuera de un script resalta los resultados.

+0

Acabo de encontrar la respuesta yo mismo .. siempre el camino. Aquí está: búsqueda de llamadas (l: searchString) llamada matchadd ('Buscar', l: searchString) – crelbor

+0

Por favor, añada aquí su respuesta como una verdadera respuesta. Es difícil detectar el comentario cuando realmente está buscando una respuesta. – innaM

Respuesta

9

acaba de encontrar la respuesta a mí mismo:

call search(l:searchString) 
call matchadd('Search', l:searchString) 
+2

¿Esto permite el uso normal de n/N para la coincidencia siguiente/anterior? – alesplin

+0

¡Esto realmente ayuda! – Life

+0

@alesplin: [Esto] (https://stackoverflow.com/questions/1803539/how-do-i-turn-on-search-highlighting-from-a-vim-script/47746577#14087567) la respuesta a continuación dice que no . Publiqué una [solución] (https://stackoverflow.com/questions/1803539/how-do-i-turn-on-search-highlighting-from-a-vim-script/47746577#47746577). –

-3

que necesita para poner esto en su archivo .vimrc

" Switch syntax highlighting on, when the terminal has colors 
" Also switch on highlighting the last used search pattern. 
if &t_Co > 2 || has("gui_running") 
    syntax on 
    set hlsearch 
endif 

El archivo .vimrc normalmente se encuentra en su directorio personal, o se puede encontrar utilizando "localice .vimrc"

+1

Se trata de secuencias de comandos en vim, sin activar las búsquedas y resaltado de sintaxis en general. – crelbor

1

Sé que esto es tarde. Sin embargo, cuando busqué la respuesta a este problema, apareció esta página. Entonces me siento obligado a ayudar a solucionarlo.

búsqueda de llamadas (l: searchString que)

llamada matchadd ('Buscar', l: searchString que)

no funcionó para mí. (cuando se ejecuta desde el interior de una función) Hizo resaltar las palabras que quería buscar, pero n/N no cambiaría de ciclo entre ellas. Además, cuando realicé una nueva búsqueda, el patrón "l: serachStirng" permaneció resaltado. Esta respuesta en este enlace funcionaba mucho mejor

Vim search and highlighting control from a script

Lo que me dio:

dejar @/= l: searchstring

continuación, ejecute

normal n

fuera del funciton (así el resalte se hace inmediatamente sin que el usuario pueda pulsar n)

1

Para encender, pulse ESC tipo :set hls

Para apagar, pulse ESC tipo :set nohls

+0

-1: No funciona según sea necesario, desde un script. –

1

El

feedkeys()

función es la clave (juego de palabras):

call feedkeys("/pattern\<CR>") 

o limpiador:

" highlights – or doesn’t – according to 'hlsearch' option 
function SearcH(pattern) 
    let @/ = a:pattern 
    call feedkeys("/\<CR>") 
endfunction 
Cuestiones relacionadas