V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MHPSY
V2EX  ›  Vim

想找一个好用的 vim 剪切板的快捷键

  •  
  •   MHPSY · 42 天前 · 1532 次点击
    这是一个创建于 42 天前的主题,其中的信息可能已经有所发展或是发生改变。

    再用 vim 的时候总是会用 c 、x 、d 命令删除,有的时候不想让它们占据剪贴板有的时候想,想看一下大家是怎么处理这个问题的。

    8 条回复    2024-07-29 08:50:45 +08:00
    z1645444
        1
    z1645444  
       42 天前   ❤️ 1
    重新 map 一下 y ,指定到除了数字 1-9 以外的一个寄存器就好
    Wanten
        2
    Wanten  
       42 天前   ❤️ 1
    clipboard = "", -- do not connection to the system clipboard

    n = {
    yy = { "yy\"+yy", desc = "yank to \" and + register" },
    },

    x = {
    y = { "\"+y", desc = "yank to \" and + register"}
    }
    coldle
        3
    coldle  
       42 天前   ❤️ 1
    关闭系统剪贴板那个选项,自己主动控制是否复制到系统剪贴板,反正无非就是*寄存器,比如我用空格做 leader ,写的配置就是空格前导的 d 、y 、p 才与系统剪贴板互动

    ```vimscript
    no <Leader>d "*d
    no <Leader>y "*y
    no <Leader>p "*p

    ```
    coldle
        4
    coldle  
       42 天前   ❤️ 1
    不好意思审题失误了。。看起来 op 是想问不占据 vim 内部剪贴板的方式,那按 #1 的方式映射到其他寄存器即可。或者也可以用类似我在 #3 的配置,主动维护一个系列的剪贴快捷键到不会被覆盖的寄存器
    xell
        5
    xell  
       42 天前
    vim 本来就设计了一个空寄存器 black hole register `_` ,可参见 :h quote_ 。
    mongoose
        6
    mongoose  
       41 天前   ❤️ 1
    jqtmviyu
        7
    jqtmviyu  
       41 天前   ❤️ 1
    修改.vimrc

    " 禁止 c 、cc 、C 、s 、S 、d 、dd 、D 、x 和 X 命令写入寄存器
    nnoremap c "_c
    nnoremap cc "_cc
    nnoremap C "_C
    nnoremap s "_s
    nnoremap S "_S
    nnoremap d "_d
    nnoremap dd "_dd
    nnoremap D "_D
    nnoremap x "_x
    nnoremap X "_X
    MHPSY
        8
    MHPSY  
    OP
       41 天前
    感谢回复,有用的回复全部感谢了,最终我应该会选择给每一个命令单独搞一个寄存器,x 就给到 x 寄存器里面,d 就给到 d 寄存器里面

    感觉这个方法很棒
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2440 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 03:41 · PVG 11:41 · LAX 20:41 · JFK 23:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.