Vim 快速入门

Vim 快速入门

Vim (Vi IMproved) 是 Unix 上的流行编辑器 vi 的克隆版本。这个文本编辑器 是为性能和提升效率而设计的,并且在大多数基于 unix 的系统上普遍存在。 它有大量的快捷键可用来快速导航到文件的特定位置,以便进行快速编辑。

    1. Vim 导航基础
    vim <filename>   # 在 Vim 中打开 <filename>
    :q               # 退出 Vim
    :w               # 保存当前文件
    :wq              # 保存文件并退出 Vim 
    :q!              # 退出 Vim 并且不保存文件
                     # ! *强制* 执行 :q, 因此没有保存就退出 Vim
    :x               # 保存文件并且退出 Vim, 是 :wq 的简写版本
    u                # 撤销
    CTRL+R           # 重做
    h                # 左移一个字符
    j                # 下移一行
    k                # 上移一行
    l                # 右移一个字符

    # 在行内移动
    0                # 移到行首
    $                # 移到行尾
    ^                # 移到行内的第一个非空白字符处

    # 在文本中查找
    /word            # 光标之后的所有该词都高亮显示
    ?word            # 光标之前的所有该词都高亮显示
    n                # 查找后将光标移到该词的下一个出现位置
    N                # 光标移到该词的上一个出现位置
    :%s/foo/bar/g    # 将文件每一行上的所有 'foo' 都改成 'bar'
    :s/foo/bar/g     # 将当前行上的所有 'foo' 都改成 'bar'

    # 跳到字符处
    f<字符>         # 向前跳移到 <字符> 上
    t<字符>         # 向前跳移到 <字符> 的左侧

    # 例如,    
    f<               # 向前跳移到 < 上
    t<               # 向前跳移到 < 的左侧

    # 按词移动
    # 默认一个单词由字母,数字和下划线组成
    w                # 移动到下一个词首
    b                # 移动到前一个词首
    e                # 移动到下一个词尾

    # 移动的其它命令
    gg               # 移到文件顶部
    G                # 移到文件末尾
    :NUM             # 移到第 NUM 行 (NUM 是任意数字)
    H                # 移到屏幕顶部
    M                # 移到屏幕中间位置
    L                # 移到屏幕末尾
    1. 模式:
      Vim 基于 模式 这个概念。
      命令模式 - Vim 启动后就处于这个模式,用于导航和操作命令 插入模式 - 用于在你的文件中进行修改 可视模式 - 用于高亮文本并对它们进行操作 Ex 模式 - 用于跳到底部的 ‘:’ 提示行上输入命令
    i                # 在光标位置前,将 Vim 切换到插入模式
    a                # 在光标位置后,将 Vim 切换到插入模式
    v                # 将 Vim 切换到可视模式
    :                # 将 Vim 切换到 ex 模式
    <esc>            # 无论你当前处于什么模式,都返回到命令模式

    # 复制和粘贴文本
    y                # 复制所选的内容
    yy               # 复制当前行
    d                # 删除所选的内容
    dd               # 删除当前行
    p                # 在当前光标位置后粘贴复制的文本
    P                # 在当前光标位置前粘贴复制的文本
    x                # 删除当前光标位置处的字符
    1. Vim 的 ‘语法’
      Vim 可以被认为是按 ‘动词-修饰词-名词’ 格式编排的一组命令:
      动词 - 你的动作 修饰词 - 你如何执行你的动作 名词 - 你的动作所作用于的对象
      关于 ‘动词','修饰词',和 '名词’ 的几个重要例子:
    # '动词'
    d                # 删除
    c                # 修改
    y                # 复制
    v                # 可视化选择

    # '修饰词'
    i                # 内部的
    a                # 周围的
    NUM              # 数字 (NUM 是任意数字)
    f                # 查找文本并位于其上
    t                # 查找文本并停于其前面
    /                # 从光标处开始查找字符串
    ?                # 在光标前查找字符串

    # '名词'
    w                # 词
    s                # 句子
    p                # 段落
    b                # 块

    # 示例 '语句' 或命令
    d2w              # 删除 2 个词
    cis              # 修改段落内的内容
    yip              # 复制段落内的内容 (复制你所在的段落)
    ct<              # 修改直到括号开启处
                     # 对你的当前位置直到下个括号开启处的内容进行修改
    d$               # 删除直到行尾
一些快捷键和技巧
    >                # 将所选内容缩进一级
    <                # 将所选内容取消缩进一级
    :earlier 15m     # 将文档还原到 15 分钟前的状态
    :later 15m       # 逆转上述命令
    ddp              # 相邻行交换位置,先 dd 再 p
    .                # 重复之前动作

宏基本上来说就是可录制的动作。 当你开始录制宏时,它会记录你使用的 每个 动作和命令, 直到你停止录制。当调用宏时,它会将这个完全相同的动作和命令序列 再次应用于所选文本之上。

    qa               # 开始录制一个叫 'a' 的宏
    q                # 停止录制
    @a               # 重播宏
配置 ~/.vimrc

.vimrc 可用于在启动时对 Vim 进行配置。
这里是一个示例 ~/.vimrc 文件:

" 示例 ~/.vimrc
" 2017.11 

" 需要 Vim iMproved 版本
set nocompatible

" 根据文件名检测文件类型,以便能进行智能自动缩进等操作。
filetype indent plugin on

" 开启语法高亮
syntax on

" 更好的命令行补全
set wildmenu

" 除了当使用大写字母时使用大小写无关查找
set ignorecase
set smartcase

" 当新开一行时,如果没有开启文件特定的缩进规则,
" 则缩进保持与你当前行一致
set autoindent

" 在左侧显示行号
set number

" 缩进选项,根据个人偏好进行修改

" 每个 TAB 的可视空格数
set tabstop=4

" 编辑时 TAB 对应的空格数
set softtabstop=4

" 当使用缩进操作 (>> 和 <<) 时缩进的空格数
set shiftwidth=4

" 将 TAB 转换成空格
set expandtab

" 为缩进和对齐开启智能化的 TAB 和空格切换功能
set smarttab
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,809评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,189评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,290评论 0 359
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,399评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,425评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,116评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,710评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,629评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,155评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,261评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,399评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,068评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,758评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,252评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,381评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,747评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,402评论 2 358

推荐阅读更多精彩内容

  • 一、Vim 模式介绍 普通模式(Normal mode)在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。...
    Bocchi阅读 371评论 0 1
  • 1.一级目录1.1二级目录1.1.1三级目录 一、实验介绍 1.1 实验内容 本次实验将学习vim中的不同模式和一...
    粤川阅读 270评论 0 1
  • 致安恩贝月子中心全体工作人员: 作为一个大龄宝妈, 怀孕期间就有一个强烈的愿望,产后做个舒适、开心的月子,安恩...
    零极限xue阅读 760评论 0 0
  • 明天就是母亲的生日了,我的心情很激动,同时也充满烦恼,激动的是每当母亲生日来临时,我都能找到回家看望母亲或者...
    天涯侠仙_3209阅读 211评论 0 0
  • 郭敬明的小说总能带来无限感慨 易遥,如飞蛾,向往光明,但接近光明,意味着离受伤也就不远了。 顾森西,像一缕给飞蛾带...
    f53b886ee002阅读 149评论 0 0