Vim 快速入门

作者: 材才才 | 来源:发表于2018-10-18 23:25 被阅读3次

本文大约 5000 字, 阅读大约需要 10 分钟

在 Linux 下最常使用的文本编辑器就是 vi 或者 vim 了,如果能很好掌握这个编辑器,非常有利于我们更好的在 Linux 下面进行编程开发。

vim 和 vi

Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。

下面是 vim 快捷键盘图:

vim 快捷键

vi/vim 的工作模式

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:

命令模式

当使用 vi/vim 打开一个文件就进入了命令模式(也可称为一般模式),这是默认的模式。在这个模式,你可以采用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用『复制、贴上』来处理你的文件数据。

输入模式

在命令模式并不能编辑文件,需要输入如『i, I, o, O, a, A, r,R』等任何一个字母之后才会进入输入模式(也称为编辑模式)。注意了!通常在 Linux 中,按下这些按键时,在画面的左下方会出现『 INSERT 或 REPLACE 』的字样,此时才可以进行编辑。而如果要回到命令模式时,则必须要按下『Esc』这个按键即可退出编辑模式。

底线命令模式

在命令模式下,按下『:,/,?』中任意一个,就可以将光标移动到最底下那一行,进入底线命令模式(也称为指令列命令模式)。在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、退出、显示行号等等的动作则是在此模式中达成的!同理,必须按下『Esc』按钮才可以退出该模式,返回命令模式

三种模式的切换和功能可以用下图来总结:

vi/vim 工作模式

简易示例

1. 使用 vim 打开文件

在命令行中输入如下命令:

$ vim test.txt

采用 vi 文件名 或者 vim 文件名 就可以打开文件并且进入了命令模式。这里文件名是必须添加的,当文件不存在的时候,也能打开,并且进行编辑保存后就是创建一个新的文件。打开后的界面如下图所示:

vim1.png

整个界面可以分为两个部分,最底下一行和上面的部分,最底下一行主要是显示当前文件名和文件的行数、列数,上图是一个新的文件,所以最底下显示的是文件名,而且后面括号也说是新文件,而下图是一个已经有内容的文件,那么上面部分就显示文件内容,最底下一行显示了文件名,文件的行数和列数,并且在最右侧部分会显示当前坐标的位置,比如图中是显示 (4,1) 表示当前坐标在第四行第一列的位置。

vim2.png
2. 进入编辑模式

接下来就是开始对文件进行编辑,也就是需要进入编辑模式。只要按下『i, I, o, O, a, A, r,R』等字符就可以进入编辑模式了!在编辑模式当中,你可以发现在左下角状态栏中会出现 –INSERT- 的字样,那就是可以输入任意字符的提示啰!这个时候,键盘上除了 [Esc] 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑!

如下图所示:

vim3.png

注意:在 vim/vi 中 [Tab] 键是向右移动 8 个空格字符。

3. 按下 [ESC] 按钮回到命令模式

如果对文件编辑完毕了,那么应该要如何退出呢?此时只需要按下 [Esc] 这个按钮即可!马上你就会发现画面左下角的 – INSERT – 不见了!并且返回了命令模式了

4. 退出

最后就是存盘并离开,指令很简单,输入『:wq』即可存档离开! (注意了,按下 : 该光标就会移动到最底下一行去!) ,如下图所示:

vim4.png

更多按键说明

上述简易示例只是使用了简单的几个按键,但是从 vim 快捷键图可以知道 vim 是有很多快捷键的。

vim 更多快捷键可以如下思维导图所示:

vim 快捷键.png

练习

题目是来自vim 程序编辑器的练习,如下所示,使用的操作文件 man_db.conf 可以在 http://linux.vbird.org/linux_basic/0310vi/man_db.conf
处获取。

1. 請在 /tmp 這個目錄下建立一個名為 vitest 的目錄;
2. 進入 vitest 這個目錄當中;
3. 將 /etc/man_db.conf 複製到本目錄底下(或由上述的連結下載 man_db.conf 檔案);
4. 使用 vi 開啟本目錄下的 man_db.conf 這個檔案;
5. 在 vi 中設定一下行號;
6. 移動到第 43 列,向右移動 59 個字元,請問你看到的小括號內是哪個文字?
7. 移動到第一列,並且向下搜尋一下『 gzip 』這個字串,請問他在第幾列?
8. 接著下來,我要將 29 到 41 列之間的『小寫 man 字串』改為『大寫 MAN 字串』,並且一個一個挑選是否需要修改,如何下達指令?如果在挑選過程中一直按『y』, 結果會在最後一列出現改變了幾個 man 呢?
9. 修改完之後,突然反悔了,要全部復原,有哪些方法?
10. 我要複製 66 到 71 這 6 列的內容(含有MANDB_MAP),並且貼到最後一列之後;
11. 113 到 128 列之間的開頭為 # 符號的註解資料我不要了,要如何刪除?
12. 將這個檔案另存成一個 man.test.config 的檔名;
13. 去到第 25 列,並且刪除 15 個字元,結果出現的第一個單字是什麼?
14. 在第一列新增一列,該列內容輸入『I am a student...』;
15. 儲存後離開吧!

那么,整体步骤应该如下所示:

  1. mkdir vitest
  2. cd vitest
  3. mv /etc/man_db.conf .
  4. vi man_db.conf
  5. :set nu
  6. 43G -> 59l ->括号内是 as 这个单词
  7. gg 或 1G -> /gzip -> 在第 93 列
  8. 输入命令 [:29,41s/man/MAN/gc] -> 然后一直点击 y ,总共需要替换 13 个
  9. 一直按 u 键即可复原;更加简单粗暴的就是强制退出,也就是输入 :q!
  10. 66G 跳到 66 行 -> 6yy 复制 6 行内容(输入后,屏幕最后一行会显示 6 lines yanked) -> G 跳到最后一行,输入 p 复制到最后一行的后面
  11. 113G 跳到 113 行 -> 总共需要删除 16 行内容,所以输入 16dd,删除后光标所在行开头就是 ‘#Flags’
  12. 输入 [:w man.test.config] 实现保存操作,接着可以输入 [:! ls -l],即显示查看当前文件夹内文件内容的命令 ls -l 显示的内容在 vim 内,再次按下回车键即回到 vim 命令模式
  13. 输入 25G 到 25 行 -> 15x 删除 15 个字符,然后显示的是 tree
  14. gg / 1G 到 第一行 -> O 在上方新增一行,然后输入 『I am a student...』-> Esc 键返回命令模式
  15. [:wq] 或者 ZZ 保存离开文件

本文参考文章如下:


以上就是本文的主要内容和总结,欢迎关注我的微信公众号--机器学习与计算机视觉或者扫描下方的二维码,和我分享你的建议和看法,指正文章中可能存在的错误,大家一起交流,学习和进步!

公众号后台回复“vim快捷键”可以获取 vim 思维导图!

image

推荐阅读
1.机器学习入门系列(1)--机器学习概览(上)
2.机器学习入门系列(2)--机器学习概览(下)
3.[实战] 图片转素描图

相关文章

  • VIM 快速入门

    默认情况下的操作均为普通模式,命令前带有 : 表示该操作在命令行模式下进行 进入命令行模式 在普通模式下输入 : ...

  • vim 快速入门

    vim 号称编辑器之神,与 Emacs,其他编辑器三分天下。很多人都经历了『从入门到放弃』的痛苦过程。我在大二的时...

  • Vim 快速入门

    本文大约 5000 字, 阅读大约需要 10 分钟 在 Linux 下最常使用的文本编辑器就是 vi 或者 vi...

  • Vim快速入门

    原文地址:http://ghui.me/post/2013/08/vim/ Vim由unix系统中的vi编辑器扩充...

  • Vim快速入门

    三 进入vim 1.使用vim命令进入vim界面 vim后面加上你要打开的已存在的文件名或者不存在(则作为新建文件...

  • vim快速入门

    常用模式: 普通模式(Normal mode) 插入模式(Insert mode) 命令行模式(Command l...

  • vim快速入门

    在看的时候你一定要用vim操作一遍,下面我提供了一小段代码你可以复制到一个文本中用git bash操作下 代码很简...

  • Vim 快速入门

    Vim 是编辑器之神,今天将学到的基本命令整理一下,方便使用。一.学习使用Vim之前要了解几个原则:1>键盘映射基...

  • Vim的6种基本模式及基本操作

    说明:文章所有内容截选自实验楼教程【Vim编辑器】~ Vim 快速入门 一、实验介绍 1.1 实验内容 本次实验将...

  • Vim_大法

    Vim 快速入门... 以前大概的学了点,但基本没用,现在又要用上了,So,快速的复习下..简单的分类,适合后续...

网友评论

    本文标题:Vim 快速入门

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