Existe-t-il une commande pour diviser les lignes dans Vim?


15

Dans Vim, la Jclé relie deux lignes ensemble. Existe-t-il une combinaison de touches intégrée similaire pour diviser les lignes avec une nouvelle ligne (à la position du curseur ou similaire)?

Sinon, quelle serait la manière la plus robuste de définir une combinaison de touches pour ce faire (en mode normal, pas en mode insertion)?


Réponses:


16

Non, il n'y a pas de commande intégrée pour cela.

Quand je veux partager un <Space>, je le fais r<CR>.

--- ÉDITER ---

Le commentaire de @ keith-nicholas m'a rappelé cette question. FWIW J'ai trouvé une méthode, espérons-le, "universelle" en attendant:

function! BreakHere()
    s/^\(\s*\)\(.\{-}\)\(\s*\)\(\%#\)\(\s*\)\(.*\)/\1\2\r\1\4\6
    call histdel("/", -1)
endfunction

nnoremap <key> :<C-u>call BreakHere()<CR>

4
L'utilisation r<CR>est tout simplement intelligente! Merci!
Marcelo

1
c'est génial! super ennuyeux dans l'insertion pour insérer des lignes
Keith Nicholas

J'ai trouvé s<CR>garde indentation alors r<CR>que non.
toxefa

5

a Enter Escpour diviser à droite du curseur ou i Enter Escpour diviser à gauche.


1
C'est ça. Insérez simplement une nouvelle ligne. Alternativement: utilisez r + <retour> pour remplacer le caractère sous le curseur par une nouvelle ligne. Ce serait bien d'avoir une seule commande pour cette lettre, mais pour autant que je sache, il n'y en a pas.
Tonny

2

Le moyen le plus simple que j'ai trouvé pour séparer les lignes dans Vim est la commande en mode normal gq(tapez les deux lettres en succession rapide en mode normal ou visuel):

  • En mode visuel, il divisera tout ce qui est sélectionné.
  • En mode normal, vous suivez gqavec un mouvement.

Par exemple, gqldivisera une ligne à la largeur actuellement définie. Pour définir la largeur des lignes de séparation pour être différente de votre paramètre actuel, vous pouvez utiliser

:set textwidth=<n>

Où n = nombre de caractères que vous voulez dans une ligne, par exemple 10, et revenez à votre largeur normale lorsque vous avez terminé.

Vous avez obtenu ces informations d'une vidéo Youtube de Kholidfu qui montre comment joindre et diviser des lignes en mode normal en utilisant un mouvement: Tutoriel Vim - Join and Split Lines .


1

Vous pouvez définir la vôtre en utilisant la carte. Pour définir z comme commande par exemple:

:map z i<CTRL+m>

0

Vous pouvez enregistrer une macro:

en mode normal, tapez "q +" pour démarrer l'enregistrement. appuyez sur "i", la macro que vous souhaitez enregistrer. puis appuyez à nouveau sur "q" pour arrêter l'enregistrement.

pour utiliser la macro, passez en mode normal et tapez "@ + lettre".

dans mon cas j'ai utilisé le "b" pour utiliser cette macro: pour enregistrer le type en mode normal "qbiq" pour utiliser le type en mode normal "@b"

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.