一三九、vim使用介绍
业界资讯
2023-06-25 01:39:04
阅读次数: 0
键盘图
模式切换
移动光标
命令 |
说明 |
shift 6() |
至本行第一个非空字符 |
shift 4($) |
至本行末尾 |
w |
至下一个单词、标点开头 |
W |
至下一个单词开头 |
b |
至上一个单词、标点开头 |
B |
至上一个单词开头 |
ctrl + b |
上翻一页 |
ctrl + f |
下翻一页 |
ctrl + d |
向下翻半页 此比较有用 |
ctrl + u |
向上翻半页 此比较有用 |
gg |
文件开头 |
shift + g |
文件末尾 |
num + shift + g |
跳到第num行 |
“ |
两个单引号 此命令相当有用, 它移动光标到上一个标记处, 比如用 gd, * 等查找到某个单词后, 再输入此命令则回到上次停留的位置. |
‘. |
一单一点 此命令相当好使, 它移动光标到上一次的修改行. |
`. |
一倒引一点 此命令相当强大, 它移动光标到上一次的修改点. |
进入插入模式
命令 |
说明 |
i, I 进入输入模式(Insert mode): |
i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。 (常用) |
a, A 进入输入模式(Insert mode): |
a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。(常用) |
o, O 进入输入模式(Insert mode): |
这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处输入新的一行』; O 为在目前光标所在处的上一行输入新的一行!(常用) |
r, R 进入取代模式(Replace mode): |
r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用) |
[Esc] 退出编辑模式,回到一般模式中(常用) |
|
文本编辑(删除、复制、剪切、粘贴、撤销)
命令 |
说明 |
x |
删除当前字符 |
3x |
删除当前字符和之后的两个字符 |
dd |
删除(剪切)当前那行 |
5dd |
删除(剪切)当前那行和后面的4行 |
dw |
当前字符到下一个字符开始 |
d$ |
删除(剪切)当前字符到行尾 |
d0 |
删除(剪切)当前字符到行首 |
d^ |
删除(剪切)当前字符到下一个非空字符 |
dG |
删除(剪切)当前行到文件末尾 |
d20G |
删除(剪切)当前行到20行 |
yy |
复制当前那行,用法同dd |
p |
粘贴到光标之后 |
P |
粘贴到光标之前 |
u |
取消上一次操作 |
ctrl +r |
恢复上一次操作 |
j |
合并当前行和后面的一行,用法同dd |
查找替换
命令 |
说明 |
/key(?key) |
向下(上)查找key |
:%s/oldkey/newkey/gc |
在全局范围内用newkey替换oldkey |
: |
进入底行模式 |
% |
范围%代表全局,1,3代表1到3行 |
s |
替换操作 |
/oldkey/newkey/ |
用新词替换老词 |
g |
代表行内全局 |
编辑多个文件
命令 |
说明 |
vim file1 file2 … |
编辑多个文件 |
:n |
切换到下一个文件 |
:N |
切换到上一个文件 |
:buffer 1 |
切换到第一个文件 |
:e file |
新编辑一个文件 |
:r file |
在当前文件中插入一个文件 |
:w file |
将文件保存为一个文件 |
技巧
命令 |
说明 |
r |
替换模式,替换当前光标所在位置的一个字符。虽然你同样可以i进入插入模式,然后删掉那个字符,再输入需要的字符,但这种操作是鼠标流思维方式。替换是一个可重复操作,多用没坏处。 |
cw |
change word可以删除从当前位置到一个单词的结尾,并进入插入模式。这种操作常用于修改一个变量。比如对于:int count=0;希望把count改成cnt,那么当光标位于c字符处的时候,按cw可直接删除count,并进入插入模式。然后直接继续输入cnt即可。 |
caw |
change a word可以删除当前光标所在位置的单词。对于int count=0;的例子,如果此时光标在count中间某处,比如u处,直接键入caw可以达到同样的效果。所以caw更强大一些。 |
c$、c^ |
举一反三,可以猜到c$是从当前位置删除到行尾,并进入插入模式。 |
ci” |
change inside 可以用于修改当前位置附近,在相同配对的中的内容。比如对于const char *str=hello world;。当在双引号中间的任意位置键入ci"可以直接清空字符串,并继续输入新的希望的字符串。 |
ci(、ci[ |
举一反三change inside ( change inside [。 |
cit |
这个比较特殊,可以直接编辑匹配的xml标签中的内容!经常编写html的童鞋可以熟悉一下。 |
yi" |
yank inside 猜猜是啥意思?类似ci只是把编辑操作编程复制操作,因为y是复制!是不是很强大。 |
ya" |
yank around “ 复制整个字符串,包括双引号。 |
转载自blog.csdn.net/zm06201118/article/details/129238967