想问一下道友们,定义什么复制当前行

对呀,就是这种奇怪的负担。Emacs原生按键依赖Ctrl Meta这种修饰键,可以说独树一帜,加上自己常用按键的改造,效率非常高;但是我先用的vim,还是更习惯模式编辑,vim高效的方式是弃用 select mode。赋予动作加位置的操作,比方说 de 就代表删了一个单词;meow好在哪里呢,它采用 kakoune/helix 的逻辑,先做选择后动作,动作结束后依然是normal模式,不用退 select mode。vscode 上的 oomotion_vscode 是我认为类似于 meow 的更极大成者,它甚至不用选择,它本来的状态就是选择的,所以每次的操作更省按键,但是它的模式切换就变成了单个字母/单词/treesitter 这样的选择,也不一定是省按键的。所以说,还是看自己的选择。

1 个赞

M-w有选中内容时复制选中内容,没有选中内容时复制当前行

      (defun my-kill-ring-save (beg end &optional region)
        (interactive (list (mark) (point)
                           (prefix-numeric-value current-prefix-arg)))
        (if (region-active-p)
            (kill-ring-save beg end region)
          (progn
            (message "Copied line")
            (kill-ring-save (line-beginning-position) (line-end-position)))))

      (global-set-key [remap kill-ring-save] 'my-kill-ring-save)

删除当前行的话,我用原生按键C-S-BACKSPACE

对,这个逻辑跟easy-kill是一致的,很好用

比较简洁的原生按键:C-S-a M-w

不在行尾怎么办?

非常好用,一直在用这个包。已经成了我在任何开发环境上都要装上的了。

1 个赞

试试这个:

(defun kill-new-line ()
  "Push the current line into the kill ring."
  (interactive)
  (kill-new (thing-at-point 'line)))```

将之绑定个舒服的键 ~