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

求助[vim]:有什么快捷键可以自动的在句尾添加分号;

  •  
  •   charlesliu · 2021-08-26 14:18:05 +08:00 · 2636 次点击
    这是一个创建于 1187 天前的主题,其中的信息可能已经有所发展或是发生改变。

    A;ESC还是不太方便, google 了,但是由于是刚学 vim,还不太懂,就来这里向老哥先讨个答案,回头再慢慢了解

    13 条回复    2022-06-12 21:43:52 +08:00
    byzf
        1
    byzf  
       2021-08-26 14:28:03 +08:00
    句号
    korokke
        2
    korokke  
       2021-08-26 14:29:27 +08:00   ❤️ 2
    加到.vimrc 里面,可以在句尾添加分号同时光标位置不变。再怎么样也要两个键,只用一个键的话没啥好办法,分号本身有自己的作用。
    nnoremap <Leader>; m'A;<ESC>`'
    Goooogle
        3
    Goooogle  
       2021-08-26 15:07:17 +08:00   ❤️ 2
    #2 2 楼给是的正确的姿势,我稍微解释一下吧
    这一行是在 normal mode 下,将 "<leader>;" 也就是 ",;" 映射成为 后面那堆按键。
    其中 "m'" 和 "`'"分别是将当前位置标记为 "'",然后在执行完对应的操作后返回该位置。

    上面提到的所有信息都可以在<<Learn Vimscript the Hard Way>>中找到,可以作为进阶资料
    andy2415
        4
    andy2415  
       2021-08-26 15:09:43 +08:00
    只有一次这种操作: A;ESC
    重复几次: .
    重复很多次: 宏录制 q
    经常需要: nnoremap
    2i2Re2PLMaDnghL
        5
    2i2Re2PLMaDnghL  
       2021-08-26 15:31:18 +08:00
    如果要为连续的若干行都作此处理,可以 <c-v> 块状选中多行再 A;<ESC>,这样的话就是多行都这么处理。
    或者<s-v> 选中以后 :s/$/;/ (按 : 后会自动补 '<,'> 表示选中范围,在那之后继续打 s 就成)
    stimw
        6
    stimw  
       2021-08-26 15:37:15 +08:00 via Android   ❤️ 1
    可以看看 practical vim,中文书是 vim 实用技巧,可以对 vim 有个比较详细的了解。

    之后遇到问题就可以自己摸索了。折腾 neovim 配置之类的。

    现在不太想折腾了直接 vscode vim 和 ideavim 完事...
    nickchenyx
        7
    nickchenyx  
       2021-08-26 16:45:14 +08:00   ❤️ 1
    @korokke nnoremap <leader>; A;<ESC>`^ 这样比较好,不会使用标记字段,`^ 会跳到上一次 insert mode 离开的地方
    namelosw
        8
    namelosw  
       2021-08-26 16:52:56 +08:00
    A ; 还不方便?一般 VIM 的操作都要三个键,这两个都已经算比较方便的了。

    如果你说要给多行加分号不方便,靠 . 就可以:
    1. A ; Esc 先加上
    2. j . j . j . j . j . 循环然后就把下面几行都加上了
    Leviathann
        9
    Leviathann  
       2021-08-26 17:17:35 +08:00 via iPhone
    写 ts/js 的话一般是靠 eslint prettier 自动补上
    配置一下 run on save 就行
    liangch
        10
    liangch  
       2021-08-26 19:51:51 +08:00
    如果是新写代码,都自己句尾敲的。
    DrakeXiang
        11
    DrakeXiang  
       2021-08-27 00:07:43 +08:00
    粗暴批量的话用搜索替换最快,不过要根据需求写好正则,如果需要词法解析的话可能就不行
    ruidoBlanco
        12
    ruidoBlanco  
       2021-08-27 08:27:49 +08:00
    qaA;<ESC>jq999@a
    perrot
        13
    perrot  
       2022-06-12 21:43:52 +08:00
    :%s/$/;/g
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1009 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:53 · PVG 05:53 · LAX 13:53 · JFK 16:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.