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

来补课,教你怎么省下插件,用 vim 自带的功能完成大部分的事情

  •  
  •   ChrisFreeMan · 36 天前 · 2622 次点击
    这是一个创建于 36 天前的主题,其中的信息可能已经有所发展或是发生改变。
    34 条回复    2021-09-13 18:00:17 +08:00
    ChrisFreeMan
        1
    ChrisFreeMan   36 天前
    fy
        2
    fy   36 天前
    2021 年了,别再 vim 了吧
    jdhao
        3
    jdhao   36 天前
    @ChrisFreeMan 之前看过,有点用,不过自带的功能,有时候易用性上面还是差点,所以我选择用插件增强。。
    ChrisFreeMan
        4
    ChrisFreeMan   36 天前
    @fy come man, this is so fun and so cool
    ChrisFreeMan
        5
    ChrisFreeMan   36 天前
    @jdhao 那个 buffer 管理还挺不错的第一次知道,还有 find,还有 error list
    FrankFang128
        6
    FrankFang128   36 天前
    vim 永远也做不好的事情:格式化一个同时含有 HTML CSS JS 代码的文件
    ChrisFreeMan
        7
    ChrisFreeMan   36 天前
    @FrankFang128 😂放过 vim 吧,让它干一些比较纯粹的事情
    ChrisFreeMan
        8
    ChrisFreeMan   36 天前
    @FrankFang128 不过话说应该有一些 IDE 插件能够做到,比如说 coc.nvim
    chendy
        9
    chendy   36 天前
    ideavim 路过。。。
    感觉自己的听力水平不支持这个视频。。。
    xarthur
        10
    xarthur   36 天前 via iPhone
    @fy 2021 年当然要继续用 Vim (
    xarthur
        11
    xarthur   36 天前 via iPhone
    @FrankFang128 可以啊,Neovim 现在都原生支持 LSP 和 Treesitter 了。
    ChrisFreeMan
        12
    ChrisFreeMan   36 天前
    @chendy 听个大概就差不多了,结合他的操作和一些专有名词,就能懂个大概了
    levelworm
        13
    levelworm   36 天前
    习惯用 vscode 等编辑器,vim 还是留给儿子以后学吧。。。
    ChrisFreeMan
        14
    ChrisFreeMan   36 天前
    @levelworm 🤪尝试一下教你儿子不好吗,做一个酷老爹
    FrankFang128
        15
    FrankFang128   36 天前
    @xarthur neovim 还好,原版 vim 我已经失望了
    levelworm
        16
    levelworm   36 天前
    @ChrisFreeMan 我会一点,就是最基本的剪切拷贝粘贴这些,涉及到语言的高亮神马的我就弃疗了。
    ChrisFreeMan
        17
    ChrisFreeMan   36 天前   ❤️ 1
    @levelworm 给你推荐一个开箱即用号称终极 vim 配置的 GitHub 库,等你一点一点读懂他的配置后(他组织的挺好的,易读)就可以自己裁剪不需要的东西,最终走向自己定制。https://github.com/amix/vimrc
    frankyzf
        18
    frankyzf   36 天前
    @levelworm vim 和 vscode 不冲突,vim 是一种输入方式而不只是编辑器,几乎所有的 ide 都有 vim plugin,浏览器也有相应的 plugin 。
    levelworm
        19
    levelworm   36 天前
    @frankyzf 的确。其实我还挺喜欢 vim 这个输入风格的,他有点逻辑性,不像其他编辑器,基本上就是硬背或者用熟了肌肉反应。
    kkocdko
        20
    kkocdko   36 天前 via Android
    感觉 vim 没必要深入学,只要大概熟练,能在自己编译的 linux 或者其他纯命令行环境里用就行了
    levelworm
        21
    levelworm   36 天前
    @ChrisFreeMan 多谢。其实我有点比较好奇,vim 是否支持对语义上的结构进行编辑?我可能说的不专业,所谓语义上的意思,我举个例子,比如说很多语言都有 block 这个概念,那么 vim 是否支持比如说一组快捷键选中 /删除 /拷贝一个 block ?
    nalzok
        22
    nalzok   36 天前
    @frankyzf 确实,vim 最大的特色是 modal editing,类似的编辑器还有 kakoune
    agagega
        23
    agagega   36 天前 via iPhone
    @levelworm
    Text Objects

    我从 17 年开始自己弄了一套基本的 Vim 配置,四年来没怎么动过,跨越的笔记本和服务器加起来十多二十台了吧,很舒服,这个投入产出比很高。而且 Vim 移植性比 Emacs 强多了,很多老点的系统里都能找到 Vim 8,然而 Emacs 版本却不够装常见的 Doom 或者 Spacemacs 之类
    ChrisFreeMan
        24
    ChrisFreeMan   36 天前
    @levelworm 你说的块具体是啥不清楚但是 vim 有超级多的方式去选中你要的区域,比如( )“” { } [ ] ` ` ' ' 这些内容可以在选中情况下:shift v, i 加上需要进入的块里面的符号,比如要进入{ }内,就 shift v i { 或者 }, 你就会在 VISUAL 模式下选中{ }中的所有内容,类似这些,魔法操作还有很多,要自己去试试就会发现很有意思,有点飞的感觉
    ChrisFreeMan
        25
    ChrisFreeMan   36 天前
    @levelworm 大半夜迷糊没有讲清楚,vim 如果没有 IDE 插件就是一个纯文本编辑器,但是本身的编辑功能非常丰富,比如跳转,w 键可以按单词跳转,f + 你需要跳转的单词开头可以飞过去,[[ ]]可以向上段落翻或者向下段落翻,esc 退出编辑模式后会进入一个 normal 模式,这个情况下,按 v 进入一个选择模式,你可以按上下左右键移动光标选择需要选中的内容,有点类似鼠标拖拽,或者 shit + v 键直接选中整行,接着提到上面没有讲清楚的,就是你需要将光标移动到你要选中的块中比如你要选中{ some code }的 { }中的所有代码,先按 f + { 将光标移动到 { 上,这个时候 shift + v + i + { 就会选中里面的所有内容,这些都是很基本的编辑技巧,你需要花点时间都了解一下,按你需要的功能去记就好了,都是有规律可循的,比如 w 按单词跳转,w 记为 word(单词),v 为 visual (视觉选中),shit + v + i + { 记为选中整行进入 (inside) { 内
    ykk
        26
    ykk   35 天前
    挺好的,我用 gedit + pycharm
    Dragonphy
        27
    Dragonphy   35 天前
    我就用 VIM 修改一些配置文件,其余的都是 VS Code 了
    zhea55
        28
    zhea55   35 天前
    最近安装了一套 lunar vim,感觉比几年前的 vim 确实好了太多。几年前,每一个插件都有快捷键,都需要配置,并且需要记忆和学习。目前的 lunar vim 只要按下空格,后面的功能可以一步步的提示下去,几乎不需要去记忆快捷键位了。

    我对 neovim 的 treesitter 非常感兴趣。这个东西提供的代码高亮,确实是令人影响深刻。

    不过目前,在对代码格式化后,或者写代码过程中出现了语法错误(括号没关闭)会导致 treesitter 的高亮出现一些问题。



    我感觉 neovim 的生态对前端项目的支持,还是有些落后,虽然说有 LSP,但是提示的方法,都比较死板。

    不像 vscode 那样,基本提示的东西都是你可以马上按回车确认的代码。

    neovim 的提示需要上下选很久。



    另外,我曾经很痴迷,vim 的各种命令操作。但是真实去写代码的时候发现,还是 sublime 的那套快捷键,高效,速度快。

    就说项目内搜索代码,ctrl+shift+f 然后输入关键字,按下回车就搜索完成了。

    vim 里面需要操作多少步?即使是使用目前最先进的 telescope 。它的实时预览,跟 sublime 的鼠标滚动搜索页面的内容,差距还是很大。


    再说给变量重命名。vim 需要敲多少的代码? sublime 直接选中变量,alt+f3,就改完了。


    可以说效率不在一个级别。





    目前还在观望中,基本效率开发还是 vscode,虽然我不喜欢它的性能。但是确实是生态最好的开发工具了。



    sublime 的更新节奏偏慢,而且第三方的插件龙蛇混杂,就一个 prettier 插件,落后 vscode 很多。稍微大一点的文件,vscode 能够格式化完成,虽然慢一点。sublime 的插件直接导致编辑器卡死。
    piping
        29
    piping   35 天前
    @zhea55 vim 里面找代码我用三次键盘敲击就行 <leader>gd 映射到 cscope 的查找当前光标下的单词。这个方法同样适用于 lsp 插件。你说的几个功能都是可以自己配置的,操作用两三个按键就完成了
    ChrisFreeMan
        30
    ChrisFreeMan   35 天前
    @zhea55 你说的这些个功能,算是基本功能了,vim 都有现成的,你说的项目内搜索代码 ctrlsf.vim 插件可以替代,它就是模仿的 sublimeText,还可以实时预览查找。变量全部重命名,用 coc.nvim,说白了你还是喜欢熟食,建议你去用一些开箱即用的 vim IDE 比如 SpaceVim, 又或者是基于 neovim 的 NvChad, 选择了用 vim 就要学会自己打猎,功能不会凭空跑出来,这就是为什么有些人的配置有攒了 10 年。
    JetMac
        31
    JetMac   34 天前

    再说给变量重命名。vim 需要敲多少的代码? sublime 直接选中变量,alt+f3,就改完了
    可以说效率不在一个级别。


    -----

    只能说你对 Vim 知之甚少,不要对不了解的事物轻易评价。
    jdhao
        32
    jdhao   34 天前
    @zhea55 如果用 LSP 的话,也很快啊,譬如我配置的快捷键是 <leader>rn,那我按下这三个键,然后输入新的变量名就可以了,你的认识还停留在古老时代。
    seyoatda
        33
    seyoatda   33 天前
    很多人说 VIM 没有 IDE 好用,但是本来就是配合着 IDE 用的啊。像开发 java 肯定是用 Intellij, 没人会用 Vim 开发,但是用 IDE 里的 vim 插件可以大大减少鼠标的使用率,提高效率,这不就和快捷键是一个道理。
    yuancoder
        34
    yuancoder   33 天前
    使用 vim 的好处是拿起 terminal 就能开干
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1903 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 02:27 · PVG 10:27 · LAX 19:27 · JFK 22:27
    ♥ Do have faith in what you're doing.