2017-05-27 2 views
2

Dans Vim je voudrais entrer en mode visuel avec V alors juste déplacez le curseur vers le haut (avec k).Comment sélectionner plusieurs lignes à la hausse sur Kakoune?

Dans kak je peux sélectionner une ligne avec x et je peux étendre la sélection vers le bas en appuyant sur X plusieurs fois ou en déplaçant le curseur vers le bas tout en appuyant sur décalage avec J, mais si je vais jusqu'à tout en appuyant sur changement, avec K Je garde la sélection, mais pas pour la ligne, la sélection sur la première ligne sélectionnée saute en quelque sorte à la colonne 0.

Répondre

2

Ce n'est pas idéal, mais à ce stade, le mieux que je peux trouver pour faire des sélections en ligne complète est de faire ce que vous avez décrit: x et puis faites défiler vers le haut en appuyant sur shiftk.

Seulement une fois que vous avez fini de défiler vers le haut, vous devez alors étendre la sélection pour inclure toutes les lignes complètes en appuyant sur alt x. Voir la discussion dans this Github kakoune issue pour quelques bonnes solutions de script à ce problème que vous pouvez ajouter à votre kakrc.

L'une de ces solutions est featured on the kakoune wiki:

def -hidden -params 1 extend-line-down %{ 
    exec "<a-:>%arg{1}X" 
} 
def -hidden -params 1 extend-line-up %{ 
    exec "<a-:><a-;>%arg{1}K<a-x>" 
} 
map global normal x ":extend-line-down %val{count}<ret>" 
map global normal X ":extend-line-up %val{count}<ret>" 
3

C'est parce que les sélections de Kakoune sont orientées. Lorsque vous sélectionnez une ligne avec x, le curseur se trouve à la fin de la ligne et l'ancre au début. Signifie shiftk signifie «étendre la sélection au caractère ci-dessus», mais étendre signifie «sélectionner là-bas tout en conservant la même ancre» et le «caractère ci-dessus» est le dernier caractère de la ligne précédente.

En bref, vous devez changer la direction de la sélection avant d'étendre jusqu'à: x + alt ; + décalagek.