一般来说现在的Linux系统都把vi链接到了vim,毕竟vim更高级,更好用
-> # which vi
/usr/bin/vi
-> # ls -l /usr/bin/vi
lrwxrwxrwx 1 root root 20 May 21 22:39 /usr/bin/vi -> /etc/alternatives/vi
-> # ls -l /etc/alternatives/vi
lrwxrwxrwx 1 root root 18 May 21 22:41 /etc/alternatives/vi -> /usr/bin/vim.basic
如果链接到了vim.tiny,那表示是原始的vi:
debian@-PC0:~$ ls -l /etc/alternatives/vi
lrwxrwxrwx 1 root root 17 Feb 13 03:49 /etc/alternatives/vi -> /usr/bin/vim.tiny
debian@-PC0:~$ vim
-bash: vim: command not found
另外一个查看是vi还是vim的操作是看编辑C语音文件时是否有代码高亮。
在最小化安装Debian或者Ubuntu系统的时候是不会装VIM或者nano的,这时候只能使用vi。
我使用vi的另一个原因是在不能联网的测试机CentOS上只有vi。
于是我就记录下vi的操作方法。
先是打开文件:
vi test.c
然后进入浏览模式,现在你可以自由地使用方向键移动光标。
如果你不知道怎么退出vi,可以选择强行关闭这个窗口或者狂按esc键,然后输入:q!,按回车
你可以按键进入编辑模式:
i
:在光标处进行插入
o
:在光标下新建一行,进行插入
一般来说进入插入模式后,终端底下会显示-- INSERT --
,但是我在使用WSL的Debian系统的时候没出现,推荐大家使用WSL的Ubuntu系统。
注意:我在大部分的Debian或者Ubuntu系统上在编辑模式时是可以使用方向键进行光标的移动操作的
然后就是比较坑的一点了,我在WSL的Debian系统上使用vi时,发现方向键并不能在编辑模式进行光标的移动,反而会插入字符:按↑插入字符A,按↓插入字符B,按→插入字符C,←插入字符D。
移动光标的方法如下:
h
: 游标向左移动一个光标
j
: 游标向下移动一个光标
k
: 游标向上移动一个光标
l
: 游标向右移动一个光标
编辑模式是可以用Backspace
键进行删除的,但在我的WSL的Debian系统中不行。
使用Delete
键100%可以进行删除操作
如果你想要一次删除多行,可以输入5dd
表示删除5行。
其他操作:
:45,101d
包括45和101在内的45到101之间的行将被删除。
参考:linux - How to delete selected text in VI editor - Stack Overflow
编辑完成后先按Esc
键退出到浏览模式,然后输入:
:wq
:w表示写,q表示退出,按回车执行
:q!
:q表示退出,!表示不保存