Linux 文本编辑器Vim(1)——初识模式以及基本操作介绍

OS version: Ubuntu 18.04 LTS
Vim version: 8.0.1453

Vim

VI = Visual editor(可视化编辑器),VI 采用了Visual 的头2个母进行缩写。
VIM 编辑器是VI编辑器的增强版 (improved版)。VIM 是 Visual editor improved 的缩写。

Vim的优点

说到Vim,一般来说很难掌握,学习成本也很高。因为Vim有模式的概念,而功能又非常丰富,所以比起学习成本等缺点,高效的移动,高效的输入等绝对优势还是很值得我们花时间去学习它。简单总结笔者认为Vim的优点有以下4点:

  • 因为有不同的模式,所以操作性和功能性的比较的丰富
  • 可以通过操作符、动作命令、文字对象和重复功能进行快速编辑
  • 可以通过插件来拓展功能
  • 有详尽的帮助文档

关于模式

Vim主要有以下模式。
当然,还有选择模式和Ex模式等其他模式,不过在初学的时候,不知道也不要紧。

模式(mode) 常用功能
普通模式(normal mode) 光标移动、拷贝、粘贴、删除等
插入模式(insert mode) 输入、粘贴、输入补全、词语删除等
视窗模式(visual mode) 区域选择、复制、删除、过滤等
命令行模式(command line mode) 写入、退出、文本查找替换等

切换模式

Vim的切换模式如下图:

i
:
v
Esc
Esc
Esc
普通模式
插入模式
命令行模式
可视模式

Esc是一个特殊的键,它会把编辑器从任意状态切换会默认的普通模式。除了ESC以外,我们还可以通过Ctrl-[Ctrl-cCtrl-\ + Ctrl-n来把模式切换到普通模式。但是这并不能说Ctrl-cCtrl-\ + Ctrl-n就是跟Esc等价的,具体在那些方面是不一样的,我们下次再说明。

当前模式 切换模式 键位
普通模式 挿入 i、I、a、A、o、O
命令行模式 :、/、?
视窗模式 v、V、Ctrl-v

关于操作、动作、文字对象、重复

Linux 文本编辑器Vim(1)——初识模式以及基本操作介绍_第1张图片
笔者认为,在Vim中有以下几种非常重要的功能:

  • 操作符(operator)The operators that can be used are
    操作符:指修改(c)、删除(d)、拷贝(y)等操作。

  • 动作(motion):Vim documentation: motion
    动作:指光标的移动或者定义操作的范围。
    比如,如果需要删除光标位置到行尾的文本,因为删除的操作符是 d,移动到行尾的动作是 $,组合起来就是 d$

  • 文字对象(text object)The objects that can be used are
    文字对象:指操作的对象元素。文字对象只能用在操作符或者选择模式之后。
    比如,在文字对象 ** iw ** 中,与作为删除操作符的 d 进行组合,只需输 diw 就可以删除一个单词。

  • 重复(repeat)
    重复:指单词重复更改。这里所指的修改是指修改文本。
    比如,删除一个单词后,只需输入 . 就可以反复执行更改 diw 。重复是强有力的功能,可以减少重复的劳动,所以要积极的使用。

习惯并熟练使用Vim常常需要花一些时间和经历。不过以笔者经历告诉大家,这是值得的。当你习得这一项本领之后,它能够帮助你高效快速的编辑文本或者代码文件,减少不必要的重复工作和键盘移动。

关于帮助

http://vimdoc.sourceforge.net/htmldoc/help.html

Vim有非常强大的帮助文档,这个帮助文档几乎网罗了所有的功能说明。如果想知道操作符有哪些,那么只需要在命令行,也就底线命令行里输入:h operator就可以呼出相关帮助。Linux 文本编辑器Vim(1)——初识模式以及基本操作介绍_第2张图片

正则查找全文帮助

可以使用命令helpg {pattern}或者helpgrep {pattern}查找所有的帮助文档,匹配的结果以列表的形式表示出来,默认选中第一个匹配结果。比如,:helpg normal mode,详细说明请参照:help helpgrep说明。Linux 文本编辑器Vim(1)——初识模式以及基本操作介绍_第3张图片

从上图我们发现只显示了一条匹配项,vim提供了quickfix窗口,在执行vimgrep之类的命令后,结果会显示在quickfix窗口,运行:cw命令即可呼出此窗口。

与quickfix的指令有:

命令 说明
:cw 如果有信息列表,则打开quickfix窗口;否则什么也不做
:cl 列出所有信息
:cc 显示详细信息
:cp 跳到上一项
:cn 跳到下一项
:copen 打开quickfix窗口,可添加窗口高度参数,单位为行
:cclose 关闭quickfix窗口
:cold[er] 到前一个旧列表
:cnew 到后一个新列表

安装中文帮助文档

接下来说明如何安装Vim的中文帮助文档,虽然笔者建议大家熟悉英文的操作环境,在英文环境下编写文档和代码。

(1)在浏览器中输入一下网址,准备语言包下载:
  http://vimcdoc.sourceforge.net/

(2)选择“Latest platform independent tarball,including an Linux/BSD installation script”下载。Linux 文本编辑器Vim(1)——初识模式以及基本操作介绍_第4张图片

(3)将命令行切换到下载文件的目录。

cd Downloads/
tar -xf vimcdoc-2.3.0.tar.gz
cd vimcdoc-2.3.0/
source vimcdoc.sh -i

(4)切换语言
在控制台输入以下命令,完成语言的切换。

# 将vim帮助文档的语言切换到中文
vim set helplang=cn
# 将vim帮助文档的语言切换到默认的英文
# vim set helplang=en

(5)验证更改
再次打开Vim在命令行输入:h operator,可以发现已经变成亲切的中文说明。
Linux 文本编辑器Vim(1)——初识模式以及基本操作介绍_第5张图片

帮助文档学习建议

Vim的帮助文档的内容非常的多,从什么地方开始学习比较好呢,是很多Vim的使用者想问的。下面是推荐的帮助文档列表供大家参考。

如果您从未使用过Vim,那么笔者建议您从index开始读起。

Help Summary
helphelp 帮助文件之帮助
vim-modes 模式介绍
index 各个模式下所有命令的一个完整列表
quickref 快速参考指南
ex-cmd-index Vim的Ex命令列表
function-list 按用途分类的内建函数列表
option-list 选项列表
map-overview 映射命令与模式的对应表
usr_41 Vim 脚本语言的相关知识
eval Vim 脚本语言的表达式求值

Vim的基本操作

上面大致对Vim做了简单的介绍,如果要真正意义上能够使用Vim,下面的必要操作是需要您熟记的。

光标移动(normal mode)

Vim启动以后是普通模式,那么我们从普通模式开始,学习并掌握光标的移动。
当然您也可以学习Vim的入门课程,在Linux命令中输入vimtutor进入练习模式。

             ^
             k              Hint:  The h key is at the left and moves left.
       < h       l >               The l key is at the right and moves right.
             j                     The j key looks like a down arrow.
             v
  • h:向左移动
  • j:向下移动
  • k:向上移动
  • l:向右移动
  • gg:移动到文件开头
  • G:移动到文件末尾
  • {count}G:移动到指定行、例:11G

插入模式(insert mode)

  • i:移动到在光标前,启动插入模式
  • I:移动到本行第一个非空白字符之前,启动插入模式
  • a:光标向右移动一文字,启动插入模式
  • A: 光标移动到行尾,启动插入模式
  • o:在光标下方开启新行,启动插入模式
  • O:在光标上方开启新行,启动插入模式

视窗模式(visual mode)

可视模式是进行复杂选择和操作的模式。
在这模式中,可以与操作符组合使用,比如删除选择的部分,复制选择的部分都是可以的。

  • v : 进入选择模式,以文字为单位
  • V :进入选择模式,以行文字为单位
  • Ctrl-v :以块文字为单位选择

命令行模式(command line mode)

下面介绍最基本的命令行操作,请务必熟记并且多多练习。

(1)保存修改

  • :w {filename} 把内容写入到文件{filename}中,文件不存在的场合,则会新建文件。
  • :w 保存修改
  • :sav {filename} 另存为{filename}

(2)退出Vim

  • :q 退出Vim
  • :q! 如果有修改:q不能退出,通过附加!强制退出
  • :wq 保存修改并退出

(3)查找替换

  • /{word} 查找{word}
  • :%s/banana/apple/g 用apple替换banana。

最后

今天我们学习了Vim的最基本的一些操作,可以满足常规工作的需求。
但这还不是Vim的真正厉害之处,我们下次接着讲Vim的十八般武艺。
我们下次再见。

参考文献

  1. http://vimdoc.sourceforge.net/htmldoc/help.html
  2. https://zhuanlan.zhihu.com/p/111585391
  3. https://www.runoob.com/linux/linux-vim.html

你可能感兴趣的:(Linux,系统相关)