vi/vim
的区别简单点来说,它们都是多模式编辑器,不同的是
vim
是
vi
的升级版本,它不仅兼容
vi
的所有指令,而且
还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于
x window
、
mac os
、
windows
。我们课堂上,统一按照
vim
来进行讲解。
1. vim
的基本概念
课堂上我们讲解
vim
的三种模式
(
其实有好多模式,目前掌握这
3
种即可
),
分别是命令模式(
command mode
)、插
入模式(
Insert mode
)和底行模式(
last line mode
),各模式的功能区分如下:
正常
/
普通
/
命令模式
(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入
Insert mode
下,或者到
last line mode
插入模式
(Insert mode)
只有在
Insert mode
下,才可以做文字输入,按「
ESC
」键可回到命令行模式。该模式是我们后面用的最频繁
的编辑模式。
末行模式
(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,
shift+:
即可进入该模
式。要查看你的所有模式:打开
vim
,底行模式直接输入
:help vim-modes
我这里一共有
12
种模式
:six BASIC modes
和
six ADDITIONAL modes.
2. vim
的基本操作
进入
vim,
在系统提示符号输入
vim
及文件名称后,就进入
vim
全屏幕编辑画面
:
$ vim test.c
不过有一点要特别注意,就是你进入
vim
之后,是处于
[
正常模式
]
,你要切换到
[
插入模式
]
才能够输入文
字。
[
正常模式
]
切换至
[
插入模式
]
输入
a
输入
i
输入
o
[
插入模式
]
切换至
[
正常模式
]
目前处于
[
插入模式
]
,就只能一直输入文字,如果发现输错了字
,
想用光标键往回移动,将该字删除,可
以先按一下「
ESC
」键转到
[
正常模式
]
再删除文字。当然,也可以直接删除。
[
正常模式
]
切换至
[
末行模式
]
「
shift + ;
」
,
其实就是输入「
:
」
退出
vim
及保存文件
,
在
[
正常模式
]
下,按一下「
:
」冒号键进入「
Last line mode
」
,
例如
:
: w
(保存当前文件)
: wq (
输入「
wq
」
,
存盘并退出
vim)
: q! (
输入
q!,
不存盘强制退出
vim)
3. vim
正常模式命令集
插入模式
按「
i
」切换进入插入模式「
insert mode
」,按
“i”
进入插入模式后是从光标当前位置开始输入文件;
按「
a
」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按「
o
」进入插入模式后,是插入新的一行,从行首开始输入文字。
从插入模式切换为命令模式
按「
ESC
」键。
移动光标
vim
可以直接用键盘上的光标来上下左右移动,但正规的
vim
是用小写英文字母「
h
」、「
j
」、「
k
」、
「
l
」,分别控制光标左、下、上、右移一格
按「
G
」:移动到文章的最后
按「
$
」:移动到光标所在行的
“
行尾
”
按「
^
」:移动到光标所在行的
“
行首
”
按「
w
」:光标跳到下个字的开头
按「
e
」:光标跳到下个字的字尾
按「
b
」:光标回到上个字的开头
按「
#l
」:光标移到该行的第
#
个位置,如:
5l,56l
按[
gg
]:进入到文本开始
按[
shift
+
g
]:进入文本末端
按「
ctrl
」
+
「
b
」:屏幕往
“
后
”
移动一页
按「
ctrl
」
+
「
f
」:屏幕往
“
前
”
移动一页
按「
ctrl
」
+
「
u
」:屏幕往
“
后
”
移动半页
按「
ctrl
」
+
「
d
」:屏幕往
“
前
”
移动半页
删除文字
「
x
」:每按一次,删除光标所在位置的一个字符
「
#x
」:例如,「
6x
」表示删除光标所在位置的
“
后面(包含自己在内)
”6
个字符
「
X
」:大写的
X
,每按一次,删除光标所在位置的
“
前面
”
一个字符
「
#X
」:例如,「
20X
」表示删除光标所在位置的
“
前面
”20
个字符
「
dd
」:删除光标所在行
「
#dd
」:从光标所在行开始删除
#
行
复制
「
yw
」:将光标所在之处到字尾的字符复制到缓冲区中。
「
#yw
」:复制
#
个字到缓冲区
「
yy
」:复制光标所在行到缓冲区。
「
#yy
」:例如,「
6yy
」表示拷贝从光标所在的该行
“
往下数
”6
行文字。
「
p
」:将缓冲区内的字符贴到光标所在位置。注意:所有与
“y”
有关的复制命令都必须与
“p”
配合才能完
成复制与粘贴功能。
替换
「
r
」:替换光标所在处的字符。
「
R
」:替换光标所到之处的字符,直到按下「
ESC
」键为止。
撤销上一次操作
「
u
」:如果您误执行一个命令,可以马上按下「
u
」,回到上一个操作。按多次
“u”
可以执行多次回
复。
「
ctrl + r
」
:
撤销的恢复
更改
「
cw
」:更改光标所在处的字到字尾处
「
c#w
」:例如,「
c3w
」表示更改
3
个字
跳至指定的行
「
ctrl
」
+
「
g
」列出光标所在行的行号。
「
#G
」:例如,「
15G
」,表示移动光标至文章的第
15
行行首。
4. vim
末行模式命令集
在使用末行模式之前,请记住先按「
ESC
」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式。
列出行号
「
set nu
」
:
输入「
set nu
」后,会在文件中的每一行前面列出行号。
跳到文件中的某一行
「
#
」
:
「
#
」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字
15
,
再回车,就会跳到文章的第
15
行。
查找字符
「
/
关键字」
:
先按「
/
」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按
「
n
」会往后寻找到您要的关键字为止。
「
?
关键字」:先按「
?
」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直
按「
n
」会往前寻找到您要的关键字为止。
问题:/ 和 ?查找有和区别?操作实验一下
保存文件
「
w
」
:
在冒号输入字母「
w
」就可以将文件保存起来
离开
vim
「
q
」:按「
q
」就是退出,如果无法离开
vim
,可以在「
q
」后跟一个「
!
」强制离开
vim
。
「
wq
」:一般建议离开时,搭配「
w
」一起使用,这样在退出的时候还可以保存文件。
5. vim
操作总结
三种模式
正常模式
插入模式
底行模式
我们一共有
12
种总模式,大家下来可以研究一下
vim
操作
打开,关闭,查看,查询,插入,删除,替换,撤销,复制等等操作。
练习:当堂口头模式切换练习
6.
简单
vim
配置
配置文件的位置
在目录
/etc/
下面,有个名为
vimrc
的文件,这是系统中公共的
vim
配置文件,对所有用户都有效。
而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:
“.vimrc”
。例如,
/root
目录下,
通常已经存在一个
.vimrc
文件
,
如果不存在,则创建之。
切换用户成为自己执行
su
,进入自己的主工作目录
,
执行
cd ~
打开自己目录下的
.vimrc
文件,执行
vim .vimrc
常用配置选项
,
用来测试
设置语法高亮
: syntax on
显示行号
: set nu
设置缩进的空格数为
4: set shiftwidth=4
使用插件
要配置好看的
vim
,原生的配置可能功能不全,可以选择安装插件来完善配置,保证用户是你要配置的用户,接下
来
:
安装
TagList
插件
,
下载
taglist_xx.zip ,
解压完成,将解压出来的
doc
的内容放到~
/.vim/doc,
将解压出来
的
plugin
下的内容拷贝到~
/.vim/plugin
在~
/.vimrc
中添加
:
let Tlist_Show_One_File=1 let Tlist_Exit_OnlyWindow=1 let
Tlist_Use_Right_Window=1
安装文件浏览器和窗口管理器插件
: WinManager
下载
winmanager.zip
,
2.X
版本以上的
解压
winmanager.zip
,将解压出来的
doc
的内容放到~
/.vim/doc,
将解压出来的
plugin
下的内容拷贝到
~
/.vim/plugin
在~
/.vimrc
中添加
let g:winManagerWindowLayout=‘FileExplorer|TagList nmap wm :WMToggle<cr>
然后重启
vim,
打开
~/XXX.c
或~
/XXX.cpp,
在
normal
状态下输入
"wm",
你将看到上图的效果。
更具体移步:
手把手教你把Vim改装成一个IDE编程环境(图文)_vim 在编译时,显示shell-CSDN博客
, 其他手册,请执行
vimtutor
命令。
参考资料
Vim
从入门到牛逼
(vim from zero to hero)
~over~