Linux入门-04-vim的基本使用
一、前言
参考课程:
vi和vim的三种常用模式:
- 正常模式:以vim打开一个档案就直接进入一般模式。这个模式中可以【上下左右】按键来移动光标,可以【删除字符】或【删除整行】来处理档案内容,可以【复制、粘贴】来处理文件数据
- 插入模式:按下i,I,o,O,a,A,r,R等一个字母后才会进入编辑模式,一般来说按i即可
- 命令行模式:提供相关指令,完成读取、存盘、替换、离开vim、显示行号等操作
要学习的操作:
附上经典图:
二、编辑新文件
这里用的是Xshell去连接Linux虚拟机,并且是在Xshell中操作:
创建一个新文件:
vim Hello.java
现在就是一般模式了
按i进入编辑模式并输入:
public class Hello{
public static void main(String[] args){
System.out.println("Hello,world");
}
}
输入完毕后按Esc退出编辑模式,返回一般模式。
这时候输入:
或者/
,即冒号或反斜杠:
现在就是命令模式,输入wq
,表示写入(即保存)并退出。
这时候就返回命令行了。
输入ll
,查看文件:
这时候再输入vim Hello.java
就是进入:
如果没有改变,可以输入:q
直接退出。
如果有了修改,比如:
这时候:q
就不能退出:
这时候就需要用:q!
强制退出。
三、复制当前行和删除当前行
3.1 复制当前行并粘贴
在正常模式下,将光标移动到要复制的行上,再按yy
(即连按两次y
),就能将当前行复制到粘贴板上,这时候按p
就可以在光标所在行
的下一行
粘贴。
例如,我加了一行:
然后按yy
复制,之后把光标移动到System.out.println()`这一行:
这时候按p
:
3.2 删除当前行
在正常模式下,将光标移动到要删除的行上,再按dd
(即连按两次d
),就能将当前行删除:
比如光标现在在这行:
按dd
就可删除。
输入:q!
退出。
3.3 多行操作
当想操作多行的时候,比如复制多行,比如可以在正常模式下输入5yy
,即复制5行(光标当前行+下面四行)。
在最后一行p
粘贴:
光标在此位置5dd
删除五行(光标所在行+下面四行):
四、查找关键词
在命令模式
下,输入/关键字
就能查到该文件下的所有关键字。
这时候按n
就可以让光标跳到下一个找到的关键字的位置。
如:
命令模式
下输入\next
,即next
作为关键词:
按n
可以让光标跳到下一个关键词的位置:
五、设置行号
在命令模式
下,输入set nu
就可以增加行号,输入set nonu
就可以取消设置行号。
如:
在命令模式下输入set nu
:
再在命令行模式下输入set nonu
就可以取消行号。
六、光标跳到首行/最末行
在正常模式
下输入gg
就可以使得跳到最首行,输入G
(大写G,即shift+G或键盘大写模式下输入G)就可以使得光标跳到最末行:
原本:
输入G
:
输入gg
:
七、撤销操作
在正常模式
下输入u
就可以撤销上一步操作(包括编辑模式下的操作,比如输入了hello。)
原本:
按i
进入编辑模式输入hello
:
这时候按Esc
退出编辑模式,进入正常模式
,然后按u
撤销输入:
注意,如果是一直编辑模式,退出后直接按u
,会将编辑模式输入的所有东西都撤销。
八、光标移动到指定行
输入一个数字,然后再G
(shift+g或大写G),就可以让光标跳到输入的数字的行数
我们打开行数比较多的文件:
vim /etc/profile
开启行数:
:set nu
让光标跳到30行,输入30:
然后再shift+g
或者G
: