Vim简单入门操作
Vim简单入门操作
移动光标
-
H
:光标左移 -
J
:光标上移 -
K
:光标下移 -
L
:光标右移
退出
-
按
以保证进入正常模式(Normal Mode),或者按<CTRL+[]> -
输入<:>以进入命令模式,然后输入q!,常用参数
a
-all,w
-save,q
-quit,!
-force,x
-equal withwq
,e
-open another file
文本编辑
按x
以删除当前光标后的一位字符
i
是在光标所在的字符之前插入需要录入的文本。
I
是在光标所在行的行首插入需要录入的文本。
a
是在光标所在的字符之后插入需要录入的文本。
A
是在光标所在行的行尾插入需要录入的文本。
o
是光标所在行的下一行行首插入需要录入的文本。
O
是光标所在行的上一行行首插入需要录入的文本。
s
删除光标所在处的字符然后插入需要录入的文本。
S
删除光标所在行,在当前行的行首开始插入需要录入的文本。
删除操作
d
是删除的意思,通常搭配一个字符 ( 删除范围 ) 实现删除功能,常用的如下:
dw
从当前光标开始删除一个单词(包括到下一个单词前的空格)
de
从当前光标开始删除一个单词(不包括到下一个单词前的空格)
dnw
删除 n 个单词
dfa
删除光标处到下一个 a 的字符处( fa 定位光标到 a 处 ,包括a)
dnfa
删除光标处到第 n 个 a 的字符处
dd
删除一整行
ndd
删除光标处开始的 n 行
d$
删除光标到本行的结尾
dH
删除屏幕显示的第一行文本到光标所在的行
dG
删除光标所在行到文本的结束
dw
这种不怎么常用, 但daw
用得很多(把光标所在的单词直接删)
快速移动
nw
n代表一个整数,为光标向前移动两个单词长度
ne
n代表一个整数,为光标向前移动到第n个单词结尾
0
移动光标至行首
nG
光标定位到第 n 行的行首
gg
光标定位到第一行的行首
G
光标定位到最后一行的行首
H
光标定位到当前屏幕的第一行行首
M
光标移动到当前屏幕的中间
L
光标移动到当前屏幕的尾部
zt
把当前行移动到当前屏幕的最上方,也就是第一行
zz
把当前行移动到当前屏幕的中间
zb
把当前行移动到当前屏幕的尾部
%
匹配括号移动,包括 ( , { , [ 需要把光标先移动到括号上
*
和 #
匹配光标当前所在的单词,移动光标到下一个(或者上一个)匹配的单词( *
是下一个,#
是上一个)
行首命令: ^ , 0 , I
行尾命令:1$, A
翻页
ctrl+f
查看下一页内容
ctrl+b
查看上一页内容
撤销
u
撤销
CTRL+r
恢复撤销
U
撤销对一行的所有修改
复制粘贴
前一个删除操作所删除的内容会自动存入内存中,通过p
调用粘贴
y
是复制的意思,通常搭配一个字符(复制范围)实现复制的功能,常用的如下:
yw
复制一个单词,还有 ynw
yfa
复制光标到下一个 a 的字符处,还有ynfa
yy
复制一行,还有 nyy
y$
复制光标到本号的结尾
yH
复制屏幕显示的第一行文本到光标所在的行
yG
复制光标所在行到文本的结束
p
,P
是黏贴的意思,当执行完复制或者黏贴的命令以后,VIM 会把文本寄存起来。
p
在光标后开始复制
P
大写的 P 光标前开始复制
替换
r
替换掉光标当前所在的字符
R
替换掉从光标开始以后的所有字符,除非 <ESC >
退出
:{作用范围}s/{目标}/{替换}/{替换的标志}
:s/old/new
把光标所在行的第一个old替换成new
:s/old/new/i
把光标所在行的第一个old替换成new且大小写不敏感
:s/old/new/Ig
把光标所在行的全部old替换成new且大小写敏感
:%s/old/new/gc
把全文的old替换成new,并且需要确认
:n1,n2s/old/new/g
把从n1行到n2行的全部old替换成new
:'<,'>s/old/new/g
选区模式下把选区内所有old换成new
修改
ce
删除当前光标到光标所在单词的末尾的所有字符,并进入插入模式
c$
删除到行尾
查找
/
+"str"+
搜索过程中输入n
移动到下一项,输入N
移动到上一项
?
+"str"+
CTRL+o
回到上一个位置
%
当光标位于(),{},[]等符号上时,输入该指令以快速跳转至前括号或者后括号
执行外部/Linux命令
:!command
返回外部界面,执行完命令后按
:r !command
执行命令并添加结果至操作文本光标处
可视模式
按v
进入选择模式。你可以移动光标扩大或者缩小选择内容。然后你可以使用一个操作符对文本做点什么。例如,d
删除文本。
输入其他文件中的内容
:r filename
Set
- 打开或关闭行号(number)
如果希望每次进入vi 会话时都显示行号,那么在主目录中的.exrc 文件中添加 set number 行。
在命令模式下,使用如下命令
:set all
命令显示选项和设置的列表
:set nu
显示行号
:set nonu
关闭行号
- 自动缩进(autoindent)(shiftwidth)
四个空格,那么在主目录中的.exrc 文件中添加 set ai sw=4 行。
在命令模式下,使用如下命令
:set ai
打开自动缩进
:set noai
关闭自动缩进
:set ai sw=4
把缩进打开并设置每级缩进设置为4个空格
:n>>
增加n级缩进量
:<<n
减少n级缩进量
- 搜索
如果希望每次进入vi 会话时都启用不区分大小写的搜索,那么在主目录中的.exrc 文件中添加 set ignorecase 行。
不区分大小写搜索(ignorecase)
:set ic
不区分大小写
:set noic
恢复区分大小写
/echo
查找当前文件中,是否存在echo 关键字
echo.*
查找当前文件中包含字符串echo,后面有个0或更多字符,之后是字符串file的第一行
:nohl
取消搜索关键字后的 高亮
:/xxxx\c
仅一次不区分大小写搜索
查询帮助
help <key>
补全提示
CTRL+d
或者TAB
,前者显示所有推荐的可选项,后者直接补全当前命令