如何在Kakoune上选择多条线向上?

fia*_*jaf 3 key-bindings kakoune

在Vim中,我将进入视觉模式,V然后向上移动光标(带k).

我可以选择用一条线x,我可以通过按下向下延伸的选择X多次或向下移动光标,同时还按shiftJ,但是如果我去了,而仍然坚持shift,与K我保持的选择,而不是对整个行,第一个选定行上的选择以某种方式跳转到第0列.

sup*_*eed 7

那是因为Kakoune的选择是有针对性的.选择一行时x,光标位于行的末尾,锚点位于开头.shiftk表示"将选择范围扩展到上面的字符",但扩展意味着"选择到那里,同时保持相同的锚点","上面的字符"是前一行的最后一个字符.

简而言之,您需要在向上扩展之前切换选择的方向:x+ alt;+ shiftk.

  • 我相信这是 macOS 终端的一个怪癖,与 Kakoune 无关。根据您的终端,您可能需要检查其设置以确保选项键确实是 alt(元)。 (2认同)

Eri*_*ton 5

这并不理想,但此时我能找到的进行全行选择的最佳方法是执行您所描述的操作:x然后按 向上滚动shiftk

仅当完成向上滚动后,您才必须通过按 来展开选择以包含所有整行altx

请参阅此 Github kakoune 问题中的讨论,了解针对此问题的一些出色的脚本解决方案,您可以将这些解决方案添加到您的kakrc.

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>"
Run Code Online (Sandbox Code Playgroud)