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

VIM 如何入门

  •  
  •   Konys · 13 天前 · 5974 次点击

    最近在学习 VIM,感觉各种不习惯,问一下各位老哥,大家是如何熟练使用 VIM 的?

    101 条回复    2022-06-26 11:31:14 +08:00
    1  2  
    smallyu
        1
    smallyu  
       13 天前   ❤️ 15
    感觉知道 i 和 wq 就行了,也不用太熟练……
    gouflv
        2
    gouflv  
       13 天前 via iPhone
    给代码编辑器装上 vim 插件,三周以后自然就会了
    jdhao
        3
    jdhao  
       13 天前 via Android
    循序渐进,急不得,另外建议入坑 neovim
    sherlockholmes7
        4
    sherlockholmes7  
       13 天前   ❤️ 1
    i, x, yy, p, w, b,:w, :wq ,j, k, h, l ,入门这几个就能用起来了,后面再按照需求网上查
    Suddoo
        5
    Suddoo  
       13 天前 via iPhone
    不用熟练,够用就行,会退出就差不多了,99.97%的情况下,你都是使用图形界面的文本编辑器
    deplivesb
        6
    deplivesb  
       13 天前
    多用啊,
    不用靠啥熟练?
    IsmeOvo
        7
    IsmeOvo  
       13 天前   ❤️ 4
    我认为可以先看看 VIM 能够做那些事情 (看别人是怎么用的, 用来做了哪些事情), 然后自己在有方向的看看.

    推荐一下之前的入坑视频: https://www.bilibili.com/video/BV164411P7tw
    emonc
        8
    emonc  
       13 天前   ❤️ 1
    raysonx
        9
    raysonx  
       13 天前
    我觉得会一些基本操作,能编辑一些配置文件之类的就够了。至于用 vim 写代码甚至改装成 IDE 我觉得得不偿失。
    MEIyiyi
        10
    MEIyiyi  
       13 天前
    用着用着就会 了
    chendy
        11
    chendy  
       13 天前
    换一把小一点的键盘( esc 离得近(虽然把 caps lock 改成了 esc 但是从来没用过
    xiangchen2011
        12
    xiangchen2011  
       13 天前
    学着学着还是 IDE 算了
    Leviathann
        13
    Leviathann  
       13 天前   ❤️ 3
    先让自己讨厌把手离开主键盘区
    20015jjw
        14
    20015jjw  
       13 天前 via iPhone
    vim adventures
    cxbig
        15
    cxbig  
       13 天前
    强迫自己在各种场合用它,用着用着就熟悉了。
    Noicdi
        16
    Noicdi  
       13 天前 via iPhone
    我觉得没必要把 vim 改装成 ide ,在 CLI 下会基本操作就行,去 ide 装 vim 插件。我感觉 vim 的模式才是精髓
    clf
        17
    clf  
       13 天前
    当作命令行界面的文本编辑器即可。

    大部分时候基本用不到。我一般也都是外面编辑好后复制,粘贴到 vim 里。
    imycc
        18
    imycc  
       13 天前
    不拿它当做主力编辑器的话,最简单的入门就是知道 normal 模式、编辑模式,怎么进入,怎么退出。再往后可以学一学搜索、替换、块模式等等。
    单论编辑器这个软件来说,vim 已经有点落后了,特别是入门配置容易走弯路,再往后折腾插件系统、语言支持等等,花出去的时间,可能比学习 vim 编辑模式更费时。
    所以轻度使用的话,我比较推荐用 vscode 或者其他 IDE 的 vim 插件熟悉一阵,vim 只需要做到能熟练地修改配置文件就够了。
    juggtt213
        19
    juggtt213  
       13 天前 via iPhone
    感觉可以先试试把 esc 映射到一个更好按的键(比如大写锁定键)
    kkkiio
        20
    kkkiio  
       13 天前   ❤️ 2
    个人经验
    - 兜底:在 IDE 里用 VIM 插件(例如 vscode 或 IDEA ),初期有些场景不知道怎么用随时 turn off vim mode
    - 学习优点:《 Practical Vim 》( Vim 实用技巧),是以短小精悍的 tips 方式组织的书
    - 主动解决痛点:在意按键次数就看看 EasyMotion, TextObject 这些东西
    jdhao
        21
    jdhao  
       13 天前   ❤️ 2
    @jdhao nvim 配置好的话,个人认为不输 ide ,当然要学习的东西也很多啊,看你自己的取舍了,是时候展示一下 nvim 配置的天花板了 🐶 https://github.com/jdhao/nvim-config

    另外自荐一下之前写的 nvim 入坑 3 年纪: https://jdhao.github.io/2021/12/31/using_nvim_after_three_years/
    halomine
        22
    halomine  
       13 天前
    我把 caps 和左 ctrl 调换了,在 ide 中装 vim 插件,强迫使用 vim 写代码,现在不用 vim 反而不习惯了,纯 vim 还是用不惯。
    zhuangzhuang1988
        23
    zhuangzhuang1988  
       13 天前
    放弃。
    sudoy
        24
    sudoy  
       13 天前
    哈哈 确实像一楼说的,平时我也只用到 vim i esc wq 还有就是方向键,偶尔用 q!
    Tink
        25
    Tink  
       13 天前 via Android
    方向键一把梭
    knightdf
        26
    knightdf  
       13 天前
    @juggtt213 用 Ctrl+[不用 ESC
    anmu
        27
    anmu  
       13 天前
    没有需求不要创造需求 XD
    dorothyREN
        28
    dorothyREN  
       13 天前
    @sudoy #24 wq 可以用 shift zz 替换
    Buges
        29
    Buges  
       13 天前 via Android   ❤️ 1
    终端输入 vimtutor
    rpish
        30
    rpish  
       13 天前 via Android
    op 不是 Java 开发吗? IDEA 一把梭不就好了。
    为什么要学 vim ?
    ZhaoHongXuan
        31
    ZhaoHongXuan  
       13 天前
    如果使用 jetbrains IDE 的话可以直接看我之前录的一个 ideavim 插件的教程,B 站链接🔗: https://www.bilibili.com/video/BV1p541157Va
    Sainnhepark
        32
    Sainnhepark  
       13 天前 via Android
    $ vimtutor zh
    JackCh3ng
        33
    JackCh3ng  
       13 天前   ❤️ 4
    随便网上找一张快捷键图看两天就会了啊,应付日常使用就是一个记快捷键的过程啊。
    :w -> 保存
    :q -> 退出
    kjhl -> 上下左右
    i -> 插入
    到这里能基本生存了。
    再找补一些其他基本功能:
    u -> 撤销
    Ctrl + R -> 撤销撤销
    Windows 的 Ctrl + C 变成了 Ctrl + Insert
    Windows 的 Ctrl + V 变成了 Shift + Insert
    v -> 选择
    y -> 复制
    x -> 剪切
    d -> 删除
    p -> 粘贴
    / -> 搜索字符串
    n -> 搜索结果的下一位置
    N -> 搜索结果的上一位置
    :s -> 替换字符串(比较高阶)
    到这里,基本的编辑器功能都具备了吧,可能有漏的。
    再开始就是 vim 的进阶了,一般编辑器不一定具备。
    1.嫌 hjkl 移动太慢?试试下面的指令,让你迅捷如飞。
    0 、$、w 、b 、e 、W 、B 、E 、H 、M 、L 、f 、F 、t 、T
    2.嫌 hjkl 翻页太 low ?试试这些指令,眼花缭绕。
    :linenum 、gg 、G 、Ctrl+D 、Ctrl+U 、Ctrl+E 、Ctrl+Y
    3.嫌 i 插入不够灵活?试试这些指令,想插哪插哪。
    o 、O 、I 、a 、A
    4.一些常用的快捷键。
    dd -> 删除当前行
    D -> 删到行尾
    cc -> 更改当前整行(删了整行重写)
    C -> 删到行尾重写
    yy -> 复制当前行
    5.一些高阶魔法快捷键。
    va( -> 选中括号里面的内容,包含括号,a 换成 i 则不包含括号,除了小括号还可以用于其他配对的符号,像引号、花括号等等。
    << -> 向左缩进
    ma -> 将光标位置设置为书签 a
    `a -> 到达书签 a
    qa -> 录制宏,宏存放到 a 中,再次按下 q 取消录制
    @a -> 使用存放在 a 中的宏
    [email protected] -> 把存放在 a 中的宏执行 11 次
    ByteCat
        34
    ByteCat  
       13 天前
    vscode 里搜一个 vim 教程扩展,跟着学就好了
    abc8678
        35
    abc8678  
       13 天前 via Android
    我也只用 i 和 wq 和 q 感叹号。可最近一个问题,有些电脑上,方向键变成了 ABCD 字母,网上一搜,都是说卸载自带 vim ,然后 apt 装一个。难道只有这个办法了吗?如果没有 U 盘和网络之类的外援,岂不是无解了?不知道能不能调
    liuw666
        36
    liuw666  
       13 天前 via iPhone   ❤️ 1
    不用就忘了
    Aaron01
        37
    Aaron01  
       13 天前 via Android
    输入 vim tutor
    yazoox
        38
    yazoox  
       13 天前
    突然发现,vim 不仅学习的成本高,配置的成本也很高啊~
    咋就一直没有一个一键安装的脚本,全搞定呢?
    yuhangch
        39
    yuhangch  
       13 天前
    @yazoox 也有,像 lunarvim 、spacevim ,但个人感觉也不适合新手,定位问题人估计麻了
    MengiNo
        40
    MengiNo  
       13 天前 via iPhone
    至今不会选中多行缩进 … v 完 抹到多行之后感觉什么操作都不灵光了
    znwindy
        41
    znwindy  
       13 天前
    感觉这个上手 vim 就来倒腾配置、美化等等,有点本末倒置
    chucongqing
        42
    chucongqing  
       13 天前
    vim 学习完了之后还真能一键安装,并配置。就是需要学习🤣
    zhoudaiyu
        43
    zhoudaiyu  
       13 天前
    gg dG :!x
    ffkjjj
        44
    ffkjjj  
       13 天前
    @MengiNo #40 要是平常的 v, 一般多行的情况,也只能进行复制,删除,缩进,格式化。如果用的是 ctrl+v 块选择的话,可以用 I, A 进行多行编辑。
    FGW
        45
    FGW  
       13 天前
    推荐 [L2-PS][SCT FUSE Valgrind] Fix SCT FUSE Valgrind issues detected by SCT cb8247B_SrsBmbasedCellSpecificCSIRS
    FGW
        46
    FGW  
       13 天前
    推荐 Vim 实用技术 这本书,看这个入的门。
    yuancoder
        47
    yuancoder  
       13 天前
    先用起来
    brucmao
        48
    brucmao  
       13 天前
    0x2048
        49
    0x2048  
       13 天前
    这个视频教程很详细

    &list=PLBd8JGCAcUAH56L2CYF7SmWJYKwHQYUDI
    MartinWu
        50
    MartinWu  
       13 天前
    用起来,遇到想要的需求,再搜索搜索。那些快捷功能都是用着用着,就记住了。肌肉记忆。
    churchill
        51
    churchill  
       13 天前
    我其实不太理解 IDE 装 vim 插件的操作
    vim 的文字编辑效率真的比鼠标配键盘快吗
    pepesii
        52
    pepesii  
       13 天前
    我是看左耳朵耗子的文章学习的
    https://coolshell.cn/articles/5426.html
    v2410117
        53
    v2410117  
       13 天前
    难道不是先买一把 HHKB ?
    zhiyu1998
        54
    zhiyu1998  
       13 天前
    vscode 有个插件:Learn Vim
    keepeye
        55
    keepeye  
       13 天前
    反正俺只是用来服务器上临时编辑,不用来写代码,会几个常用指令就可以了:

    :wq!
    :q!
    :n,md :n,my 删除 /复制范围内的行
    dd 删除当前行
    i 进入编辑模式
    o 进入编辑模式并另起一行
    yy 复制当前行
    p 粘贴
    gg 到首行 shift+g 到最后一行
    shift+^ 到行首 shift+$ 到行尾
    :set nu :set nonu 显示 /隐藏 行号
    /keyword 搜索关键词,按回车,按 n 跳转到下一个
    /keyword/replacer/g 全局 替换关键词


    大概就这些指令吧 别的暂时想不到
    bruce0
        56
    bruce0  
       13 天前
    我平时用到 vim 的地方一般就是连上远程改一些小的东西, 比如改一下配置之类的,所以对我来说
    会用 'i, a' 插入
    / 搜索
    %s 替换
    v 开始标记
    y 复制
    x 剪切
    p 粘贴
    g G 文件开始 文件结束
    u 撤回 Ctrl+R 重做
    :w 保存
    :q 退出

    会这些基本就够了 剩下的 遇到不会的现搜
    yunyuyuan
        57
    yunyuyuan  
       13 天前
    我前几个月刚上手 vscode + vim ,只需要把鼠标线拔了就行,一周从入门到熟练,常用的操作就那几个。
    Liam1997
        58
    Liam1997  
       13 天前
    只要会基础的就行,难的我也不太会。。。
    j k l

    gg p y v a i o

    w b 什么的
    iapplebear
        59
    iapplebear  
       13 天前
    @JackCh3ng 懒人就喜欢层主这样的,收了
    andyJado
        60
    andyJado  
       13 天前
    不眠不休打 3000 小时 dota, 右手一碰鼠标就疼, 自然就会了. 还有 hammerspoon 这些,yumyumyum
    newmlp
        61
    newmlp  
       13 天前
    这种老古董没必要入门
    AmosAlbert
        62
    AmosAlbert  
       13 天前
    @smallyu 真实
    theohateonion
        63
    theohateonion  
       13 天前
    无他 先苦后甜
    mnsw
        64
    mnsw  
       12 天前
    ShibanuDrill
        65
    ShibanuDrill  
       12 天前
    英语没问题的话,推荐 vscode 上的 learn vim 插件,跟着学一两周就可以熟练使用 vim 了
    cyjme
        66
    cyjme  
       12 天前
    我的 vim 使用路径

    1.idea/vscode 插件,找个 vim cheat sheet 打印下来。学会插入、换行、保存、替换 之类的常见操作。
    2.更复杂的操作,比如数千、录制宏之类的,基本脱离鼠标
    3.spacevim / lunarvim 这种集成好各种插件的 "IDE",替代 vscode ,偶尔翻 《 vim 使用指南》或者搜索寻找提高效率的技巧
    4.添加修改插件,对 lunarvim 进行修改。
    5.从零折腾自己的 vim 环境。

    1 和 2 我用了两年时间,主要是懒,没有继续深入的动力,所以进度就慢。
    现在在第 4 步加上一些定制,基本上也有第 5 步的能力,但是暂时不想继续折腾了。

    现在回头看,我强烈建议缩短学习过程,1 和 2 的步骤用 1~2 周时间去刻意练习。快速进入 步骤 3 ,这个时候就可以完全抛弃 vscode 或者 idea 了。

    重点:强烈建议去刻意练习 vim ,鼠标丢一边,拔掉方向键。更早学会,就能更早的提高生产力。
    liyhu
        68
    liyhu  
       12 天前
    这玩意还要刻意学嘛?
    james122333
        69
    james122333  
       12 天前
    摸阿 vim 学习曲线是先陡后平 不要期待九阴真经速成了 除非你是类 unix 系统拥护者 很可能速成 观念与哲学算连贯
    JackCh3ng
        70
    JackCh3ng  
       12 天前
    两张 vim 手册图片。可以把图片保存到手机上或收藏起来,不会的时候看一下,很快就会了。
    推荐: https://imgs.developpaper.com/imgs/201906260940.jpg
    https://imgs.developpaper.com/imgs/20190626094102.jpg
    不过极个别指令可能一些 vim 插件不支持。
    JackCh3ng
        71
    JackCh3ng  
       12 天前
    @churchill 英语环境下,那不是快一点点,熟练使用 vim 之后,几乎就离不开了。
    gowk
        72
    gowk  
       12 天前   ❤️ 5
    itgoyo
        73
    itgoyo  
       12 天前
    刻意练习
    zkaip
        74
    zkaip  
       12 天前
    用的多就会了,否则迟早都忘了……

    一般来说,只要会简单的编辑就行,到时候现查都来得及……
    sobev
        75
    sobev  
       12 天前
    youtube 上的 missingsemester 有公开课程哦
    huajieyu
        76
    huajieyu  
       12 天前
    @jdhao 能否告知一下你英语是怎么学习的,怎么达到可以熟练地写英文博客的
    tonzeng
        77
    tonzeng  
       12 天前
    我記得有一張圖

    (我經常在客戶現場看到,現在想起來好像也挺好用的)
    (還有一個 vim 的鼠標墊)
    stoluoyu
        78
    stoluoyu  
       12 天前
    推荐一本书《 vim 实用指南》,微信读书应该可以免费看。
    QHKZ
        79
    QHKZ  
       12 天前
    学会一楼的三个键就算入门了,想进阶可以现查
    推荐一个 Vim CheatSheet, Make Vim not suck Out of the Box: http://michael.peopleofhonoronly.com/vim/
    wellerman
        80
    wellerman  
       12 天前
    建议学 emacs ,然后配置文件用 vim 去编辑。等你把 emacs 配置到 IDE 的程度,这时 vim 也学会了。
    NeezerGu
        81
    NeezerGu  
       12 天前
    基础的命令了解了之后先用。
    用多了就会反思,我 xxx 按键是不是经常重复,能否有更快捷的方案

    然后要么查官方文档 http://vimcdoc.sourceforge.net/doc/help.html#reference_toc
    要么直接百度 /谷歌相应的内容

    个人不推荐刷书什么的,讲一堆,但你用不到,还是会忘了(当然也有好处,就是起码让你知道有什么功能,哪怕忘了也能有印象,只是个人感觉时间上不值得
    dbz2501
        82
    dbz2501  
       12 天前
    我是直接用 vim 自带的 vimtutor 学的,学会最基础 vim 逻辑很快就能上手了,日常使用中遇到问题直接 Google 相应的内容。对文字编辑来说,不带插件的 vim 已经足够应付 99%的情况了,无非是有些操作相比带插件效率会低(比如 surround )。愿意折腾就再去进一步研究 vim 的配置。
    jdhao
        83
    jdhao  
       12 天前 via Android
    @huajieyu 多写就会了
    Nich0la5
        84
    Nich0la5  
       12 天前
    别为用而用啊
    darksword21
        85
    darksword21  
       12 天前 via iPhone
    使用 emacs ,安装 evil
    gnawll
        86
    gnawll  
       12 天前 via iPhone
    skmO
        87
    skmO  
       12 天前
    我在 spacemacs 里学的一些基本操作
    andy2415
        88
    andy2415  
       12 天前
    @MengiNo #40
    你是说这个吗?
    vnoremap < <gv
    vnoremap > >gv
    lizytalk
        89
    lizytalk  
       12 天前
    学习一下基础的命令,i, a, o, h, j, k, l, :, /, f, w, b, s, c, v, x 这些,然后学习一下数字加命令的组合的使用方法,强迫自己用两天就会了。之后再慢慢学一些更高级的用法
    lizytalk
        90
    lizytalk  
       12 天前
    我觉得学习 vim 并没有打游戏学习各种组合键难多少😂难点在于你可以选择不用 vim 而是用普通的编辑器,所以除非不得不用,否则很容易上手两分钟就放弃。
    qooweds
        91
    qooweds  
       12 天前
    推荐左耳朵耗子的入门文章,只学前 2 级别就可以入门了,个人觉得能涵盖工作所需了
    https://coolshell.cn/articles/5426.html
    haochen2
        92
    haochen2  
       12 天前
    @smallyu a A dd yy x g G u ctrl+R 这些差不多了
    Samuelcc
        93
    Samuelcc  
       12 天前 via Android
    @churchill 不能说快,只能说秒杀。。
    vagranth
        94
    vagranth  
       12 天前 via Android
    不需要那么熟悉吧。
    我一般也就是连到服务器上临时改个配置文件,只需要知道必需的 esc ,i ,wq 这些就可以了
    hanxiV2EX
        95
    hanxiV2EX  
       12 天前 via Android
    真的是用着用着就会了,而且会产生依赖,入门不装插件建议 vim ,装插件的话建议转 neovim ,我最近的配置 https://github.com/hanxi/nvim-config
    brucewar
        96
    brucewar  
       12 天前
    常用的写到便签字,贴屏幕边上,没事就看看
    Wooork
        97
    Wooork  
       12 天前
    基础的就不说了,随便找个 cheatsheet 试试就好。

    如果想深入炫技的话,可以试试 http://www.vimgolf.com/ 这个网站,用最少的按键完成一些题目要求的输出,非常有意思,譬如当前的文本里只有

    a

    这一个字符,如何用最少的按键输出

    abcdefghijklmnopqrstuvwxyz
    bcdefghijklmnopqrstuvwxyza
    cdefghijklmnopqrstuvwxyzab
    defghijklmnopqrstuvwxyzabc
    efghijklmnopqrstuvwxyzabcd
    fghijklmnopqrstuvwxyzabcde
    ghijklmnopqrstuvwxyzabcdef
    hijklmnopqrstuvwxyzabcdefg
    ijklmnopqrstuvwxyzabcdefgh
    jklmnopqrstuvwxyzabcdefghi
    klmnopqrstuvwxyzabcdefghij
    lmnopqrstuvwxyzabcdefghijk
    mnopqrstuvwxyzabcdefghijkl
    nopqrstuvwxyzabcdefghijklm
    opqrstuvwxyzabcdefghijklmn
    pqrstuvwxyzabcdefghijklmno
    qrstuvwxyzabcdefghijklmnop
    rstuvwxyzabcdefghijklmnopq
    stuvwxyzabcdefghijklmnopqr
    tuvwxyzabcdefghijklmnopqrs
    uvwxyzabcdefghijklmnopqrst
    vwxyzabcdefghijklmnopqrstu
    wxyzabcdefghijklmnopqrstuv
    xyzabcdefghijklmnopqrstuvw
    yzabcdefghijklmnopqrstuvwx
    zabcdefghijklmnopqrstuvwxy

    top 最少的按键只用了 25 个!

    题目链接是 http://www.vimgolf.com/challenges/5ebe8a63d8085e000c2f5bd5 有兴趣的大佬们也可以试试~
    lancelock
        98
    lancelock  
       12 天前
    我 vim 用了五六年了,自己觉得还是入门水平,其实已经够了,我感觉已经满足了我的诉求,就是所有环境使用统一的编辑方式,不用因为换了一个编辑器 ide 就得学习一套新的快捷键。
    我一般是 idea 装 vim 插件,vim 和 neovim 也配好了环境,但是一般都用来编辑点简单文本,写代码还是用 ide
    roundRobin
        99
    roundRobin  
       11 天前
    我的 vim 只用来移动光标
    aheadlead
        100
    aheadlead  
       10 天前 via iPhone   ❤️ 1
    12 年 vim 用户建议别投入时间在学 vim 上
    1  2  
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4263 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 03:40 · PVG 11:40 · LAX 20:40 · JFK 23:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.