vim命令⼤全
1. vim模式
正常模式(按Esc或Ctrl+[进⼊)左下⾓显⽰⽂件名或为空
插⼊模式(按i进⼊)左下⾓显⽰--INSERT--
可视模式(按v进⼊)左下⾓显⽰--VISUAL--
替换模式(按r或R开始)左下⾓显⽰ --REPLACE--
命令⾏模式(按:或者/或者?开始)
ex模式没⽤过,有兴趣的同学可以⾃⾏了解
2. 打开⽂件
# 打开单个⽂件
vim file
# 同时打开多个⽂件
vim file1 file2..
# 在vim窗⼝中打开⼀个新⽂件
:open [file]
【举个例⼦】
# 当前打开1.txt,做了⼀些编辑没保存
:open!        放弃这些修改,并重新打开未修改的⽂件
# 当前打开1.txt,做了⼀些编辑并保存
:    直接退出对1.txt的编辑,直接打开2.txt编辑,省了退出:wq再重新的步骤
# 打开远程⽂件,⽐如ftp或者share folder
:e ftp://192.168.10.
:
e \qadrive\
# 以只读形式打开⽂件,但是仍然可以使⽤ :wq! 写⼊
vim -R file
# 强制性关闭修改功能,⽆法使⽤ :wq! 写⼊
vim -M file
3. 插⼊命令
i 在当前位置⽣前插⼊
I 在当前⾏⾸插⼊
a 在当前位置后插⼊
A 在当前⾏尾插⼊
o 在当前⾏之后插⼊⼀⾏
O 在当前⾏之前插⼊⼀⾏
4. 查命令
最简单的查
/text  查text,按n健查下⼀个,按N健查前⼀个。
text  查text,反向查,按n健查下⼀个,按N健查前⼀个。
vim中有⼀些特殊字符在查时需要转义  .*[]^%/?~$
:set ignorecase  忽略⼤⼩写的查
:set noignorecase  不忽略⼤⼩写的查
快速查,不需要⼿打字符即可查
*        向后(下)寻游标所在处的单词
#        向前(上)寻游标所在处的单词
以上两种查,n,N 的继续查命令依然可以适⽤
精准查:匹配单词查
如果⽂本中有 hello,helloworld,hellopython
那我使⽤ /hello ,这三个词都会匹配到。
有没有办法实现精准查呢?可以使⽤
/hello\>
精准查:匹配⾏⾸、⾏末
# hello位于⾏⾸
/^hello
# world位于⾏末
/world$
5. 替换命令
~  反转游标字母⼤⼩写
r<;字母>          将当前字符替换为所写字母
R<;字母><;字母>...  连续替换字母
cc    替换整⾏(就是删除当前⾏,并在下⼀⾏插⼊)
cw    替换⼀个单词(就是删除⼀个单词,就进⼊插⼊模式),前提是游标处于单词第⼀个字母(可⽤b定位)
C    (⼤写C)替换⾄⾏尾(和D有所区别,D是删除(剪切)⾄⾏尾,C是删除⾄⾏位并进⼊插⼊模式)
:s/old/new/    ⽤old替换new,替换当前⾏的第⼀个匹配
:s/old/new/g  ⽤old替换new,替换当前⾏的所有匹配
:%s/old/new/  ⽤old替换new,替换所有⾏的第⼀个匹配
:%s/old/new/g  ⽤old替换new,替换整个⽂件的所有匹配
:10,20 s/^/ /g 在第10⾏⾄第20⾏每⾏前⾯加四个空格,⽤于缩进。
ddp    交换光标所在⾏和其下紧邻的⼀⾏。
xp  交换相邻两个字母的顺序
6. 撤销与重做
u 撤销(Undo)
U 撤销对整⾏的操作
Ctrl + r 重做(Redo),即撤销的撤销。
7. 删除命令
需要说明的是,vim 其实并没有单纯的删除命令,下⾯你或许理解为剪切更加准确。
以字符为单位删除
x  删除当前字符
3x  删除当前字符3次
X  删除当前字符的前⼀个字符。
3X  删除当前光标向前三个字符
dl  删除当前字符, dl=x
dh  删除前⼀个字符,X=dh
D  删除当前字符⾄⾏尾。D=d$
d$  删除当前字符⾄⾏尾
d^  删除当前字符之前⾄⾏⾸
以单词为单位删除
linux使用vim编辑文件dw  删除当前字符到单词尾
daw 删除当前字符所在单词
以⾏为单位删除
dd  删除当前⾏
dj  删除下⼀⾏
dk  删除上⼀⾏
dgg  删除当前⾏⾄⽂档⾸部
d1G  删除当前⾏⾄⽂档⾸部
dG  删除当前⾏⾄⽂档尾部
kdgg  删除当前⾏之前所有⾏(不包括当前⾏)
jdG  删除当前⾏之后所有⾏(不包括当前⾏)
10d    删除当前⾏开始的10⾏。
:1,10d  删除1-10⾏
:
11,$d  删除11⾏及以后所有的⾏
:1,$d  删除所有⾏
J  删除两⾏之间的空⾏,实际上是合并两⾏。
8. 复制粘贴
普通模式中使⽤y复制
yy  复制游标所在的整⾏(3yy表⽰复制3⾏)
y^  复制⾄⾏⾸,或y0。不含光标所在处字符。
y$  复制⾄⾏尾。含光标所在处字符。
yw  复制⼀个单词。
y2w  复制两个单词。
yG  复制⾄⽂本末。
y1G  复制⾄⽂本开头。
普通模式中使⽤p粘贴
p(⼩写):代表粘贴⾄光标后(下边,右边)
P(⼤写):代表粘贴⾄光标前(上边,左边)
9. 剪切粘贴
dd    其实就是剪切命令,剪切当前⾏
ddp  剪切当前⾏并粘贴,可实现当前⾏和下⼀⾏调换位置正常模式下按v(逐字)或V(逐⾏)进⼊可视模式
然后⽤jklh命令移动即可选择某些⾏或字符,再按d即可剪切
ndd 剪切当前⾏之后的n⾏。利⽤p命令可以对剪切的内容进⾏粘贴
:1,10d 将1-10⾏剪切。利⽤p命令可将剪切后的内容进⾏粘贴。
:1, 10 m 20 将第1-10⾏移动到第20⾏之后。
10. 退出保存
:wq 保存并退出
ZZ 保存并退出
:q! 强制退出并忽略所有更改
:e! 放弃所有修改,并打开原来⽂件。
ZZ 保存并退出
:sav(eas)   另存为⼀个新⽂件,退出原⽂件的编辑且不会保存
:f(ile)     新开⼀个⽂件,并不保存,退出原⽂件的编辑且不会保存11. 移动命令
以字符为单位移动
h  左移⼀个字符
l  右移⼀个字符
k  上移⼀个字符
j  下移⼀个字符
# 【定位字符】f和F
fx    到光标后第⼀个为x的字符
3fd  到光标后第三个为d的字符
F  同f,反向查。
以⾏为单位移动
# 10指代所有数字,可任意指定
10h  左移10个字符
10l  右移10个字符
10k  上移10⾏
10j  下移10⾏

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。