合作专线:17362615757
行业资讯

AI新闻

当前位置:首页 > 行业资讯 > AI新闻

技术方面互联网大佬都我的推荐的vim来学习实用指南的了,也很值得收藏保存!

「2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑
作者 | kbsc13,京东算法工程师,研究领域计算机视觉来源 | 机器学习与计算机视觉(ID:AI_Developer)编辑 | Jane
【导语】在 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 程序编辑器的练习,如下所示,使用的操作文件 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. 儲存後離開吧!
那么,整体步骤应该如下所示:
mkdir vitestcd vitestmv /etc/man_db.conf .vi man_db.conf:set nu43G -> 59l ->括号内是 as 这个单词gg 或 1G -> /gzip -> 在第 93 列输入命令 [:29,41s/man/MAN/gc] -> 然后一直点击 y ,总共需要替换 13 个一直按 u 键即可复原;更加简单粗暴的就是强制退出,也就是输入 :q!66G 跳到 66 行 -> 6yy 复制 6 行内容(输入后,屏幕最后一行会显示 6 lines yanked) -> G 跳到最后一行,输入 p 复制到最后一行的后面113G 跳到 113 行 -> 总共需要删除 16 行内容,所以输入 16dd,删除后光标所在行开头就是 ‘#Flags’输入 [:w man.test.config] 实现保存操作,接着可以输入 [:! ls -l],即显示查看当前文件夹内文件内容的命令 ls -l 显示的内容在 vim 内,再次按下回车键即回到 vim 命令模式输入 25G 到 25 行 -> 15x 删除 15 个字符,然后显示的是 treegg / 1G 到 第一行 -> O 在上方新增一行,然后输入 『I am a student…』-> Esc 键返回命令模式[:wq] 或者 ZZ 保存离开文件
以上就是本文的主要内容和总结,本文参考文章如下:vim 程序编辑器:Linux vi/vim:
(本文为 AI大本营转载文章,转载请联系原作者)
◆精彩推荐◆
「2019 Python开发者日」演讲议题全揭晓!这一次我们依然“只讲技术,拒绝空谈”10余位一线Python技术专家共同打造一场硬核技术大会。更有深度培训实操环节,为开发者们带来更多深度实战机会。更多详细信息请咨询13581782348(微信同号)。

推荐阅读:何恺明的GN之后,权重标准化新方法能超越GN、BN吗? | 技术头条
收藏指数爆表!CVPR 2018-2019几十篇优质论文解读大礼包! | 技术头条分析11年21部漫威电影,一览导演、主演、口碑票房最佳......靠找Bug赚了6,700,000元!他凭什么?30位90后霸榜! 福布斯: 比你年轻、比你有颜、比你有才华, 就是他们了!程序员深夜逆行被拦后崩溃欲自杀:老板在催我!女朋友在催我!微软 CTO 韦青:“程序员 35 岁就被淘汰”是个伪概念 | 人物志OpenStack已死?恐怕你想多了 | 技术头条❤点击“阅读原文”,查看历史精彩文章。
粤ICP备19111974号