61 votes

Déplacer le curseur au début des caractères sans espace dans une ligne dans Vim

Dans Vim, existe-t-il un moyen de déplacer le curseur au début des caractères non blancs d'une ligne ? Par exemple, comment puis-je déplacer le curseur sur le "S" de la deuxième ligne ci-dessous ?

First line
    Second line

Si cela a de l'importance, j'utilise principalement MacVim, mais j'aimerais aussi pouvoir faire cela à partir de la console.

Merci !

0voto

user2448373 Points 1

Pour approfondir la réponse d'Andrew Sohn, si vous souhaitez utiliser 0 pour ce comportement, il suffit de l'envelopper comme suit :

function! LineHome()
  let x = col('.')
  execute "normal ^"
  if x == col('.')
    unmap 0
    execute "normal 0"
    map 0 :call LineHome()<CR>:echo<CR>
  endif
  return ""
endfunction

0voto

MERM Points 166

Et juste pour être complet, voici le double de la réponse d'Andrew Sohn :

" jump to the last non-whitespace char on line, or eol if already there
map <End> :call LineEnd()<CR>:echo<CR>
imap <End> <C-R>=LineEnd()<CR>
function! LineEnd()
  let x = col('.')
    execute "normal g_"
  if x == col('.')
    execute "normal $"
  endif
 return ""
endfunction

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X