超算入门6 vim编辑器
如果不会在linux下查看、修改文件(算例输入文件/配置文件/提交脚本),还要从windows下改完了上传,效率太低了!因此,让我们一起用10分钟来学习一下vim编辑器吧,能够大大提高工作效率。

# 什么是vi/vim
linux下我们经常需要编辑一些文本文件,比如提交任务的脚本文件,或者打开文件修改一些内容。
可是经常使用windows的用户第一次面对一个linux的terminal一脸懵,WHAT??,文件在哪?怎么打开?怎么编辑?啥都不知道。

虽然,常用的linux也是带了一些图形化的文本编辑器的,比如LibreOffice,就类似一个记事本软件或者word软件。

但对于超算平台的用户,最为常用的还是推荐vim文本编辑器。在命令行输入vim 即可打开如下的界面:

vi 编辑器是所有 Unix 及 Linux 系统下标准的编辑器,它就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器。它是我们使用Linux系统不能缺少的工具。
# vim使用初级
比如,我们希望新建一个名为 hello.txt 的文件,里面记录一些内容,只需要:
vim hello.txt
此时,我们在当前目录下新建并打开了一个名为 hello.txt 的文件,里面是空的,什么都还没写呢。

此时,vim 编辑器处于 command mode ,称作命令行模式吧。
我们按键盘上的小写字母 i,我们发现最地下出现了-- INSERT --,这表明我们进入了 Insert mode(插入模式),可以开始输入内容了。

此时,我们按键盘上的按键,就可以自由的输入了,比如输入一个hello world字符串吧。
输入完成后,我们按键盘上的 Esc 键,从插入模式退回到命令行模式。
然后我们用键盘输入 : 字符(就是shift键+;),可以发现最低端出现了一个:,此时我们从命令行模式进入了last line mode(称作末行模式吧)。

然后输入字符wq! ,表示w保存+q退出+!强制,我们就把文件保存好了。此时我们用cat命令查看一下文件的内容吧:
$ cat hello.txt
hello world
2
到此为止,我们就初步学会了vim编辑器的使用。
小节:
vim的三种模式
- 命令模式(command mode):
- 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到末行模式。
- 插入模式(Insert mode)
- 只有在插入下,才可以做文字输入,按
Esc键可回到命令行模式。
- 只有在插入下,才可以做文字输入,按
- 底行模式(last line mode)
- 将文件保存或退出vi;也可以设置编辑环境,如寻找字符串、列出行号……等。

