(Haga clic en la imagen para ampliar)
Mire la imagen de arriba, es una línea que declara una lista enorme. Ahora supongamos que mi cursor está en el primer elemento 'i'
y presiono 'j', luego el cursor va directamente a la línea, new_s=''
pero lo que quiero es que el cursor vaya a la 's' de la palabra 'she'
a continuación.'i'
¿Hay alguna manera de hacer esto?
Respuesta1
j
mueve el cursor hacia abajo unalinea fisica. Puedes usar gj
para bajar unolínea mostrada.
Respuesta2
Las respuestas existentes son acertadas.
Quería agregar que j
/ k
y gj
/ gk
son estrictamente equivalentes cuando se trabaja con texto no ajustado. Por lo tanto, las siguientes asignaciones son tan inofensivas (si no lo hace :set wrap
) como útiles (si lo hace :set wrap
):
nnoremap j gj
nnoremap k gk
Respuesta3
Me gusta el guión de aquí:
http://vim.wikia.com/wiki/Move_cursor_by_display_lines_when_wrapping
"Mapeo para hacer que los movimientos operen en 1 línea de pantalla en modo ajustado
¡función! ScreenMovement(movimiento)
if &wrap && b:gmove == 'yes'
devuelve "g" . a:movimiento
else
return a:movimiento
endif
función final
onoremap j ScreenMovement("j")
onoremap k ScreenMovement("k")
onoremap 0 ScreenMovement("0")
onoremap ^ ScreenMovement("^")
onoremap $ ScreenMovement("$")
nnoremap j ScreenMovement("j")
nnoremap k ScreenMovement("k")
nnoremap 0 ScreenMovement("0")
nnoremap ^ ScreenMovement("^")
nnoremap $ ScreenMovement("$")
vnoremap j ScreenMovement("j")
vnoremap k ScreenMovement("k")
vnoremap 0 ScreenMovement("0")
vnoremap ^ ScreenMovement("^")
vnoremap $ ScreenMovement("$")
vnoremap j ScreenMovement("j")
" alternar
función showbreak! TYShowBreak()
if &showbreak == ''
set showbreak=>
else
set showbreak=
endif
endfunction
let b:gmove = "yes"
function! TYToggleBreakMove()
if existe("b:gmove") && b:gmove == "yes"
let b:gmove = "no "
más
let b:gmove = "yes"
endif
endfunction
nmap ,b TYShowBreak()
nmap ,bb TYToggleBreakMove()
Luego puede usar ,b para mostrar si la línea se ajusta (el ejemplo anterior usa el carácter '>'). Luego, bb desactiva el movimiento de la pantalla si tiene configurado el ajuste.
Además, también tengo un ajuste configurado en un enlace en mi VIMRC:
"--- wrap toggle with f2 key---"
function! ToggleWrap()
set wrap!|set wrap?
endfunction
"F2 toggles wrap
nmap <f2> :call ToggleWrap()<CR>
vmap <F2> <C-C>:call ToggleWrap()<CR>
imap <F2> <C-O>:call ToggleWrap()<CR>i
Respuesta4
Si escribe gj, el cursor se moverá una línea hacia abajo, gk lo llevará una línea hacia arriba. ¿Supongo que estás en una ventana de consola normal?
Salud