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 !

73voto

Ben Points 831

Au lieu d'appuyer sur ^ vous pouvez appuyer sur _ (trait de soulignement) pour passer au premier caractère sans espace sur la ligne où se trouve le curseur.

+ y - sauter au premier caractère sans espace sur la ligne suivante/précédente.

(Ces commandes ne fonctionnent qu'en mode normal, pas en mode insertion).

71voto

slhck Points 209720

Si je comprends bien - de :h ^ :

^ To the first non-blank character of the line.
  |exclusive| motion.

(contrairement à 0 ce qui permet d'aller au début, qu'il y ait ou non des espaces blancs.)

12voto

badteeth Points 250

Peut-être aussi utile : + y - déplacera le curseur vers le haut ou le bas, respectivement, jusqu'au premier caractère non blanc.

6voto

Andrew Sohn Points 161

Voici un extrait du fichier .vimrc.
^[[1~ est créé en appuyant sur ctrl+v y Home

"jump to first non-whitespace on line, jump to begining of line if already at first non-whitespace
map <Home> :call LineHome()<CR>:echo<CR>
imap <Home> <C-R>=LineHome()<CR>
map ^[[1~ :call LineHome()<CR>:echo<CR>
imap ^[[1~ <C-R>=LineHome()<CR>
function! LineHome()
  let x = col('.')
  execute "normal ^"
  if x == col('.')
    execute "normal 0"
  endif
  return ""
endfunction

0voto

Sunding Wei Points 109

Je viens de remapper la touche 0 à ^

Editez votre ~/.vimrc

set visualbell t_vb=
map 0 ^

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