- 打开-编辑-退出
- 打开文件:
vim 文件名 - 插入内容:按
i进入插入模式,插入完成后,按Esc退出插入模式。 - 保存文件:按
:进入末行模式,输入wq!,然后回车,是强制保存并退出。
# vim使用中级
vim之所以强大,是因为它有非常非常多的快捷键和插件,非常厉害!我们一步一步来,此处介绍一小部分最为常用的快捷键。
# 进入与退出
- 进入 vi 命令格式:
$ vi filename - 退出文件:
:q!退出不保存;wq保存退出
# 移动光标
要是想直接用方向键向下左右我也不拦着哈!
我们可以通过如下快捷键来快速移动光标,熟练之后,你会觉得鼠标弱爆了。非常建议练习个10分钟把下面的掌握一下,收益终身。
| 按键 | 功能 |
|---|---|
| ↑或 k 键 | 把当前光标向上移动一行,保持光标的列位置。 |
| ↓或 j 键 | 把当前光标向下移动一行,保持光标的列位置。 |
| →或 l 键 | 把当前光标向右移动一个字符。 |
| ←或 h 键 | 把当前光标向左移动一个字符。 |
| $键 | 把当前光标移动到该行行末。 |
| ^键 | 把当前光标移动到该行行首。 |
| w 键 | 把当前光标移动到该行的下一个字的首字符上。 |
| b 键 | 把当前光标移动到该行的上一个字的首字符上。 |
| e 键 | 把当前光标移动到该行的该字的末尾字符上。 |
| ctrl+F | 向前滚动一整屏正文。 |
| ctrl+D | 向下滚动半个屏正文。 |
| ctrl+B | 向后滚动一整屏正文。 |
| ctrl+U | 向上滚动半个屏正文。 |
友情提示:
1.在用k、j、h、l四个键时,可以在它们的前面加一个数字,这样在需要多次移动光标时不必多次按移动命令。
2.记住k、j、h、l是上下左右,比方向键快一些。
# 正文常用命令
在命令模式下,我们可以按一些键(如a A i I o O)来进入插入模式,然后输入一些内容。待输入完成,按Esc退出。
# 插入
| 按键 | 功能 |
|---|---|
| a | 在光标的后面开始插入正文。 |
| A | 在光标所在行的行首插入正文。 |
| i | 在光标的前面开始插入正文。 |
| I | 在光标所在行的行首插入正文。 |
| o | 在光标所在行(当前行)的下一行的行首开始插入正文。 |
| O | 在光标所在行(当前行)的上一行的行首开始插入正文。 |
| Esc | 退出插入模式。 |
这一部分,建议记住一个i插入就行了,然后用上一节介绍的快捷键移动光标。当然,全会更好。
# 删除
在插入模式下,按Backspace键就是删除。在命令模式下,有如下快捷键:
| 按键 | 功能 |
|---|---|
| x | x 删除当前光标所在的字符。 nx 删除n个字符 |
| dw | 删除当前光标所在的字。 ndw 删除n个字 |
| dd | 删除当前光标所在行。 ndd删除n行 |
# 替换
| 按键 | 功能 |
|---|---|
| rx | 用 x 替代当前光标所在的字符。 nrx 替换n个 |
# 恢复
这个太有用了!就是撤销,就是上一步。
| 按键 | 功能 |
|---|---|
| u | 废除最近的命令,恢复被修改或删除的内容。 |
| U | 把当前行恢复到修改它之前的状态。 |
# 查找
这个也太有用了,类似windows下的
ctrl+f的感觉。
| 按键 | 功能 |
|---|---|
| /pattern | 在缓冲区中向下查找指定的字符串 pattern。 |
| ?pattern | 在缓冲区中向上查找指定的字符串 pattern。 |
| n | 重复上一次查找命令。 |
| N | 以相反的查找方向重复上一次查找命令。 |
# 行编辑命令
键入:,进入末行模式,并在屏幕底部的:号提示符下输入行编辑命令。
| 按键 | 功能 |
|---|---|
| set nu | 显示正文的行号。 |
| set nonu | 取消行号。 |
| 1,$p | 显示缓冲区的整个内容。 |
| r wqb | 将文件 wqb 中的内容读入缓冲区,插入当前光标下。 |
| 1,5w clh | 将正文中 1 到 5 行的内容写到名为 clh 的文件中去。 |
| 2,5d | 将正文中 2 到 5 行删除。 |
| 2,5t8 | 将正文中 2 到 5 行复制到第 8 行的后面。 |
| ! ls | 暂时转出 vi 编辑器,执行 shell 命令 ls。 |
| sh | 暂时转出 vi 编辑器, 执行 shell 命令,键入ctrl+D 或 exit 返回正文。 |
# vim使用高级
# vim配置文件
我们可以通过修改vim的默认配置文件,来修改用vim打开文件时候的默认配置,举一个例子:
$ vim ~/.vimrc
打开配置文件,写入:
set nu
如下图所示,然后保存退出。

再次用vim打开hello.txt文件,我们可以看到这次默认带了行号。
$ vim hello.txt

因此,我们可以依据它的常用配置文件,来修改成自己喜欢的默认打开样式,喜欢的样式自行百度搜索吧,我举一个例子:
set nocompatible
set nu
filetype on
set history=1000
set background=dark
syntax on
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set showmatch
set guioptions-=T
set vb t_vb=
set ruler
set nohls
set incsearch
if has("vms")
set nobackup
else
set backup
endif
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
这个配置文件来自:https://www.cnblogs.com/wuyudong/p/3981410.html
# vim插件
vim可以安装非常多的插件,来打造成一个强大的IDE,自己百度吧。
推荐阅读: