В Vim я бы входил в визуальный режим с помощью V , а затем просто перемещал курсор вверх (с помощью k ).

В kak я могу выбрать строку с помощью x и расширить выбор вниз, нажимая X несколько раз или перемещая курсор вниз, все еще нажимая shift с J , но если я поднимусь, все еще нажимая shift , с K Я сохраняю выделение, но не для всей строки, выделение на первой выделенной строке каким-то образом переходит к столбцу 0.

4
fiatjaf 27 Май 2017 в 21:47

2 ответа

Лучший ответ

Это не идеально, но на данный момент лучшее, что я могу найти, чтобы сделать выделение на всю строку, это сделать то, что вы описали: x , а затем прокрутить вверх, нажав shift < KBD > к .

Только когда вы закончите прокрутку вверх, вы должны расширить выделение, чтобы включить все полные строки, нажав alt x .

См. Обсуждение в этой проблемы с Github kakoune, чтобы найти отличные сценарии решения этой проблемы, которые вы можете добавить в свой kakrc.

Одним из таких решений является , размещенный на вики-странице kakoune :

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>"
2
Eric S. Bullington 29 Май 2017 в 18:39

Это потому, что выборы Какуне ориентированы. Когда вы выбираете строку с помощью x , курсор находится в конце строки, а привязка - в начале. shift k означает «расширить выделение до символа выше», но расширить означает «выбрать там, сохраняя ту же привязку», а «символ выше» - последний символ предыдущей строки.

Короче говоря, вам нужно изменить направление выделения перед расширением вверх: x + alt ; + shift < KBD > к .

9
superseed 17 Ноя 2017 в 12:45