超算入门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
,自己百度吧。
推荐阅读: