开始使用vim

作者: 学习编程王同学 | 来源:发表于2018-06-16 09:34 被阅读30次

vim是一个文本编辑器。虽然目前有很多编辑器可选,但是vim很可能是在没有图形界面情况下的唯一选择,因此还是有必要了解此编辑器。

如果之前没有使用过终端中的文本编辑器,可能会对vim有很多的不适应。需要说明的是,vim是为终端设计的编辑器,这意味着此编辑器在没有鼠标的情况下进行操作。此编辑器的操作逻辑(很大程度来来源于vi)具有很长的历史,这一方面导致它的逻辑不太能被新用户接受,另一个方面也说明这种操作逻辑的健壮性。

三种模式

vim具有三种模式:一般模式、编辑模式和命令模式。

打开vim后,就进入了一般模式,在这种模式中,常用的操作就是光标的移动和行的操作,比如行的复制、粘贴和删除等。

可以从一般模式进入编辑模式和命令模式,编辑模式与图形化的编辑器(比如记事本、写字板等)非常相似,可以进行字符级别的操作。

命令模式的常用操作是搜索、替换、读取、保存和对编辑器的设置(比如设置行号和缩进)等操作。

打开、编辑、保存、退出

使用vim打开一个文件很简单:

$ vim hello.txt

上面的命令会使用vim打开hello.txt文件,如果hello.txt存在,那么将打开该文件;如果不存在,那么将创建并打开该文件。

进入vim程序后,就进入了一般模式,这个时候可以使用按键hjkl移动光标,分别表示光标向左、上、下、右4个方向移动。

按键 功能
h 向左移动光标
j 向上移动光标
k 向下移动光标
l 向右移动光标

下面是一个动图示例:

vim打开文件并移动光标

为了便于读者理解,动图中终端右侧的提示表示实际的按键。

i键即可进入编辑模式,也可以使用其他按键:

按键 功能 按键 功能
i 从光标处插入 I 所在行第一个非空白字符处插入
o 所在行下面插入新行并在新行插入 O 所在行上面插入新行并在新行插入
a 光标处下一个字符插入 A 所在行最后字符后插入

i键后,就会进入编辑模式并从光标处开始插入,这时移动光标需要使用键盘上的箭头按键。使用i进入编辑模式后,vim窗口左下方会显示-- INSERT --字样,表示用户正在插入(编辑)模式。

对文件修改完成后,使用 ESC 键返回一般模式。

下面是动图示例:

vim的插入模式

返回一般模式后,使用命令模式对文件进行保存。

在一般模式中输入:即可进入命令模式,此时vim窗口左下方会显示:,之后输入w表示写入文件,即:w表示写入文件;:q表示离开vim;:wq表示写入文件后离开vim。

下面是动图示例:

vim写入并离开

至此,我们从一般模式按i键到编辑模式,编辑后按ESC键到一般模式,在命令模式进行保存和离开,完成了对一个文本文件的编辑。

下面是几个命令模式中常用的命令:

命令 功能
:w 写入文件
:q 离开
:q! 强制离开
:wq 写入文件并离开
:w filename 将文件另存为filename文件
:n1 n2 w filename 将n1~n2行另存为filename文件
:! command 暂时到shell中执行command命令
:set nu 显示行号
:set nonu 不显示行号

下面是设置显示行号和不显示行号的动图示例:

vim设置行号

一般模式

如上所述,在一般模式中,可以使用hjkl移动光标,分别表示光标向左、上、下、右4个方向移动。

下面是一般模式中的常用的操作:

按键 功能
Ctrl + f 下一页
Ctrl + b 上一页
0 移动光标至本行开头
$ 移动光标至本行末尾
gg 移动光标到第一行
nG n为数字,移动光标到第n行
G 移动光标到最后一行
n<Enter> n为数字,光标向下移动n行

下面是使用ggG在行之间移动光标的动图示例:

vim一般模式中在行中跳转

一般模式中可以对行进行复制、粘贴和删除的操作,下面是常用的操作:

按键 功能
yy 复制光标所在行
nyy n为数字,复制光标所在行(包含)向下n行
p 在光标所在行下面粘贴
P 在光标所在行上面粘贴
dd 删除光标所在行
ndd n为数字,删除光标所在行(包含)向下n行

下面是使用yy复制,p粘贴,在使用ndd删除的动图示例:

vim中的复制、粘贴和删除操作

还可以使用.(英文句号)键进行重做操作,u键进行撤销操作。

搜索与替换

在命令模式中进行搜索与替换:

命令 功能
/word 向下搜索word
?word 向上搜索word
n 搜索下一个
N 反向搜索下一个
:n1,n2s/word1/word2/g n1,n2为数字,在n1~n2行中用word2替换word1,替换时不询问
:1,$s/word1/word2/g 第一行至最后一行(全文)用word2替换word1,替换时不询问
:n1,n2s/word1/word2/gc n1,n2为数字,在n1~n2行中用word2替换word1,替换时询问

下面是一个在vim中搜索的动图示例:

vim搜索

区块操作

vim还支持区块操作:

按键 功能
v 字符选择
V 行选择
Ctrl + v 区块选择
y 复制区块
d 删除区块

下面是区块操作的动图示例:

vim区块操作

多窗口

vim支持多窗口操作,下面是常用的操作:

命令或按键 功能
:sp filename 横向新窗口打开filename文件
:vsp filename 纵向新窗口打开filename文件
Ctrl + w 之后 [hjkl] 将光标移动到左、上、下、右侧窗口

下面是两个纵向窗口的动图示例:

vim多窗口操作

相关文章

  • 开始使用vim

    vim是一个文本编辑器。虽然目前有很多编辑器可选,但是vim很可能是在没有图形界面情况下的唯一选择,因此还是有必要...

  • 开始使用vim

    参考文档 vim从入门到放弃 vim的基本配置与github上的两个高票配置 全世界最好的编辑器VIM之Windo...

  • 开始使用vim

    vim的官方网站:http://www.vim.org/ 有心人请帮助一下乌干达的可怜儿童。。。。 以CentOS...

  • vim

    一、开始使用 Vim - the ubiquitous text editorVim is a highly co...

  • ubuntu中vim的简单使用

    因为在shell中nano是乱码,所以开始使用vim来编辑文档 虽然感觉是对vim大材小用了,但也算是熟悉下这个文...

  • vim中 如何对 包含中文的 json 进行格式化

    1. 问题 最近一段时间开始使用vim作为文本编辑器,好处不多说,就说今天遇到的问题。在使用vim编辑json文件...

  • usr_02 开始使用vim

    02.1 第一次开启vim 02.2 插入文本 02.3 在vim中移动光标 02.4 删除字符 02.5 ...

  • Vim使用笔记之.vimrc配置

    之前陆陆续续有用过一点vim,但基本上都没有详细地去了解这个强大的编辑器,最近开始重新学习一下Vim。刚开始使用V...

  • VIM编辑器篇

    最开始使用vim的时候,只知道:w可以保存内容,但不知道怎么退出编辑界面,是的,不知道。然后每次就把shell关掉...

  • 抛弃nano,开始使用vim编辑器

    从最开始接触linux就使用nano编辑器,简单方便,虽然也是使用键盘操作,但是编辑效率方面可能没有vi那么好...

网友评论

  • zhf_sy:常用就这些,👍
    学习编程王同学:@zhf_sy 谢谢
  • 嘻哈lhy:你好,请问那个动态图怎么搞的
    学习编程王同学:@嘻哈lhy 使用任意一款屏幕转gif的软件即可,我用的ScreenToGif。
  • 小县城公务员:你好!我们是程序员大咖旗下专注于程序员生态的公众号程序员大咖(微信号 CodePush)。我们很赞赏你的文章,希望能获得转载授权。授权后,你的文章将会在公众号程序员大咖、程序员共读、源码共读、Java编程精选、iOS开发等渠道发布。我们会注明来源和作者姓名。
    非常感谢~~~
    学习编程王同学:@源码共读 ok,没有问题,谢谢传播。
  • coolcalf:都转vsc一年了好吧
    学习编程王同学:@coolcalf 嗯嗯,vsc和atom我都很喜欢
    coolcalf:@mwangjs vscode
    学习编程王同学:@coolcalf so what?
  • 丶灰太狼他叔:赞!
    学习编程王同学:@丶灰太狼他叔 谢谢
  • d03497788d96:介绍的不错啊。
    之前尝试了解Vim很多次,都因为简介文本过于复杂而放弃了。
    现在总算对Vim的逻辑有了基本的认识了。
    学习编程王同学:@Cuta_丘塔 谢谢。在很久之前,还没有显示器,程序员使用打字机和打印机(充当屏幕)操作电脑,由于打印机的局限性(每次打印一行),那会儿的编辑器只能使用“行模式”编辑文件(比如ed编辑器);后来有的程序员首先接触到了显示器(真正的显示器),可以直接在屏幕上操作而不需要打印出来,因此他们在行编辑器的基础上开发了可以在字符级别修改文件(vi编辑器)、还能随意跳转光标的编辑器(注意他们还没鼠标和图形界面);后来又有程序员觉得vi编辑器不太好用,在其基础上(也可能只是兼容)开发了vim编辑器。所以,vim编辑器能看到各种不同于现在普通文本编辑器(比如Atom)的操作。
  • 许我长河:set ff =unix之类
    学习编程王同学:@许我长河 找一个靠谱的编辑器是多么重要
    许我长河:@许我长河 我第一次用vim之前,是在win本机写了个脚本,结果怎么也不能执行。最后发现是编码问题……
    学习编程王同学:这只是个简单的介绍性质的文章,还用不到这个……
    而且我觉得这种gbk32与utf-8来回转换的策略简直是反人类……
  • 凌屿:奈斯
    学习编程王同学:@凌屿 三克斯

本文标题:开始使用vim

本文链接:https://www.haomeiwen.com/subject/bunveftx.html