Skip to main content

Vim的基本入门

· 5 min read
Zeffon Wu

工善其事,必利其器。Linux 系统中常见的编辑技巧,vim 必不可少。

前言

工善其事,必利其器。Linux 系统中常见的编辑技巧,vim 必不可少。 Vim 是从vi发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。Vim 的第一个版本由布莱姆·米勒在ADM-3A终端上开发的,于 1991 年发布。

vim.png

使用

本篇学习于慕课网DevOps24h讲师的优雅玩转Vim-课程

移动、跳转和缩进

  1. 光标移动按键效果
    h/j/k/l左/下/上/右
    ^/0移动到行首/包括缩进空格
    $移动到行尾
  2. 单词和字符串移动按键效果
    w/W正向移动到下一个单词开头
    b/B反向移动到下一个单词开头
    e/E正向移动下一个单词行尾
    ge反向移动下一个单词行尾
  3. 跳转按键效果
    Ctrl-f/F下一页
    Ctrl-b/B上一页
    Ctrl-d/u向下/上翻半页
    gg跳转到首行
    <:Line_Number>gg/G跳转到指定行
    {g} + Ctrl-g/G跳转到最后一行
  4. 缩进按键效果
    >> / :>右缩进
    m,n> / :m>(n-m+1)m 到 n 行缩进
    m>n 等价于命令:m,m+n-1>m 行开始共 n 行缩进一次

删除、复制和粘贴

  1. 对比windowVim不同处
    cutdelete和剪切相同,而不是直接删除
    copyyank等同于复制由于 c 用于修改(change)被迫选了 yank
    pasteput粘贴完全相同
  2. 基本操作按键效果
    d = delete = cut剪切
    dd剪切当前光标整行
    y = yank ≈ copy类似于复制
    p/P = put ≈ paste粘贴到光标后/光标前
    u = undo撤销之前操作
    Ctrl-r = redo重做/恢复之前操作
    yw复制当前光标单词
    y2w复制正向两个单词
    yy 类似于 dd复制当前光标整行
  3. 组合删除按键效果
    x/X删除光标下/前单个字符
    dw(d=delete, w=word)删除一单词(必须在词首)
    d{hjkl}删除到左下上右一个操作前的字符
    d$=D删除光标到行尾的字符
    d^删除光标到行首的字符
    dd删除当前整行
    {n}dd向下删除 n 行(包括当前行)
    5dw删除正向单词 5 次
    3w正向移动单词 3 次
    D3w正向删除 3w 动作
    2d3w正向删除 3w 动作 2 次

修改、查找和替换

  1. 插入按键效果
    Shift+i/A插入模式并移动到行首/行尾
    a/i光标后/前插入
    {n}O/o行前/行后插入 n 次
    {n}+i插入模式重复 n 次
  2. 转换按键效果
    ~单个字符大小写转换
    g ~ w单词大小写转换
    g ~ $ / g ~ ~整行大小写转换
    gU/uw单词转换成大/小写
  3. 查找按键效果
    F/f{char}反向/正向查找单个字符
    t{char}查找字符前一个字符
    dt{char} / df{space}删除光标到查找字符间字符
    /{char}命令行查找
  4. 替换按键效果
    Shift + r/R替换模式
    r单个字符替换
    cw修改单个单词
    c$ / C修改光标之后行内内容
    s/going/rolling/g当前行所有 going 替换成 rolling
    %s/going/rolling/g%匹配所有范围