首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vim学习笔记上篇

Vim学习笔记上篇

作者头像
InitCool
发布2020-04-29 17:25:32
5780
发布2020-04-29 17:25:32
举报
文章被收录于专栏:InitCool的专栏InitCool的专栏

Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。本文笔者就和大家一起来学习Vim

Vim的6种基本模式

Vim具有6种基本模式5种派生模式,我们这里只简单介绍下6种基本模式:

普通模式

在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这也是Vim启动后的默认模式。这正好和许多新用户期待的操作方式相反(大多数编辑器默认模式为插入模式)。 Vim强大的编辑能来自于其普通模式命令。普通模式命令往往需要一个操作符结尾。例如普通模式命令dd删除当前行,但是第一个”d”的后面可以跟另外的移动命令来代替第二个d,比如用移动到下一行的”j”键就可以删除当前行和下一行。另外还可以指定命令重复次数,2dd(重复dd两次),和dj的效果是一样的。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效地进行文本编辑。 在普通模式中,有很多方法可以进入插入模式。比较普通的方式是按a(append/追加)键或者i(insert/插入)键。

插入模式

在这个模式中,大多数按键都会向文本缓冲中插入文本。大多数新用户希望文本编辑器编辑过程中一直保持这个模式。

在插入模式中,可以按ESC键回到普通模式。

可视模式

这个模式与普通模式比较相似。但是移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。当执行一个非移动命令时,命令会被执行到这块高亮的区域上。Vim的”文本对象”也能和移动命令一样用在这个模式中。

选择模式

这个模式和无模式编辑器的行为比较相似(Windows标准文本控件的方式)。这个模式中,可以用鼠标或者光标键高亮选择文本,不过输入任何字符的话,Vim会用这个字符替换选择的高亮文本块,并且自动进入插入模式。

命令行模式

在命令行模式中可以输入会被解释成并执行的文本。例如执行命令(:键),搜索(/和?键)或者过滤命令(!键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。

vim后面加上你要打开的已存在的文件名或者不存在(则作为新建文件)的文件名。 打开终端,输入以下命令

$ vim practice_1.txt

直接使用vim也可以打开vim编辑器,但是不会打开任何文件。

进入命令行模式后输入:e 文件路径 同样可以打开相应文件。

按Esc进入普通模式,在该模式下使用方向键或者h,j,k,l键可以移动游标。

按键 说明 h 左 l 右(小写L) j 下 k 上 w 移动到下一个单词 b 移动到上一个单词

i 在当前光标处进行编辑 I 在行首插入 A 在行末插入 a 在光标后插入编辑 o 在当前行后插入一个新行 O 在当前行前插入一个新行 cw 替换从光标所在位置后到一个单词结尾的字符

命令行模式下保存文档

从普通模式输入:进入命令行模式,输入w回车,保存文档。输入:w 文件名可以将文档另存为其他文件名或存到其它路径下

命令 说明 :q! 强制退出,不保存 :q 退出 :wq! 强制保存并退出 :w <文件路径> 另存为 :saveas 文件路径 另存为 :x 保存并退出 :wq

普通模式下输入Shift+zz即可保存退出vim

进入普通模式,使用下列命令可以进行文本快速删除 x 删除游标所在的字符 X 删除游标所在前一个字符 Delete 同x dd 删除整行 dw 删除一个单词(不适用中文) d$或D 删除至行尾 d^ 删除至行首 dG 删除到文档结尾处 d1G 删至文档首部

在普通模式下.(小数点)表示重复上一次的命令操作 在普通模式下,你还可以使用dw或者daw(delete a word)删除一个单词,所以你可以很容易的联想到dnw(n替换为相应数字) 表示删除n个单词

命令 说明 nG(n Shift+g) 游标移动到第 n 行(如果默认没有显示行号,请先进入命令模式,输入:set nu以显示行号) gg 游标移动到到第一行 G(Shift+g) 到最后一行 小技巧:你在完成依次跳转后,可以使用 Ctrl+o 快速回到上一次(跳转前)光标所在位置,这个技巧很实用,比如当你在写代码时,忽然想起有个 bug,需要修改,这时候你跳过去改好了,只需要按下 Ctrl+o 就可以回到你之前的位置。vim 中会用很多类似的小技巧就等着你去发掘。

w 到下一个单词的开头 e 到当前单词的结尾 b 到前一个单词的开头 ge 到前一个单词的结尾 0或^ 到行头 $ 到行尾 f<字母> 向后搜索<字母>并跳转到第一个匹配的位置(非常实用) F<字母> 向前搜索<字母>并跳转到第一个匹配的位置 t<字母> 向后搜索<字母>并跳转到第一个匹配位置之前的一个字母(不常用) T<字母> 向前搜索<字母>并跳转到第一个匹配位置之后的一个字母(不常用)

普通模式中使用y复制

普通模式中,yy复制游标所在的整行(3yy表示复制3行) 普通模式中,y^ 复制至行首,或y0。不含光标所在处字符。 普通模式中,y$ 复制至行尾。含光标所在处字符。 普通模式中,yw 复制一个单词。 普通模式中,y2w 复制两个单词。 普通模式中,yG 复制至文本末。 普通模式中,y1G 复制至文本开头。 普通模式中使用 p 粘贴

普通模式中,p(小写)代表粘贴至光标后(下) 普通模式中,P(大写)代表粘贴至光标前(上) 打开文件进入普通模式练习上述命令,这会儿你就可以随意 yy 了。

$ vim protocols

其实前面讲得 dd 删除命令就是剪切,你每次 dd 删除文档内容后,便可以使用 p 来粘贴,也这一点可以让我们实现一个很爽快的功能——交换上下行:

ddp ,就这么简单,即实现了快速交换光标所在行与它下面的行

替换和Undo命令都是针对普通模式下的操作

命令 说明 r+<待替换字母> 将游标所在字母替换为指定字母 R 连续替换,直到按下Esc cc 替换整行,即删除游标所在行,并进入插入模式 cw 替换一个单词,即删除一个单词,并进入插入模式 C(大写) 替换游标以后至行末 ~ 反转游标所在字母大小写 u{n} 撤销一次或n次操作 U(大写) 撤销当前行的所有修改 Ctrl+r redo,即撤销undo的操作

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Vim的6种基本模式
    • 普通模式
      • 插入模式
        • 可视模式
          • 选择模式
            • 命令行模式
              • 命令行模式下保存文档
              • 普通模式下输入Shift+zz即可保存退出vim
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档