Vim 实用技巧必知必会
吴咏炜
前 Intel 资深软件架构师
21753 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 25 讲
Vim 实用技巧必知必会
15
15
1.0x
00:00/00:00
登录|注册

02|基本概念和基础命令:应对简单的编辑任务

图形界面的字体配置
中文支持
鼠标支持
备份和跨会话撤销
命令行(command-line)模式
可视(visual)模式
插入(insert)模式
正常(normal)模式
Vim 的基本用法
Vim 选项和配置
Vim 键描述体例
Vim 模式
Vim 教程
Vim 基础知识

该思维导图由 AI 生成,仅供参考

你好,我是吴咏炜。
这一讲,我们会讨论 Vim 的基本概念和配置。先强调一下,请务必确保你在学习这一讲之前,已经通过 Vim 教程熟悉了 Vim 的基本用法。

Vim 教程的内容概要

上节课我给你留的作业,就是花时间学习一下 Vim 教程,下面我们就来检验一下。只有你自己先对照着教程操作了一遍,今天我再带着你过一遍里面的基本概念和配置,你才能查漏补缺,发现自己遇到的问题,明确自己需要多加练习的地方。
好,现在请查看下面的键盘图。简单说明一下,这张图上展示了一个键盘。图中的“•”表示,单个字母不是完整的命令,必须再有进一步的输入。比如,单个“g”没有意义,而“gg”表示跳转到文件开头。(对于命令后面明确跟一个动作的,如“c”,我们不使用“•”。)一个键最多有三排内容:最底下是直接按键的结果,中间是按下 Shift 的结果(变大写),上面偏右的小字是按下 Ctrl 的结果。我们还用了一些特殊符号来表示操作的位置,如果你已经了解了这些命令的功能,你也自然就明白它们的意义了。
Vim 命令速查(教程版)
请检查一下有颜色的那些键,看看你是否有任何不熟悉的地方。如果看下来有让你感到陌生的内容,请复习 Vim 教程。
这张图里没有写出 Vim 的命令行命令。你现在应该已经掌握了以下这些:
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Vim配置文件的基本设置和技巧 Vim是一款强大的文本编辑器,本文介绍了Vim的基本概念和基础命令,以及如何配置Vim以提高编辑效率。文章首先介绍了Vim的四种主要模式:正常模式、插入模式、可视模式和命令行模式,并强调了正常模式的重要性。随后详细描述了Vim的键描述体例,以及Vim配置文件的基本设置,包括备份和跨会话撤销、鼠标支持、中文支持及图形界面的字体支持等。作者还提到了在不同操作系统下的配置差异,以及如何根据终端类型设置鼠标支持。文章内容涵盖了Vim编辑器的基础知识和实用技巧,适合Vim初学者快速了解和上手。 本文还介绍了中文支持的问题,包括UTF-8编码、GB2312、GBK、GB18030编码方式的特点,以及在Vim中如何支持GB18030编码。此外,还讨论了图形界面的字体配置,特别强调了在Windows下配置字体的必要性。文章以清晰简洁的语言,帮助读者快速了解Vim的基本概念和配置技巧,为进一步学习和应用Vim提供了良好的基础。 总的来说,本文内容涵盖了Vim编辑器的基础知识和实用技巧,适合Vim初学者快速了解和上手。通过本文的学习,读者可以掌握Vim的基本编辑操作和配置技巧,为提高编辑效率奠定良好基础。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Vim 实用技巧必知必会》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(36)

  • 最新
  • 精选
  • 我来也
    话说一个undo插件是真的厉害,像git一样保存着历史的修改记录,可以随时撤回到指定状态。 说实话,在使用vim的内置功能时,我极少数会用到鼠标。 虽然我设置了一个快捷键,在set mouse=a和n间切换。 但除了调整分割窗口的大小时,平常几乎不会用鼠标了。 平常在vim中使用鼠标最多的场景是:在编辑状态,想插入屏屏幕上其他某个内容时,会借助iTerm2的选取即复制功能,然后按下Cmd+v来粘贴。 开启鼠标模式下,点击内容,光标会切换到指定地方。 但在vim中,有两个方法可以快速的跳转和选取内容。 1.使用插件,easymotion。 2.使用书签和ctrl-i/o。 使用书签可以快速的选中大段的范围。类似鼠标框选的效果。

    作者回复: 这也是一种用法。跟我的不太一样。

    2020-07-27
    2
    4
  • 愚者
    我是在 mac 下的,不知道为什么会出现这个问题? Error detected while processing /Users/simon/.vimrc: line 14: E739: Cannot create directory: /Users/simon/.vim/undodir Press ENTER or type command to continue 我的.vimrc 配置如下: set enc=utf-8 set nocompatible source $VIMRUNTIME/vimrc_example.vim set nobackup set undofile set undodir=~/.vim/undodir if !isdirectory(&undodir) call mkdir(&undodir, 'p', 0700) endif

    作者回复: 你可以手工创建这个目录吗?在终端里使用 “mkdir -p ~/.vim/undodir”。 脚本创建不行,命令行上估计也玄,但总要试一下。确定不行的话,重点检查 .vim 目录的权限,用 “ls -ld ~/.vim” 看这个目录的所有者和权限,及下面 undodir 的权限。检查当前用户是不是目录的所有者。

    2021-04-02
    2
  • Ethan
    老师,我的系统信息是这样的: $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=18.04 DISTRIB_CODENAME=bionic DISTRIB_DESCRIPTION="Ubuntu 18.04.5 LTS" vim的信息从下面2个命令获得 $apt list --installed | grep vim WARNING: apt does not have a stable CLI interface. Use with caution in scripts. vim/bionic-security,bionic-updates,now 2:8.0.1453-1ubuntu1.4 amd64 [installed] vim-common/bionic-security,bionic-security,bionic-updates,bionic-updates,now 2:8.0.1453-1ubuntu1.4 all [installed,automatic] vim-gnome/bionic-security,bionic-security,bionic-updates,bionic-updates,now 2:8.0.1453-1ubuntu1.4 all [installed] vim-gtk3/bionic-security,bionic-updates,now 2:8.0.1453-1ubuntu1.4 amd64 [installed,automatic] vim-gui-common/bionic-security,bionic-security,bionic-updates,bionic-updates,now 2:8.0.1453-1ubuntu1.4 all [installed,automatic] vim-runtime/bionic-security,bionic-security,bionic-updates,bionic-updates,now 2:8.0.1453-1ubuntu1.4 all [installed,automatic] vim-tiny/bionic-security,bionic-updates,now 2:8.0.1453-1ubuntu1.4 amd64 [installed,automatic] $vim --version VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Oct 13 2020 15:49:09) Included patches: 1-1453 Modified by pkg-vim-maintainers@lists.alioth.debian.org Compiled by pkg-vim-maintainers@lists.alioth.debian.org Huge version with GTK3 GUI. Features included (+) or not (-): 在.vimrc文件中添加如下内容 set enc=utf-8 set nocompatible source $VIMRUNTIME/vimrc_example.vim echo exists('*mkdir') if !isdirectory(&undodir) call mkdir(&undodir, 'p',0700) endif set nobackup set undofile set undodir=~/.vim/undodir 现在的情况是,自己手动建立undodir文件夹的话,能跨文件撤销。如果把undodir删除,就不会自动建立这个文件夹。 在.vimrc文件中加入echo exists('*mkdir') 这句语句后,打开vim会输出一个1. 是我的配置哪里有问题吗?

    作者回复: 有问题,顺序问题。我的顺序是这样的: set undofile set undodir=~/.vim/undodir if !isdirectory(&undodir) call mkdir(&undodir, 'p', 0700) endif 你在设 undodir 选项前去读取它的数值(&undodir)……读出来当然就是空的了。

    2020-12-10
    2
  • rocedu
    Gif怎么做的?

    作者回复: 我用的是 GIF Brewery。

    2020-09-18
    2
    1
  • Gin
    在mac上用brew安装的命令行vim。不会自动生成undofile,所以设置了undodir之后还需要set undofile打开自动生成undofile。

    作者回复: 用了我的参考配置吗?默认是不打开的,但我的配置会间接打开,文中有说明。

    2020-08-03
    1
  • 生成的 undofile 怎么使用的? 我用 vim打开这个文件 是乱码的

    作者回复: 不是让你自己打开的。Vim 会自动用这个文件来做 undo (<u>)和 Redo(<C-r>)。

    2020-07-27
    6
    1
  • 唐龙
    老师的撤销文件和对于鼠标的处理我都挺喜欢的,后面的中文支持自己之前解决过,有一端时间在gitbash里使用vim,出现过乱码。也顺便了解了vim不同层面对于编码的处理和转换。贴一下自己在Windows里的配置文件: set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8 后两行好像是展示到终端时采用的编码,还有vim内部处理时使用的编码,记不大清了。 所以我真的挺不喜欢Windows的。

    作者回复: 你的第一行等价于 set fileencodings=utf-8,ucs-bom,gb18030 不可能走到后面几种编码。 termencoding要跟你的终端编码匹配。Windows上大概率不是 UTF-8。事实上在 Windows 上不需要设。

    2020-07-27
    3
    1
  • doge
    这个undofile的功能太强大了,以前把backup禁用后,老是碰到远程掉线,然后不记得上次修改的情况,这以后就不用怕了啊。

    作者回复: 如果没存盘的话,还是要靠交换文件,而不是撤销文件。

    2020-07-27
    1
  • Adoy
    老师怎么看待新的NeoVim,貌似更多人选择NeoVim来替代Vim因为更加开放和更加现代。同时VSCode也有插件支持NeoVim作为后端,提供vim的便利。

    作者回复: 参见01评论下我的回答。

    2020-07-27
    1
  • 绝尘而去
    很同意老师的说法,没有必要用了vim后就不用鼠标,任何工具都是为了提高工作效率,在合适的情况使用合适的工具就可以了。

    作者回复: 还跟个人习惯有关。这个不求大家都有相同的用法。每个人找到最适合自己的方法。

    2020-07-27
    1
收起评论
显示
设置
留言
36
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部