vim 是一个具有很多命令的功能非常强大的编辑器。
vim有三种基本的模式:普通模式,编辑模式,命令行模式。
普通模式:
使用vim打开一个文件时展现的就是普通模式,可以通过上下左右的箭头键移动光标对文件进行查阅。 有的系统中可能没有定义方向键的终端,也可以采用其他方式对光标进行移动:
- h:左箭头,记忆技巧:h 键位于h,j,k,l四键的左边,每次按就会向左移动。
- j :下箭头,记忆技巧:j 键可以抽象成一支尖端方向朝下的箭头
- k:上箭头
- l :右箭头,记忆技巧:l 键位于h,j,k,l四键的右边,每次按就会向右移动。
普通模式下,文件内容是无法编辑的,即普通模式是只读的。
输入:q! <回车>,这种方式的退出会使编辑器丢弃您进入编辑器以来所做的改动。(输入英文模式下的冒号,q,!,然后回车)
使用 :wq 以保存文件并退出
在普通模式下,可以按下 x 键来删除光标所在位置的字符。
输入 dw 可以从光标处删除至下一个单词前
输入 de 会从当前光标位置删除到单词末尾
输入 d$ 从当前光标删除到行末。
许多改变文本的命令都由一个操作符和一个动作构成。
使用删除操作符 d 的删除命令的格式如下:
d motion
其中:
d - 删除操作符。
motion - 操作符的操作对象(在下面列出)。
一个简短的动作列表:
w - 从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符。
e - 从当前光标当前位置直到单词末尾,包括最后一个字符。
$ - 从当前光标当前位置直到当前行末。
在普通模式下,可以按下 i 键来插入文本,即进入编辑模式。 在普通模式下,可以按下 a键也可插入文本,即进入编辑模式。
- i: 在光标所在字符前开始插入
- a: 在光标所在字符后开始插入
吐槽:其实没啥差别
编辑模式:
当你输入字符" i "之后,会发现界面的左下角出现“插入”字段,这意味着你进入编辑模式,按Esc可以退出编辑模式,回到普通模式。
命令行模式:
在普通模式下,输入“ : ”,“ / ”,“ ? ”,光标会直接移动到最下面一行。在这个模式中,可以很轻松的对文件进行查找和替换,也可以保存文件和退出。
vim的功能
块选择
通常情况下,我们操作一个文件都是按行操作的,还可以对文字块进行操作。
首先使用vim打开之前的test文件,将光标放在“a”的后面,然后按下Ctrl + v,随后移动光标进行块选择。被选中的部分文件背景会变色。
此时按下“y”即可将选中的文本进行复制,随后选中块的颜色消失,将光标移到第一行“test”的最后一个“t”上按下“p”即可完成粘贴。
除了复制块,在可视模式中还有其他选择:
v:逐个字符进行选择;
V:按行进行选择
Ctrl + v:块选择。
选择完成后,按下“y”则是对选中的部分进行复制,按下“d”则是对选中的部分进行删除。
编辑多个文件
vim可同时打开多个文件,然后我们可以在多个文件里面使用vim互相复制粘贴信息。
如果是在两个终端上使用vim打开两个文件,通过“yy”在第一个文件复制完一行后,再去另一个文件中按下“p”是无法粘贴成功的,我们只能在一个终端上打开多个文件进行编辑。
:files 列出当前vim打开的所有文件
:n 编辑下一个文件
:N 编辑上一个文件
演示:
先创建两个文件test1和test2,分别输入文本“This is the test1”和“This is the test2”
使用命令vim test1 test2打开两个文件
在vim中输入:files列出当前vim打开的所有文件
多窗口编辑文件
很多情况下,我们需要对照文件去查看,在一个窗口下进行切换就显得比较麻烦,此时就需要分屏。
- 水平分割:
vim -o test1 test2
- 垂直分割:
vim -O test1 test2
如果是先打开一个文件,如test1,然后想要分割窗口,可以输入“:split test2” ,水平分割当前光标所在窗口;
也可以输入“:vsplit test2”,垂直分割当前光标所在窗口。
如果不加文件名,默认在新窗口中打开当前文件。