Generalmente busco palabras por :/string
, pero si tengo que buscar en la línea actual completa, cómo hacerlo.
event: 1 beacon: 0x02 //line 1
event: 19 beacon: 0x02 //line 2
event: 1 beacon: 0x03 //line 3
event: 1 beacon: 0x02 //line 4
event: 8 beacon: 0x01 //line 5
event: 19 beacon: 0x02 //line 6
event: 1 beacon: 0x02 //line 7
Por ejemplo, si cursor
actualmente se trata de line 1
cómo buscar de manera similar al :/
texto que contiene toda la línea actual. El cursor debería saltar a la coincidencia line 4
, y nuevamente aline 7
command-line
search
highlight
delimiter-matching
mark
manav mn
fuente
fuente
nnoremap {key} 0y$/\V<c-r>"<cr>
Especialmente para fines de mapeo, encuentro que usar es
getline()
más elegante que tirar de ti mismo. Llamargetline()
con una cadena'.'
devuelve la línea debajo del cursor. Hay dos buenas opciones para usar esto:que analiza las cadenas
'/'
y lo que se devuelve de formagetline()
conjunta y lo ejecuta como un comando vim.o
que usa el registro de expresión
@=
. La siguiente expresión=
se evalúa después de la primera<CR>
y se coloca en la línea de comando.fuente
/
o'
no funciona muy bien. De todos modos, ¡aprendo algo hoy! GraciasPersonalmente, obtendría un plugin visual star ( hay pocos por ahí ). Hay un buen Vimcast sobre esto: busca el texto seleccionado . Esto significa que puede seleccionar la línea visualmente y luego presionar
*
.Si un complemento no es lo tuyo, puedes agregar la siguiente asignación a tu
vimrc
:Nota: Visual-block (
<c-v>
) no es compatible con esta asignación.fuente
*
el modo normal o no tiene la asignación instalada correctamente.Todas las respuestas existentes fallan si su línea contiene ciertos elementos que se interpretan como parte de un patrón. El
\V
punto llega a la mayor parte del camino, pero aún se complica con la barra invertida.Intenta esto para escapar de las barras invertidas ...
Y luego, si lo está utilizando en un mapeo, necesitará uno o dos
<Enter>
s al final, según cómo desee que funcione.fuente
escape(…, '/\')
Con vim-asterisk instalado, solo use
V$*
(o0v$*
) para seleccionar la línea actual y buscarla.En el segundo comando
0
no es necesario si el cursor ya está en el inicio de la línea.fuente
*
solo busca la palabra debajo del cursor y no la selección visual actual?Una forma más de hacer esto es usar la ventana de línea de comandos:
yy/<Ctrl-F>p<Enter>
yy
/
y luego Ctrl-F para abrir la ventana de línea de comandosp
para pegar la líneafuente
q/
para obtener el mismo efecto que/<c-f>
http://vim.wikia.com/wiki/Searching_for_expressions_which_include_slashes señala que el registro de búsqueda se puede configurar directamente, así:
Esto permite buscar en la línea y funciona incluso cuando la línea incluye barras.
Entonces, para hacer, digamos, un
\*
mapa a una búsqueda de línea:fuente